远程访问木马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 文件行为

  1. 第一阶段:

    • 释放三个文件:
      • cmdkuqqy
      • cckgcf.exe(第二阶段样本)
      • ka9zcqw3l6l48a1uuba
    • 执行cckgcf.exe并将另外两个文件作为参数传递
  2. 第二阶段(cckgcf.exe):

    • 使用GetCommandLineW接收命令行参数
    • 对加密文件进行解密
    • API函数经过混淆,需要动态解析
  3. 第三阶段(ratotpvvsmo.exe):

    • 在注册表Run位置创建持久化项
    • 从加密资源中提取并解密数据
    • 包含另一个shellcode
  4. 第四阶段:

    • .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
  • 文件:
    • cmdkuqqy
    • cckgcf.exe
    • ka9zcqw3l6l48a1uuba
    • ratotpvvsmo.exe
  • 注册表项:ratotpvvsmo.exe
  • 工作目录:%appdata%下包含机器GUID的文件夹
  • 时间戳文件:run.dat
远程访问木马(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 文件行为 第一阶段: 释放三个文件: cmdkuqqy cckgcf.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 文件: cmdkuqqy cckgcf.exe ka9zcqw3l6l48a1uuba ratotpvvsmo.exe 注册表项: ratotpvvsmo.exe 工作目录: %appdata% 下包含机器GUID的文件夹 时间戳文件: run.dat