模块 24 - Maldev Academy 工具 - HellShell
恶意软件开发课程 - Maldev Academy 工具 - HellShell
模块 24 - Maldev Academy 工具 - HellShell#
[!IMPORTANT] 本知识库声明
本知识库由本人整理自互联网 MalDev Academy 泄露资源,并由本人手动翻译为中文,过程中增加了大量关键技术提示与实践心得。
- 内容完整性:并未修改任何核心代码与技术逻辑,仅做汉化与注释加强。
- 版权归属:原始知识产权归原作者/官方所有。
- 支持正版:本仓库仅供内部学习交流,如果您有经济能力,请务必支持正版课程。
- 权利申诉:如相关内容侵犯了您的权益,请联系我,我将立即核实并删除。
Maldev Academy 工具 - HellShell#
简介#
在课程的这个阶段,你应该已经牢固掌握了使用加密(XOR/RC4/AES)和混淆(IPv4/IPv6/MAC/UUID)技术进行静态逃避的方法。在恶意软件中实现一种或多种前面讨论的逃避技术可能会很耗时。一个解决方案是构建一个工具,它接收 Payload 并执行加密或混淆方法。
本模块将演示 Maldev Academy 团队制作的一个执行这些任务的工具。
💡 初学者提示:为什么需要自动化工具?
想象一下手动实现这些技术的过程:
- 生成 shellcode
- 手动编写加密/混淆代码
- 复制粘贴字节数组
- 调试格式错误
- 重复多次测试…
HellShell 的价值:
- 一条命令完成所有工作
- 自动生成随机密钥
- 自动处理字节填充
- 输出即可使用的 C 代码
- 节省大量时间!
就像从手工制作家具升级到使用电动工具——效率提升 10 倍!
工具特性#
该工具具有以下特性:
- ✅ 支持多种混淆: IPv4/IPv6/MAC/UUID 混淆
- ✅ 支持多种加密: XOR/RC4/AES 加密
- ✅ 自动填充: 支持 Payload 填充(确保字节数符合要求)
- ✅ 提供解密函数: 为选定的加密/混淆技术提供解密函数代码
- ✅ 随机密钥: 每次运行时随机生成加密密钥
📚 知识扩展:Payload 填充的重要性
还记得我们学过的要求吗?
- IPv4: shellcode 必须是 4 的倍数
- IPv6: shellcode 必须是 16 的倍数
- MAC: shellcode 必须是 6 的倍数
- UUID: shellcode 必须是 16 的倍数
如果不满足怎么办?
- 手动填充: 在末尾添加无害字节(如
0x90NOP 指令)- HellShell 自动处理: 工具会自动检测并添加所需的填充字节
填充示例:
plaintext原始 shellcode (276 字节): [FC 48 83 E4 ... ] IPv4 需要: 4 的倍数 ✓ (276 % 4 = 0) IPv6 需要: 16 的倍数 → 需要填充 4 字节 → 280 字节
使用方法#
要使用 HellShell,请下载源代码并手动编译它。确保构建选项设置为 Release。
###########################################################
# HellShell - Designed By MalDevAcademy @NUL0x4C | @mrd0x #
###########################################################
[!] Usage: HellShell.exe <Input Payload FileName> <Enc/Obf *Option*>
[i] Options Can Be :
1.>>> "mac" ::: Output The Shellcode As A Array Of Mac Addresses [FC-48-83-E4-F0-E8]
2.>>> "ipv4" ::: Output The Shellcode As A Array Of Ipv4 Addresses [252.72.131.228]
3.>>> "ipv6" ::: Output The Shellcode As A Array Of Ipv6 Addresses [FC48:83E4:F0E8:C000:0000:4151:4150:5251]
4.>>> "uuid" ::: Output The Shellcode As A Array Of UUid Strings [FC4883E4-F0E8-C000-0000-415141505251]
5.>>> "aes" ::: Output The Shellcode As A Array Of Aes Encrypted Shellcode With Random Key And Iv
6.>>> "rc4" ::: Output The Shellcode As A Array Of Rc4 Encrypted Shellcode With Random Key
c💡 初学者提示:参数说明
命令格式:
HellShell.exe <输入文件> <选项>
- 输入文件: 你的原始 shellcode 二进制文件(如
calc.bin)- 选项: 选择一种加密或混淆方法
mac- MAC 地址混淆ipv4- IPv4 地址混淆ipv6- IPv6 地址混淆uuid- UUID 混淆aes- AES 加密rc4- RC4 加密输出: C 代码格式,可以直接复制到你的项目中!
示例命令#
以下是一些实用的示例命令:
# 生成 AES 加密的 Payload 并打印到控制台
HellShell.exe calc.bin aes
# 生成 AES 加密的 Payload 并输出到文件
HellShell.exe calc.bin aes > AesPayload.c
# 生成 IPv6 混淆的 Payload 并打印到控制台
HellShell.exe calc.bin ipv6
# 生成 UUID 混淆的 Payload 并输出到文件
HellShell.exe calc.bin uuid > UuidPayload.c
# 生成 MAC 地址混淆的 Payload
HellShell.exe calc.bin mac > MacPayload.c
# 生成 RC4 加密的 Payload
HellShell.exe calc.bin rc4 > Rc4Payload.cbash📚 知识扩展:HellShell 输出的内容
HellShell 不仅会输出加密/混淆后的数据,还会提供:
数据数组:
cchar* Ipv4Array[69] = { "252.72.131.228", "240.232.192.0", ... };解密/去混淆函数: 完整的函数代码,包括:
- 函数定义
- 必要的类型定义
- 错误处理
- 内存管理
密钥信息(如果是加密):
cunsigned char Key[] = { 0x4A, 0x7B, 0x2C, ... }; unsigned char IV[] = { 0x9F, 0x1E, 0x3D, ... };使用示例: 如何调用这些函数
你只需要:
- 复制输出到你的项目
- 添加必要的头文件
- 调用提供的函数
- 执行还原后的 shellcode
演示#
下图展示了使用 HellShell 使用 RC4 加密算法加密 Payload 并输出到文件的过程。

🎯 总结#
在本模块中,我们学习了:
- HellShell 工具: Maldev Academy 团队开发的自动化加密/混淆工具
- 核心功能:
- 支持 6 种不同的技术(4 种混淆 + 2 种加密 + XOR)
- 自动处理填充
- 生成随机密钥
- 提供完整的解密代码
- 使用方法: 简单的命令行界面,一条命令完成所有工作
- 实用价值: 大幅提升开发效率,避免手动错误
💡 关键要点
- HellShell 自动化了前面学习的所有技术
- 输出的代码可以直接在你的项目中使用
- 支持输出重定向,方便保存到文件
- 每次运行都会生成新的随机密钥,增加不可预测性
🎯 实战工作流程
步骤 1: 生成 Shellcode
└─→ msfvenom -p windows/x64/exec CMD=calc.exe -f raw -o calc.bin
步骤 2: 使用 HellShell 处理
└─→ HellShell.exe calc.bin uuid > payload.c
步骤 3: 集成到项目
├─→ 复制 payload.c 的内容到你的恶意软件项目
├─→ 添加必要的头文件(windows.h, stdio.h 等)
└─→ 调用提供的去混淆函数
步骤 4: 编译和测试
└─→ 编译为 Release 版本并测试
步骤 5: 检测规避
└─→ 上传到目标环境前,先用沙箱测试plaintext📚 进阶技巧
1. 多层保护 虽然 HellShell 每次只能应用一种技术,但你可以手动组合:
// 先加密,再混淆
1. HellShell.exe calc.bin aes > temp.bin
2. 从 temp.bin 提取加密后的字节
3. HellShell.exe encrypted.bin uuid > final.c
// 现在你的 payload 既加密又混淆了!c2. 随机化策略
// 每次编译时使用不同的技术
- 星期一: UUID 混淆
- 星期二: AES 加密
- 星期三: IPv4 混淆
- ...
// 这样每个生成的恶意软件签名都不同c3. 配合其他技术 HellShell 处理的是静态特征,你还需要:
- 动态 API 解析(后续模块)
- 进程注入技术(后续模块)
- 反调试/反沙箱(后续模块)
💡 常见问题解答
Q: HellShell 生成的代码可以直接用吗? A: 可以!输出的代码是完整的,包含所有必要的函数和定义。只需添加头文件并编译。
Q: 可以修改生成的密钥吗?
A: 可以,但不建议。随机密钥提供了更好的不可预测性。如果需要固定密钥,可以手动修改输出中的 Key 数组。
Q: 哪种技术最好? A: 没有”最好”的,取决于场景:
- 最隐蔽: UUID(Windows 中极为常见)
- 最简单: IPv4(实现简单,兼容性好)
- 最安全: AES(加密强度最高)
- 最快速: XOR(性能最好,但安全性较低)
Q: 可以对其他格式的 payload 使用吗? A: 可以!只要是二进制格式(.bin 文件),无论是 Meterpreter、Cobalt Strike Beacon 还是自定义 shellcode 都可以。
🎓 学习总结 - Payload 混淆与加密系列#
恭喜你完成了 Payload 混淆与加密的学习!让我们回顾一下你学到的所有技术:
加密技术#
| 技术 | 强度 | 速度 | 复杂度 | 适用场景 |
|---|---|---|---|---|
| XOR | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ | 快速测试,轻量级保护 |
| RC4 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | 平衡的选择 |
| AES | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | 最高安全性要求 |
混淆技术#
| 技术 | 字节/元素 | 数组长度 | 隐蔽性 | 适用场景 |
|---|---|---|---|---|
| IPv4 | 4 | 长 | ⭐⭐⭐⭐⭐ | 通用场景,最佳选择 |
| IPv6 | 16 | 短 | ⭐⭐⭐ | 需要小体积 |
| MAC | 6 | 中 | ⭐⭐⭐⭐ | 网络工具伪装 |
| UUID | 16 | 短 | ⭐⭐⭐⭐⭐ | Windows 程序,COM 组件 |
工具#
- HellShell: 自动化所有上述技术的强大工具
📚 下一步学习
你已经掌握了静态逃避的基础。接下来的模块将介绍:
- MiniShell: 另一个实用工具
- 本地 Payload 执行: DLL 和 Shellcode 执行技术
- 进程注入: 将代码注入其他进程
- 更多高级技术: API 隐藏、进程欺骗等
继续加油!🚀