Gamaredon组织某样本分析
字数 2104 2025-08-24 16:48:16

Gamaredon组织样本分析教学文档

0x01 Запит СБУ.docx文档分析

  1. 文档特征:

    • 文件名:Запит СБУ.docx (乌克兰语,意为"SBU请求")
    • MD5哈希:C0DC0C23E675D0C380E243FB36EE005E
    • 包含远程注入模板功能
  2. 文档内容分析:

    • 文档图标显示为可疑文件
    • 内容伪装成乌克兰安全局(SBU)的正式请求

0x02 opt.dot模板分析

  1. 模板特征:

    • 文件名:opt.dot
    • MD5哈希:689FAB7A016DAE57300048539A4C807E
    • 下载URL:http://dochlist[.]hopto[.]org/opt.dot
  2. 宏代码分析:

    • 启用了恶意宏
    • 获取系统信息:
      • 主机名(ComputerName)
      • 系统磁盘序列号(SerialNumber)
      • 使用下划线"_"拼接这两个值
    • 构造URL路径:http://skrembler[.]hopto[.]org/ComputerName_SerialNumber/tor.php
  3. 持久化机制:

    • 在启动目录创建security.vbs文件
    • 逐步向该VBS文件写入恶意内容

0x03 security.vbs分析

  1. 反沙箱技术:

    • 检测沙箱环境
    • 如果检测到沙箱(运行约25秒),则通过延时规避分析
  2. 主要功能模块:

    • 网络通信:
      • 使用XMLHTTP访问构造的URL
      • 服务器响应作为函数返回值
    • 随机字符串生成:
      • 生成QopZ个随机字符用于文件命名
    • 编码函数(Encode):
      • 参数1(FCkE):文本文件,内容来自CZeq()函数
      • 参数2(BGmO):要写入的EXE文件
      • 参数3(msKq):GetHKcc()返回的数组
      • 功能:对TXT文件内容进行异或操作后写入EXE文件
    • ASCII转换函数:
      • 将字符串中每个字符转换为ASCII码存入数组
  3. 文件操作:

    • 将内容写入TXT文件
    • 检查文件大小:小于1025字节则删除
    • 调用Encode函数将TXT内容写入EXE
    • 如果EXE已存在,在启动目录创建VBS脚本
  4. 执行逻辑:

    • 循环检查EXE文件数量
    • 当EXE文件超过2个时,使用WMI重启系统
    • 重启后执行启动目录中的EXE文件

0x04 启动目录内EXE文件分析

0x04.1 8957.cmd分析

  • 实际是SFX(自解压)文件
  • 去混淆后内容:
    start /b 28847.exe "ppfljk,fkbcerbgblfhs"
    del "%~f0"
    
  • 解压密码:"ppfljk,fkbcerbgblfhs"

0x04.2 28847.exe分析

  • 输入密码解压后包含多个文件
  • 主要组件:6323.exe

0x04.3 6323.exe分析

  1. 基本特征:

    • .NET程序
    • 使用dnSpy进行逆向分析
    • 包含大量混淆代码
  2. 主要函数分析:

    • BatJwAk():
      • 功能:将十六进制ASCII码(以":"分隔)转换为字符串
    • Main():
      • 调用CYIxJzc()遍历Word/Excel注册表项(10.0-17.0版本)
      • 调用BcNIQrU()修改注册表键值
    • jYRcuEu():
      • 通过计算实现延时功能
    • cztXiVD():
      • 遍历非系统盘下文件
    • llpJYEs():
      • 读取存放宏代码的TXT文件
      • 判断文件是否符合条件(非系统文件,扩展名为.doc/.xls)
    • zrdMiQo():
      • 复制文件内容到新文件(文件名多一个空格)
      • 删除原文件并将新文件复制回原目录
    • cBtQGAf():
      • 向新文件写入宏代码
      • 根据Bool参数决定写入内容
      • 调用hXblmtN()终止"EXCEL"和"WINWORD"进程

0x04.4 wordMacros.txt分析

  1. 宏代码差异:

    • 3处关键不同点
    • 主要差异在字符串拼接方式
  2. 新增功能:

    • 修改注册表
    • 使用不同C2 URL:http://masseffect[.]space/
    • 创建VBS设置定时任务
    • 在%AppData%\Microsoft\Office下创建IndexOffice.vbs

0x05 Hashes && URL

  1. 文件哈希:

    • Запит СБУ.docx: C0DC0C23E675D0C380E243FB36EE005E
    • opt.dot: 689FAB7A016DAE57300048539A4C807E
    • 其他相关哈希:
      • 107010D9E4FF8436F872F17A2B13BBE4
      • AF19975E1450D0CA7C4533F11D5E67D2
      • 4286A15469AE50182CEA715ED6FA4109
  2. 相关URL:

    • http://masseffect[.]space/
    • http://dochlist[.]hopto[.]org/opt.dot
    • http://skrembler[.]hopto[.]org

防御建议

  1. 检测点:

    • 监控异常文档行为(如创建VBS、修改注册表)
    • 检测对hopto.org域名的访问
    • 监控启动目录异常文件创建
  2. 防护措施:

    • 禁用Office宏或限制宏执行
    • 监控和限制WMI重启操作
    • 检测异常进程终止行为(如强制结束Office进程)
    • 对非系统盘文档操作进行监控
  3. 威胁情报:

    • 将相关哈希和URL加入黑名单
    • 监控相关C2基础设施活动
Gamaredon组织样本分析教学文档 0x01 Запит СБУ.docx文档分析 文档特征: 文件名:Запит СБУ.docx (乌克兰语,意为"SBU请求") MD5哈希:C0DC0C23E675D0C380E243FB36EE005E 包含远程注入模板功能 文档内容分析: 文档图标显示为可疑文件 内容伪装成乌克兰安全局(SBU)的正式请求 0x02 opt.dot模板分析 模板特征: 文件名:opt.dot MD5哈希:689FAB7A016DAE57300048539A4C807E 下载URL:http://dochlist[ .]hopto[ . ]org/opt.dot 宏代码分析: 启用了恶意宏 获取系统信息: 主机名(ComputerName) 系统磁盘序列号(SerialNumber) 使用下划线"_ "拼接这两个值 构造URL路径:http://skrembler[ .]hopto[ .]org/ComputerName_ SerialNumber/tor.php 持久化机制: 在启动目录创建security.vbs文件 逐步向该VBS文件写入恶意内容 0x03 security.vbs分析 反沙箱技术: 检测沙箱环境 如果检测到沙箱(运行约25秒),则通过延时规避分析 主要功能模块: 网络通信: 使用XMLHTTP访问构造的URL 服务器响应作为函数返回值 随机字符串生成: 生成QopZ个随机字符用于文件命名 编码函数(Encode): 参数1(FCkE):文本文件,内容来自CZeq()函数 参数2(BGmO):要写入的EXE文件 参数3(msKq):GetHKcc()返回的数组 功能:对TXT文件内容进行异或操作后写入EXE文件 ASCII转换函数: 将字符串中每个字符转换为ASCII码存入数组 文件操作: 将内容写入TXT文件 检查文件大小:小于1025字节则删除 调用Encode函数将TXT内容写入EXE 如果EXE已存在,在启动目录创建VBS脚本 执行逻辑: 循环检查EXE文件数量 当EXE文件超过2个时,使用WMI重启系统 重启后执行启动目录中的EXE文件 0x04 启动目录内EXE文件分析 0x04.1 8957.cmd分析 实际是SFX(自解压)文件 去混淆后内容: 解压密码:"ppfljk,fkbcerbgblfhs" 0x04.2 28847.exe分析 输入密码解压后包含多个文件 主要组件:6323.exe 0x04.3 6323.exe分析 基本特征: .NET程序 使用dnSpy进行逆向分析 包含大量混淆代码 主要函数分析: BatJwAk(): 功能:将十六进制ASCII码(以":"分隔)转换为字符串 Main(): 调用CYIxJzc()遍历Word/Excel注册表项(10.0-17.0版本) 调用BcNIQrU()修改注册表键值 jYRcuEu(): 通过计算实现延时功能 cztXiVD(): 遍历非系统盘下文件 llpJYEs(): 读取存放宏代码的TXT文件 判断文件是否符合条件(非系统文件,扩展名为.doc/.xls) zrdMiQo(): 复制文件内容到新文件(文件名多一个空格) 删除原文件并将新文件复制回原目录 cBtQGAf(): 向新文件写入宏代码 根据Bool参数决定写入内容 调用hXblmtN()终止"EXCEL"和"WINWORD"进程 0x04.4 wordMacros.txt分析 宏代码差异: 3处关键不同点 主要差异在字符串拼接方式 新增功能: 修改注册表 使用不同C2 URL:http://masseffect[ . ]space/ 创建VBS设置定时任务 在%AppData%\Microsoft\Office下创建IndexOffice.vbs 0x05 Hashes && URL 文件哈希: Запит СБУ.docx: C0DC0C23E675D0C380E243FB36EE005E opt.dot: 689FAB7A016DAE57300048539A4C807E 其他相关哈希: 107010D9E4FF8436F872F17A2B13BBE4 AF19975E1450D0CA7C4533F11D5E67D2 4286A15469AE50182CEA715ED6FA4109 相关URL: http://masseffect[ . ]space/ http://dochlist[ .]hopto[ . ]org/opt.dot http://skrembler[ .]hopto[ . ]org 防御建议 检测点: 监控异常文档行为(如创建VBS、修改注册表) 检测对hopto.org域名的访问 监控启动目录异常文件创建 防护措施: 禁用Office宏或限制宏执行 监控和限制WMI重启操作 检测异常进程终止行为(如强制结束Office进程) 对非系统盘文档操作进行监控 威胁情报: 将相关哈希和URL加入黑名单 监控相关C2基础设施活动