sp4r1ng/ShadowForge

GitHub: sp4r1ng/ShadowForge

基于 C++17 的 Windows x64 EDR 规避研究框架,整合直接系统调用、NTDLL 脱钩、ETW 屏蔽、APC 注入与多层 Shellcode 混淆技术。

Stars: 0 | Forks: 0

# ShadowForge EDR 规避研究框架 —— C++17, x64, Windows. ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0397531865152445.png) ## 模块 | # | 模块 | 描述 | |---|--------|-------------| | 1 | **PE Parser** | 完整的 PE32/PE32+ 分析 —— headers、sections、imports、exports | | 2 | **Direct Syscalls** | 通过 EAT 排序 + x64 `syscall` stub 在运行时解析 SSN | | 3 | **NTDLL Unhooker** | 从磁盘读取干净的 ntdll,覆写被挂钩的 `.text` section | | 4 | **ETW Patcher** | 使用 `xor rax,rax; ret` 修补 `EtwEventWrite` / `EtwEventWriteFull` | | 5 | **APC Injector** | 使用直接 syscalls 通过 `NtQueueApcThread` 进行进程注入 | | 6 | **Shellcode Obfuscator** | 多层加密:RC4-drop + 字节置换 + UUID 编码 | ## 架构 ``` ShadowForge/ ├── asm/ │ ├── syscall_stub.asm # MASM (Visual Studio) │ └── syscall_stub.S # GAS (MinGW-w64) ├── include/ │ ├── shadowforge.h # Common types, macros, console helpers │ ├── pe_parser.h │ ├── syscalls.h │ ├── unhooker.h │ ├── etw_patcher.h │ ├── obfuscator.h │ └── injector.h ├── src/ │ ├── main.cpp # Interactive CLI │ ├── pe_parser.cpp │ ├── syscalls.cpp │ ├── unhooker.cpp │ ├── etw_patcher.cpp │ ├── obfuscator.cpp │ └── injector.cpp ├── tools/ │ └── encrypt_shellcode.py # Offline shellcode encryption tool ├── CMakeLists.txt └── toolchain-mingw64.cmake # Cross-compilation from WSL ``` ## 构建 ### WSL / Linux (MinGW-w64 交叉编译) ``` sudo apt install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-x86-64-dev cmake cd ShadowForge cmake -B build -DCMAKE_TOOLCHAIN_FILE=toolchain-mingw64.cmake -DCMAKE_BUILD_TYPE=Release cmake --build build -j$(nproc) ``` ### Windows (Visual Studio / MSVC) ``` cmake -B build -G "Visual Studio 17 2022" -A x64 cmake --build build --config Release ``` 二进制输出:`build/bin/ShadowForge.exe` ## 混淆管道 Shellcode 混淆器使用 **多层方法** 来对抗静态特征检测: 1. **RC4-drop(3072)** —— 丢弃前 3072 个密钥流字节的流密码 2. **Fisher-Yates 字节置换** —— 使用种子 LCG 的确定性字节级洗牌 3. **UUID 编码** —— 加密字节存储为 UUID 字符串(看起来像合法数据) 额外保护措施: - 从系统熵**运行时密钥派生**(二进制文件中无静态密钥) - **沙箱检测** —— 时间检查、RAM/CPU 数量启发式分析 - **分阶段解密** —— 逐块进行,带有随机时间抖动 - **算术重构** —— shellcode 字节在运行时通过 XOR 重建 ### 离线加密工具 ``` # 加密原始 shellcode 二进制文件 python3 tools/encrypt_shellcode.py payload.bin -o encrypted.h # 从十六进制字符串加密 python3 tools/encrypt_shellcode.py --hex "FC4883E4F0..." -o encrypted.h # 使用自定义密钥派生 python3 tools/encrypt_shellcode.py payload.bin --key-string "my_secret" -o encrypted.h ``` ## 技术参考 | 技术 | 绕过 | |-----------|----------| | 直接 syscalls | 用户模式 API 挂钩 (CrowdStrike, SentinelOne, Defender ATP) | | NTDLL 脱钩 | `Nt*` 函数上的 EDR 内联挂钩 | | ETW 修补 | 基于 ETW 的遥测和行为分析 | | APC 注入 | 与上述结合时的进程级监控 | | 多层混淆 | 静态特征检测、YARA 规则 | | 沙箱检测 | 自动化分析环境 | ## 免责声明 此工具 **仅用于教育目的和授权的安全研究**。作者不对任何滥用行为负责。在对任何系统进行测试之前,请务必获得适当的授权。
标签:APC注入, Bash脚本, C++17, CMake构建, Conpot, DNS 反向解析, EDR绕过, ETW修补, HTTP头分析, NTDLL脱钩, PE解析器, RC4加密, Shellcode混淆, SSH蜜罐, Windows安全, x64汇编, 云资产清单, 免杀技术, 暴力破解检测, 渗透测试框架, 红队开发, 进程注入, 逆向工具, 逆向工程, 防御, 高交互蜜罐, 高危端口监控