某免杀工具后门分析
字数 2298 2025-08-06 18:07:51
某免杀工具后门分析技术文档
1. 样本概述
分析对象:LoaderMaker.exe(免杀EXE生成工具)中的后门功能
样本特征:
- MD5: a737860a66bcd9228cc18de7a51cc736e1a834a13e26cd6f19e2d162fdfef9bd
- 包含文件:
- LoaderMaker.exe(主程序,含后门)
- ShellcodeLoader.exe(模板文件)
2. 初步分析
2.1 导出函数检查
发现可疑导出函数:
- 进程枚举相关函数(一个免杀工具正常情况下不应需要枚举进程)
2.2 主函数结构
主函数位于 sub_004019A0,包含以下关键子函数:
sub_4011E0- 疑似反沙箱检测sub_401620- 提权功能- 混淆Shellcode的相关函数
3. 反沙箱机制分析
3.1 PfxInitialize检测
sub_4011E0 函数行为:
- 从ntdll中动态获取PfxInitialize函数
- 检查返回值是否为0x200
- 该值与CPU架构相关,可能用于检测沙箱环境
技术细节:
- 实际是硬编码检测,非动态确定
- ReactOS源码显示PfxInitialize是未实现的函数
- 返回值在编译ntdll时确定
4. 提权功能分析
sub_401620 函数行为:
- 尝试开启DEBUG特权
- 可疑点:免杀工具为何需要DEBUG特权?
5. 后门功能深入分析
5.1 进程枚举
关键函数 sub_401560:
- 使用CreateToolhelp32Snapshot枚举进程
- 通过进程名查找特定PID
5.2 目标进程识别
sub_401710 函数:
- 从数据段byte_41ADC4提取字符串"shellcodeLoader.exe"
- 实际目标是资源管理器(explorer.exe)
- 通过硬编码的进程名识别目标
5.3 注入准备
sub_401290 函数:
- 获取Kernel32.dll句柄(从byte_41AE20提取字符串)
- 使用OpenProcess获取目标进程句柄
- 获取关键函数地址:
- VirtualAllocEx
- WriteProcessMemory
5.4 Shellcode注入流程
- 检查系统是否为64位
- 解密Shellcode(存储在数据段sub_41A8B0)
- 在explorer.exe中分配内存
- 写入解密的Shellcode
- 执行注入的Shellcode
5.5 天堂之门技术(Wow64)
关键技术点:
- 32位进程执行64位代码
- 通过修改CS段寄存器切换执行模式(0x23=32位,0x33=64位)
- 使用64位ntdll.dll创建执行环境
实现细节:
- push 0x33指令触发模式切换
- 查找64位ntdll中的ZwCreateThreadEx
- 使用该函数执行注入的Shellcode
6. 后门触发机制
调用链:
sub_401950 → sub_401930 → ... → sub_401800
关键条件:
- 全局计数器dword_41B870
- 当计数器=6时触发后门
- 正常使用会打印5次信息,第6次触发
实际触发场景:
- 只有在生成免杀文件时才会触发后门
- 单纯运行工具不会触发
7. Shellcode分析
提取的Shellcode特征:
- Cobalt Strike beacon
- 连接信息:
- 端口:0x827 (2087)
- 可见域名(原文未明确列出)
调试发现:
- 实际样本中的Shellcode可能无法正常连接
- InternetOpenA参数被清零
- 可能是未完成的后门或测试代码
8. 技术总结
8.1 后门工作流程
- 检查环境(反沙箱)
- 提权(获取DEBUG权限)
- 枚举进程查找explorer.exe
- 解密并注入x64 Shellcode
- 使用天堂之门技术执行64位代码
- 通过ZwCreateThreadEx运行Shellcode
8.2 关键技术
- 进程注入技术
- Shellcode混淆与解密
- 32位与64位混合执行(天堂之门)
- 反逆向技巧(函数调用链混淆)
9. 检测与防护建议
9.1 检测指标
-
行为检测:
- 免杀工具尝试枚举进程
- 对explorer.exe的内存操作
- 非常规的提权行为
-
特征检测:
- PfxInitialize返回值检查
- 特定的字符串解密模式
- 天堂之门技术特征码
9.2 防护措施
-
沙箱检测:
- 监控PfxInitialize等不常见API调用
- 检查硬编码的架构检测
-
内存保护:
- 监控对explorer.exe的代码注入
- 检测跨架构执行尝试
-
网络防护:
- 拦截对非常规端口(如2087)的连接
- 监控可疑的DNS查询
附录:关键函数对照表
| 函数地址 | 功能描述 |
|---|---|
| sub_4011E0 | 反沙箱检测 |
| sub_401560 | 进程枚举 |
| sub_401620 | 提权功能 |
| sub_401710 | 目标进程识别 |
| sub_401290 | 注入准备(获取API等) |
| sub_401230 | Shellcode执行环境设置 |
| sub_41A933 | 天堂之门技术实现(模式切换) |