0%
毅种循环

模块 24 - Maldev Academy 工具 - HellShell

恶意软件开发课程 - Maldev Academy 工具 - HellShell


模块 24 - Maldev Academy 工具 - HellShell#

[!IMPORTANT] 本知识库声明

本知识库由本人整理自互联网 MalDev Academy 泄露资源,并由本人手动翻译为中文,过程中增加了大量关键技术提示实践心得

  1. 内容完整性:并未修改任何核心代码与技术逻辑,仅做汉化与注释加强。
  2. 版权归属:原始知识产权归原作者/官方所有。
  3. 支持正版:本仓库仅供内部学习交流,如果您有经济能力,请务必支持正版课程
  4. 权利申诉:如相关内容侵犯了您的权益,请联系我,我将立即核实并删除。

Maldev Academy 工具 - HellShell#

简介#

在课程的这个阶段,你应该已经牢固掌握了使用加密(XOR/RC4/AES)和混淆(IPv4/IPv6/MAC/UUID)技术进行静态逃避的方法。在恶意软件中实现一种或多种前面讨论的逃避技术可能会很耗时。一个解决方案是构建一个工具,它接收 Payload 并执行加密或混淆方法。

本模块将演示 Maldev Academy 团队制作的一个执行这些任务的工具。

💡 初学者提示:为什么需要自动化工具?

想象一下手动实现这些技术的过程:

  1. 生成 shellcode
  2. 手动编写加密/混淆代码
  3. 复制粘贴字节数组
  4. 调试格式错误
  5. 重复多次测试…

HellShell 的价值:

  • 一条命令完成所有工作
  • 自动生成随机密钥
  • 自动处理字节填充
  • 输出即可使用的 C 代码
  • 节省大量时间!

就像从手工制作家具升级到使用电动工具——效率提升 10 倍!

工具特性#

该工具具有以下特性:

  • 支持多种混淆: IPv4/IPv6/MAC/UUID 混淆
  • 支持多种加密: XOR/RC4/AES 加密
  • 自动填充: 支持 Payload 填充(确保字节数符合要求)
  • 提供解密函数: 为选定的加密/混淆技术提供解密函数代码
  • 随机密钥: 每次运行时随机生成加密密钥

📚 知识扩展:Payload 填充的重要性

还记得我们学过的要求吗?

  • IPv4: shellcode 必须是 4 的倍数
  • IPv6: shellcode 必须是 16 的倍数
  • MAC: shellcode 必须是 6 的倍数
  • UUID: shellcode 必须是 16 的倍数

如果不满足怎么办?

  • 手动填充: 在末尾添加无害字节(如 0x90 NOP 指令)
  • HellShell 自动处理: 工具会自动检测并添加所需的填充字节

填充示例:

原始 shellcode (276 字节): [FC 48 83 E4 ... ]
IPv4 需要: 4 的倍数 ✓ (276 % 4 = 0)
IPv6 需要: 16 的倍数 → 需要填充 4 字节 → 280 字节
plaintext

使用方法#

要使用 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 代码格式,可以直接复制到你的项目中!

示例命令#

以下是一些实用的示例命令:

📚 知识扩展:HellShell 输出的内容

HellShell 不仅会输出加密/混淆后的数据,还会提供:

  1. 数据数组:

    char* Ipv4Array[69] = {
        "252.72.131.228", "240.232.192.0", ...
    };
    c
  2. 解密/去混淆函数: 完整的函数代码,包括:

    • 函数定义
    • 必要的类型定义
    • 错误处理
    • 内存管理
  3. 密钥信息(如果是加密):

    unsigned char Key[] = { 0x4A, 0x7B, 0x2C, ... };
    unsigned char IV[] = { 0x9F, 0x1E, 0x3D, ... };
    c
  4. 使用示例: 如何调用这些函数

你只需要:

  • 复制输出到你的项目
  • 添加必要的头文件
  • 调用提供的函数
  • 执行还原后的 shellcode

演示#

下图展示了使用 HellShell 使用 RC4 加密算法加密 Payload 并输出到文件的过程。

图片
图片


🎯 总结#

在本模块中,我们学习了:

  1. HellShell 工具: Maldev Academy 团队开发的自动化加密/混淆工具
  2. 核心功能:
    • 支持 6 种不同的技术(4 种混淆 + 2 种加密 + XOR)
    • 自动处理填充
    • 生成随机密钥
    • 提供完整的解密代码
  3. 使用方法: 简单的命令行界面,一条命令完成所有工作
  4. 实用价值: 大幅提升开发效率,避免手动错误

💡 关键要点

  • HellShell 自动化了前面学习的所有技术
  • 输出的代码可以直接在你的项目中使用
  • 支持输出重定向,方便保存到文件
  • 每次运行都会生成新的随机密钥,增加不可预测性

🎯 实战工作流程

📚 进阶技巧

1. 多层保护 虽然 HellShell 每次只能应用一种技术,但你可以手动组合:

// 先加密,再混淆
1. HellShell.exe calc.bin aes > temp.bin
2. 从 temp.bin 提取加密后的字节
3. HellShell.exe encrypted.bin uuid > final.c
// 现在你的 payload 既加密又混淆了!
c

2. 随机化策略

// 每次编译时使用不同的技术
- 星期一: UUID 混淆
- 星期二: AES 加密
- 星期三: IPv4 混淆
- ...
// 这样每个生成的恶意软件签名都不同
c

3. 配合其他技术 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⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐最高安全性要求

混淆技术#

技术字节/元素数组长度隐蔽性适用场景
IPv44⭐⭐⭐⭐⭐通用场景,最佳选择
IPv616⭐⭐⭐需要小体积
MAC6⭐⭐⭐⭐网络工具伪装
UUID16⭐⭐⭐⭐⭐Windows 程序,COM 组件

工具#

  • HellShell: 自动化所有上述技术的强大工具

📚 下一步学习

你已经掌握了静态逃避的基础。接下来的模块将介绍:

  • MiniShell: 另一个实用工具
  • 本地 Payload 执行: DLL 和 Shellcode 执行技术
  • 进程注入: 将代码注入其他进程
  • 更多高级技术: API 隐藏、进程欺骗等

继续加油!🚀