远程访问木马RAT样本分析
字数 1993 2025-08-20 18:17:31
远程访问木马(RAT)样本分析教学文档
1. 样本初步分析
1.1 信息熵分析
- 信息熵分析表明该恶意程序可能在内存中存在有效负载
- 高信息熵通常暗示存在加密或压缩的数据
1.2 字符串和导入表分析
- 注册表相关字符串:
Software\Microsoft\Windows\CurrentVersion - 关键API函数:
CreateProcessA/ShellExecuteA:用于执行下阶段有效负载RegSetValueExA/RegCreateKeyExA:用于注册表操作
2. 沙箱行为分析
2.1 网络行为
- 尝试连接恶意域名:
stonecold.ddns.net - 使用端口:2502
- 创建TCP套接字进行通信
2.2 文件行为
-
第一阶段:
- 释放三个文件:
cmdkuqqycckgcf.exe(第二阶段样本)ka9zcqw3l6l48a1uuba
- 执行
cckgcf.exe并将另外两个文件作为参数传递
- 释放三个文件:
-
第二阶段(
cckgcf.exe):- 使用
GetCommandLineW接收命令行参数 - 对加密文件进行解密
- API函数经过混淆,需要动态解析
- 使用
-
第三阶段(
ratotpvvsmo.exe):- 在注册表
Run位置创建持久化项 - 从加密资源中提取并解密数据
- 包含另一个shellcode
- 在注册表
-
第四阶段:
- .NET库的DLL文件
- 使用Eazfuscator保护器进行混淆
3. 技术细节分析
3.1 进程挖空技术(Process Hollowing)
- 启动一个处于挂起状态的进程(恶意软件本身)
- 在挂起进程中分配内存并写入shellcode
- 将映像基址更改为shellcode起始地址
- 恢复进程执行,从注入的shellcode开始运行
3.2 资源解密过程
smethod_16静态方法用于加载和提取可执行文件资源数据- 使用
FindResourceEx寻找资源 - 使用
LoadResource加载资源 - 使用
LockResource获取资源内存地址 - 从加密资源前四个字节获取解密密钥
- 使用
Rfc2898DeriveBytes类生成加密密钥 - 使用
RijndaelManaged类(AES实现)解密字节数组
3.3 RAT配置解析
- 解密后获取RAT配置
- 根据配置调整恶意软件设置
- 执行配置中提供的一系列步骤
- 创建互斥锁
- 从注册表查询机器GUID
- 在
%appdata%创建包含机器GUID的文件夹(主要工作目录) - 创建
run.dat文件记录感染开始时间
3.4 字符串动态解析
- 运行时动态解析字符串以规避检测
- 使用LOL bins(Living Off the Land二进制文件)技术
- 组合预定义名称和路径值伪装成Windows原生二进制文件
- 示例:使用"DNS Monitor"和"dnsmon.exe"伪装
3.5 C2通信机制
- 动态配置所有必要设置
- 解析C2服务器域名和端口号
- 域名:
stonecold.ddns.net - 端口:2502 (0x9C6)
- 域名:
- 创建异步套接字尝试连接
- 持续发送心跳消息维持通信
- 包含身份验证机制,等待服务器特定响应
4. 攻击者基础设施分析
4.1 DuckDNS滥用
- C2服务器使用DuckDNS域
- DuckDNS是免费动态DNS服务
- 攻击者滥用原因:
- 隐藏C2服务器实际位置
- 保持匿名性
- 规避检测
- 快速应对域名/服务器封禁
5. 分析技术总结
5.1 静态分析技术
- 信息熵分析识别潜在加密/压缩数据
- 字符串和导入表分析识别恶意行为特征
- 混淆API函数的识别
5.2 动态分析技术
- 沙箱环境行为监控
- 进程挖空技术识别
- 资源解密过程跟踪
- 动态字符串解析分析
- C2通信模拟与分析
5.3 反混淆技术
- .NET程序集反混淆(Eazfuscator)
- 动态调试提取解密后的配置
- API调用链重建
6. 防御建议
6.1 检测建议
- 监控异常注册表修改(特别是Run键)
- 检测高信息熵的可执行文件
- 监控异常DNS请求(特别是动态DNS域)
- 检测进程挖空行为
- 监控临时目录异常文件创建
6.2 防护建议
- 限制对动态DNS域的访问
- 实施应用程序白名单
- 定期更新终端防护软件
- 启用行为检测机制
- 监控异常网络连接(特别是2502端口)
6.3 响应建议
- 隔离受感染主机
- 检查注册表Run键异常项
- 检查%appdata%异常目录
- 分析run.dat等时间戳文件
- 检查系统互斥锁
7. 附录:关键IOC
- 域名:
stonecold.ddns.net - 端口:2502
- 文件:
cmdkuqqycckgcf.exeka9zcqw3l6l48a1uubaratotpvvsmo.exe
- 注册表项:
ratotpvvsmo.exe - 工作目录:
%appdata%下包含机器GUID的文件夹 - 时间戳文件:
run.dat