F2u0a0d3/goodboy-stage01-basic-loader

GitHub: F2u0a0d3/goodboy-stage01-basic-loader

Goodboy 框架的第一阶段教程,通过一个功能完整的 Rust shellcode 加载器教授恶意软件开发与检测分析的攻防双重视角。

Stars: 22 | Forks: 1

# 阶段 01:基础 Shellcode 加载器 ## 这是什么 一个功能完整的 shellcode 加载器,具备以下特性: - 在运行时解密嵌入的 XOR 加密 payload - 通过 PEB 遍历动态解析 Windows API(无可疑导入) - 遵循 W^X 原则分配可执行内存(RW→RX,绝无 RWX) - 执行 MessageBox("GoodBoy") 作为执行证明 - 在到达 payload 之前通过 5 个规避检测门 **该二进制文件在 VirusTotal 上达到了 0/76**(2026 年 3 月,全部 76 个 AV 引擎均为绿色)。 ## 你将学到什么 | 红队 | 蓝队 | |----------|-----------| | Shellcode 分阶段管道 | VirtualAlloc→VirtualProtect→CreateThread 检测 | | PEB 遍历 API 哈希 | 彩虹表构建以逆向哈希常量 | | 用于 payload 混淆的 XOR 加密 | 针对 XOR 的已知明文攻击 | | 反沙箱硬件检查 | Sysmon/ETW 检测规则 | | 反调试 (PEB.BeingDebugged) | ScyllaHide 绕过技术 | | ML 分类器规避工程 | 针对基于哈希解析器的 YARA 规则编写 | ## 文件 | 文件 | 描述 | |------|-------------| | `LEARNING_PATH.md` | **1,649 行**指导性分析 —— 理论、动手练习、Python 脚本、YARA/Sigma 规则、检测工程、对抗性思维挑战 | | `basic-loader.exe` | 编译后的二进制文件 (278 KB, Rust, PE64) —— 在 Ghidra/x64dbg 中打开并跟随学习路径操作 | | `SAFETY.md` | 实验室安全指南 —— 在主机上**编写**代码,**仅**在虚拟机中执行 | ## 快速开始 1. 从 [Releases](../../releases) **下载** `basic-loader.exe` 和 `LEARNING_PATH.md` 2. **搭建**一个装有 Ghidra + x64dbg + ScyllaHide + Python 3.10+ 的 Windows 10/11 虚拟机 3. **打开** `LEARNING_PATH.md` 并跟随第 1 节(理论) 4. 在 Ghidra 中**分析**二进制文件(第 2 节:静态分析) 5. 在 x64dbg 中**调试**(第 3 节:动态分析) 6. **编写** YARA + Sigma 检测规则(第 4 节:检测工程) 7. **构建**你自己的 XOR 加密器(第 5 节:构建你自己的工具) ## 5 门架构 ``` main() | +-- Gate 1: verify_env() -- 5 environment variable checks (BTreeMap) | +-- FAIL -> silent exit | +-- Gate 2: preflight() -- 5 more env checks (HashMap + fs::read_dir) | +-- FAIL -> silent exit | +-- Gate 3: KUSER_SHARED_DATA -- system uptime > 5 minutes | +-- FAIL -> silent exit | +-- Gate 4: PEB.BeingDebugged -- inline anti-debug check | +-- FAIL -> silent exit | +-- Gate 5: sandbox_check() -- CPU/RAM/disk/uptime hardware metrics | +-- FAIL -> silent exit | +-- Payload execution: XOR decrypt -> VirtualAlloc(RW) -> copy -> VirtualProtect(RX) -> CreateThread ``` 每一道门都击败一种不同的分析方法。它们共同确保 payload 仅在拥有真实用户的真实系统上运行。 ## 技术细节 | 属性 | 值 | |----------|-------| | 语言 | Rust (自包含,无共享库) | | 哈希算法 | 加法哈希 (种子 `0x1F2E3D4C`, 乘数 `0x1003F`) | | PEB 列表 | InLoadOrderModuleList | | 加密 | 16 字节重复密钥 XOR | | Shellcode | 302 字节 MessageBox("GoodBoy","OK") + ExitThread | | 内存 | W^X 原则 (PAGE_READWRITE -> PAGE_EXECUTE_READ) | | 二进制大小 | 278 KB | | VT 评分 | 达成 0/76 (2026 年 3 月 12 日) | ## 双重哈希架构 该二进制文件使用**两种独立的哈希算法**: ``` LAYER 1: The Rust Loader Algorithm: Additive hash (seed 0x1F2E3D4C, wrapping_mul 0x1003F, xor h>>11) Purpose: Resolves VirtualAlloc, VirtualProtect, CreateThread from kernel32.dll Location: Pre-computed constants in .rdata LAYER 2: The Embedded Shellcode Algorithm: ROR13 (Metasploit "block_api" style) Purpose: Resolves LoadLibraryA, MessageBoxA, ExitThread Location: Immediate values in shellcode x86-64 instructions ``` 两者都必须独立逆向。学习路径通过 Python 彩虹表脚本和反汇编演练涵盖了这两者。 ## 课程进度 这是 15 个阶段中的**阶段 01**。每个阶段在前一阶段的基础上增加一种新的攻击技术: ``` EASY MEDIUM HARD INSANE ............ ............ ............ ............ Stage 01 (this) Stage 04 Stage 07 Stage 14 Stage 02 Stage 05 Stage 08 Stage 15 Stage 03 Stage 06 Stage 09 Stage 11 Stage 10 Stage 12 Stage 13 ``` | 阶段 | 技术 | 新增内容 | |-------|-----------|------------| | **01** | **基础加载器** | **XOR 解密, PEB 遍历, VirtualAlloc->VirtualProtect->CreateThread** | | 02 | XOR 密码分析 | 已知明文攻击, IC 密钥长度检测 | | 03 | AES + Jigsaw | 熵归一化, payload 分片 | | 04 | API 哈希 | 深入探究 PEB 内部结构, 彩虹表 | | 05 | APC 注入 | 早起鸟 (Early Bird), 跨进程执行, 远端解密 | | 06 | 变体分析 | 相同技术, 不同密钥 —— 家族聚类 | | 07 | "直接系统调用" | 名字是个谎言 —— 这就是教训所在 | | 08 | 间接系统调用 | 调用栈取证, gadget 扫描, SSN 解析 | | 09 | 反调试 | 7 种技术: PEB, NtQueryInfo, RDTSC, 硬件断点 | | 10 | 反沙箱 | 硬件指纹识别, 加权评分, 虚拟机规避 | | 11 | 持久化 | 注册表 Run 键, 计划任务, COM 劫持 | | 12 | 模块踩踏 (Module Stomping) | 覆盖合法 DLL 的 .text 节, CFG 有效执行 | | 13 | 休眠混淆 | 休眠期间加密 payload, 95% 的扫描器漏报 | | 14 | 组合加载器 | 8 层规避栈, MBA 混淆, 多阶段链 | | 15 | C2 代理 | 具有加密 HTTPS 信标的完整命令与控制 | ## 学习路径包含 ### 理论(第 1 节) - 为什么加载器存在 (DEP 绕过) - Shellcode 分阶段管道(可视化图表) - W^X 与 RWX 内存原则 - 为什么 API 哈希能消除静态导入分析 - 双重哈希架构(加法哈希 + ROR13) ### 静态分析练习(第 2 节) - 导入表分析 —— IAT 揭示了什么又隐藏了什么 - 加密 payload 识别 —— Ghidra 中的熵扫描 - 哈希算法识别 —— 在反汇编中查找加法哈希 - Python 彩虹表脚本 —— 将所有哈希常量映射到 API 名称 - XOR 密码识别 —— 区分 XOR 与 RC4/AES ### 动态分析练习(第 3 节) - 5 门启动序列观察 - 内存分配断点 (`bp NtAllocateVirtualMemory`) - Shellcode 复制观察(硬件写入断点) - RW->RX 关键转换 (`bp NtProtectVirtualMemory`) - Shellcode 执行跟踪(单步执行 MessageBox 调用) ### 检测工程(第 4 节) - 针对加法哈希种子 + 乘数的 YARA 规则 - 针对 RW->RX 内存权限转换的 Sigma 规则 - 基于 ETW 的检测 (EtwTi 提供者) - 检测盲区分析 —— Sysmon 看不到什么 ### 规避工程(第 4B 节) - 完整的 VT 取证时间线(8 次提交, 0/76 -> 1/76) - 样本燃尽案例研究 —— VT 提交如何训练 AV 对抗你 - 5 条实证规避原则及证明 - 为什么规避代码本身**可能成为**检测特征 ### 对抗性思维(第 5B 节) - 绕过你自己的 YARA 规则(3 种方法) - 绕过你自己的 Sigma 规则(4 种方法) - 使二进制文件对 pe-sieve 不可见(3 种方法) ### 知识检查(第 6 节) - 7 个问题,附带可展开的答案,涵盖所有主要概念 ## 安全须知 - 该二进制文件是用于授权安全培训、研究和 CTF 竞赛的概念验证 - **Payload**:`MessageBox("GoodBoy")` —— 弹出一个无害的对话框,然后退出 - 无网络活动,无文件写入(除 %TEMP% 面包屑外),无持久化,无系统修改 - 在主机上**编写**代码。**仅**在隔离的虚拟机中**执行** - 完整的实验室安全指南请参见 `SAFETY.md` **请勿将此二进制文件提交至 VirusTotal** —— 这样做会训练 AV 引擎对抗它(参见学习路径中的“样本燃尽”)。 ## 环境要求 | 工具 | 用途 | 链接 | |------|---------|------| | Windows 10/11 x64 虚拟机 | 执行环境 | 推荐 [FlareVM](https://github.com/mandiant/flare-vm) | | Ghidra 11.x | 静态分析 / 反汇编 | [ghidra-sre.org](https://ghidra-sre.org/) | | x64dbg | 动态分析 / 调试 | [x64dbg.com](https://x64dbg.com/) | | ScyllaHide | x64dbg 的反反调试插件 | [GitHub](https://github.com/x64dbg/ScyllaHide) | | Python 3.10+ | 彩虹表脚本, 解密练习 | [python.org](https://python.org/) | | PE-bear | PE 结构查看器 | [GitHub](https://github.com/hasherezade/pe-bear) | **推荐虚拟机配置**(为了通过第 5 门 —— 沙箱检测): - 4+ CPU 核心 - 8+ GB 内存 - 100+ GB 磁盘 - 在执行二进制文件前让虚拟机运行 5+ 分钟 - 屏幕分辨率 1920x1080 或更高 ## 关于 Goodboy 框架 一个全面的恶意软件开发与分析课程,包含: - **15 个渐进阶段**,从基础加载器到完整 C2 代理 - **16,500+ 行**教育文档 - **双重视角** —— 每种技术都从攻防两端进行讲授 - **实证 AV/ML 规避数据**,来自针对 76+ 个反病毒引擎的测试 - **生产级 Rust 代码** —— 非玩具演示 - 每个阶段的 **CTF 挑战**(竞技格式) - **AV/ML 绕过实战指南**,包含针对各引擎的绕过参考 所有 15 个二进制文件均在 VirusTotal 上达到 0/76。该课程不仅记录了**如何**实现这一点,还记录了**之后**会发生什么 —— 样本燃尽现象、ML 军备竞赛,以及为什么测试行为本身就是一种燃尽。 ## 许可证 本材料仅用于授权安全培训、研究、渗透测试和 CTF 竞赛的教育目的。不得用于未经授权的访问,或在未经明确书面许可的情况下对系统进行操作部署。 ## 作者 使用 Rust 1.93.1 MSVC 构建 | 针对 76+ 个 AV 引擎测试 | 2026 年 3 月
标签:ATT&CK框架, Conpot, DNS信息、DNS暴力破解, DNS 反向解析, Fail2ban, PEB遍历, Rust恶意软件, Web安全, Windows安全, W^X内存保护, XOR解密, YARA规则, 中高交互蜜罐, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 免杀技术, 动态API解析, 反病毒规避, 可视化界面, 安全开发课程, 恶意代码分析, 恶意软件开发, 暴力破解检测, 端点可见性, 红队开发, 蓝队分析, 逆向工具, 逆向工程, 配置文件, 静态分析