最经典的蠕虫病毒刨析
字数 2377 2025-08-06 21:48:53

Ramnit蠕虫病毒深度分析与防御指南

0x01 病毒概述

Ramnit是一种经典的蠕虫病毒,具有多种传播方式:

  • 通过网页传播
  • 通过感染计算机内可执行文件传播
  • 通过可移动设备自动播放功能传播

0x02 样本基本信息

属性
MD5 ff5e1f27193ce51eec318714ef038bef
SHA-1 b4fa74a6f4dab3a7ba702b6c8c129f889db32ca6
SHA-256 fd6c69c345f1e32924f0a5bb7393e191b393a78d58e2c6413b03ced7482f2320
文件大小 55KB
文件类型 Win32 EXE

0x03 主要行为分析

3.1 感染症状

  1. 可执行文件感染

    • 被感染的*.exe和*.dll程序会新增一个名为.rmnet的区段
    • 每次打开被感染程序时,会在当前目录生成"母体名+Srv.exe"的程序
  2. 网页文件感染

    • 被感染的.htm和.html文件会被添加特定恶意代码
  3. 自动播放感染

    • 被感染的autorun.inf会被写入恶意内容

3.2 主要恶意行为

  1. 创建互斥体"KyUffThOkYwRRtgPP"防止重复运行
  2. 投放并运行"C:\Program Files\Microsoft\DesktopLayer.exe"
  3. 写入Autorun.inf实现自动播放感染
  4. 启动并注入iexplore.exe进程
    • 通过Hook 'ZwWriteVirtualMemory'函数
    • 写入内存改变EIP执行流程
  5. 收集用户数据并连接C&C服务器(fget-career.com:443)
  6. 劫持winlogon系统项的userinit来运行感染母体
  7. 全盘感染特定后缀文件(.exe, .dll, .htm, .html)

0x04 详细技术分析

4.1 脱壳过程

  1. 样本使用UPX壳,可通过ESP定律脱壳
  2. 脱壳后发现可能还有壳,使用x64dbg调试分析
  3. 发现解码过程,跟踪后再次使用ESP定律脱壳

4.2 核心功能分析

4.2.1 互斥体创建

CreateMutex("KyUffThOkYwRRtgPP");

4.2.2 文件备份

  1. 获取运行程序全路径
  2. 判断自身是否为DesktopLayer.exe
  3. 如果不是则拷贝自身到备选路径(DesktopLayer.exe)并启动
  4. 启动后退出原进程

4.2.3 API获取

从ntdll中动态获取关键API函数

4.2.4 iexplore远程执行

  1. 查询iexplore.exe浏览器路径
  2. Hook "ZwWriteVirtualMemory"函数
  3. 调用CreateProcessA启动进程时触发Hook
  4. Hook处理程序:
    • 从自身内存解密PE文件
    • 写入iexplore.exe进程
    • 写入shellcode进行初始化(申请内存、对齐区段、初始化导入表、修复重定位、修复入口点)

4.3 核心DLL分析

注入的DLL创建6个线程执行不同恶意操作:

线程1:劫持winlogon.exe

  • 通过注册表查询winlogon目录的userinit项
  • 确保母体能被开机运行
  • 每隔1秒查询一次(无限循环)

线程2:获取当前时间

  • 访问google.com:80获取时间
  • 备用时间服务器:
    • time.windows.com
    • time.nist.gov
    • time.nuri.net
    • ntp1.tama.kwansei.ac.jp

线程3:记录感染时间

  • 使用SystemTimeAsFileTime获取感染时间
  • 写入"dmlconf.dat"文件

线程4:数据窃取与C&C通信

  1. 收集计算机信息:
    • 分区序列号
    • 系统build版本
    • 主/次版本号
    • 国家代码
  2. 组合数据格式示例:
    20406F46000121F800000A28000000050000000186
    
  3. 解密C&C域名:"fget-career.com:443"(伪装HTTPS)
  4. 通信过程:
    • 首次使用固定格式握手:ff 00 ?? 00 00 00
    • 发送组合数据及MD5加密字符串

线程5:文件感染

  • 每隔30秒执行一次全盘感染
  • 排除目录:Windows目录、Program Files目录等系统目录
  • 感染文件类型:
    • .exe
    • .dll
    • .htm
    • .html
  • 感染机制:
    • 对.exe/.dll:
      • 检查最后一个区段是否为.rmnet(防重复感染)
      • 使用文件映射加载到内存
      • 添加.rmnet区段(包含感染母体)
    • 对.htm/.html:
      • 检查是否以</SCRIPT>结尾(防重复感染)
      • 添加特定恶意代码

线程6:自动播放感染

  1. 遍历所有驱动器路径
  2. 筛选可移动磁盘和未感染磁盘
  3. 检查autorun.inf是否以"RmN"结尾(感染标记)
  4. 写入恶意autorun.inf内容并添加"RmN"标记

0x05 防御与清除方案

5.1 防御措施

  1. 及时更新操作系统
  2. 安装正规杀毒软件
  3. 禁用自动播放功能
  4. 定期检查系统关键注册表项
  5. 监控可疑进程创建行为

5.2 清除步骤

  1. 终止病毒进程

    • 遍历进程句柄表查找创建了"KyUffThOkYwRRtgPP"互斥体的进程
    • 结束该进程
    • 手动创建同名互斥体防止再次感染
  2. 文件修复

    • 全盘搜索被感染文件
    • 对.exe/.dll文件:
      • 恢复原始入口点
      • 删除.rmnet感染区段
      • 修复文件校验和
    • 对.htm/.html文件:
      • 删除添加的恶意代码
    • 删除所有autorun.inf文件中的恶意内容
  3. 注册表修复

    • 检查并恢复winlogon的userinit项
    • 删除病毒创建的注册表项

0x06 技术总结

Ramnit蠕虫病毒展示了多种高级技术:

  1. 多阶段壳保护
  2. 进程注入与API Hook
  3. 多线程协同工作
  4. 多种传播机制结合
  5. C&C通信隐蔽技术
  6. 持久化机制

该病毒特别针对低版本和不安全配置的系统,建议用户保持系统更新并采用纵深防御策略。

Ramnit蠕虫病毒深度分析与防御指南 0x01 病毒概述 Ramnit是一种经典的蠕虫病毒,具有多种传播方式: 通过网页传播 通过感染计算机内可执行文件传播 通过可移动设备自动播放功能传播 0x02 样本基本信息 | 属性 | 值 | |------|----| | MD5 | ff5e1f27193ce51eec318714ef038bef | | SHA-1 | b4fa74a6f4dab3a7ba702b6c8c129f889db32ca6 | | SHA-256 | fd6c69c345f1e32924f0a5bb7393e191b393a78d58e2c6413b03ced7482f2320 | | 文件大小 | 55KB | | 文件类型 | Win32 EXE | 0x03 主要行为分析 3.1 感染症状 可执行文件感染 : 被感染的* .exe和* .dll程序会新增一个名为 .rmnet 的区段 每次打开被感染程序时,会在当前目录生成"母体名+Srv.exe"的程序 网页文件感染 : 被感染的.htm和.html文件会被添加特定恶意代码 自动播放感染 : 被感染的autorun.inf会被写入恶意内容 3.2 主要恶意行为 创建互斥体"KyUffThOkYwRRtgPP"防止重复运行 投放并运行"C:\Program Files\Microsoft\DesktopLayer.exe" 写入Autorun.inf实现自动播放感染 启动并注入iexplore.exe进程 通过Hook 'ZwWriteVirtualMemory'函数 写入内存改变EIP执行流程 收集用户数据并连接C&C服务器(fget-career.com:443) 劫持winlogon系统项的userinit来运行感染母体 全盘感染特定后缀文件(.exe, .dll, .htm, .html) 0x04 详细技术分析 4.1 脱壳过程 样本使用UPX壳,可通过ESP定律脱壳 脱壳后发现可能还有壳,使用x64dbg调试分析 发现解码过程,跟踪后再次使用ESP定律脱壳 4.2 核心功能分析 4.2.1 互斥体创建 4.2.2 文件备份 获取运行程序全路径 判断自身是否为DesktopLayer.exe 如果不是则拷贝自身到备选路径(DesktopLayer.exe)并启动 启动后退出原进程 4.2.3 API获取 从ntdll中动态获取关键API函数 4.2.4 iexplore远程执行 查询iexplore.exe浏览器路径 Hook "ZwWriteVirtualMemory"函数 调用CreateProcessA启动进程时触发Hook Hook处理程序: 从自身内存解密PE文件 写入iexplore.exe进程 写入shellcode进行初始化(申请内存、对齐区段、初始化导入表、修复重定位、修复入口点) 4.3 核心DLL分析 注入的DLL创建6个线程执行不同恶意操作: 线程1:劫持winlogon.exe 通过注册表查询winlogon目录的userinit项 确保母体能被开机运行 每隔1秒查询一次(无限循环) 线程2:获取当前时间 访问google.com:80获取时间 备用时间服务器: time.windows.com time.nist.gov time.nuri.net ntp1.tama.kwansei.ac.jp 线程3:记录感染时间 使用SystemTimeAsFileTime获取感染时间 写入"dmlconf.dat"文件 线程4:数据窃取与C&C通信 收集计算机信息: 分区序列号 系统build版本 主/次版本号 国家代码 组合数据格式示例: 解密C&C域名:"fget-career.com:443"(伪装HTTPS) 通信过程: 首次使用固定格式握手: ff 00 ?? 00 00 00 发送组合数据及MD5加密字符串 线程5:文件感染 每隔30秒执行一次全盘感染 排除目录:Windows目录、Program Files目录等系统目录 感染文件类型: .exe .dll .htm .html 感染机制: 对.exe/.dll: 检查最后一个区段是否为.rmnet(防重复感染) 使用文件映射加载到内存 添加.rmnet区段(包含感染母体) 对.htm/.html: 检查是否以 </SCRIPT> 结尾(防重复感染) 添加特定恶意代码 线程6:自动播放感染 遍历所有驱动器路径 筛选可移动磁盘和未感染磁盘 检查autorun.inf是否以"RmN"结尾(感染标记) 写入恶意autorun.inf内容并添加"RmN"标记 0x05 防御与清除方案 5.1 防御措施 及时更新操作系统 安装正规杀毒软件 禁用自动播放功能 定期检查系统关键注册表项 监控可疑进程创建行为 5.2 清除步骤 终止病毒进程 : 遍历进程句柄表查找创建了"KyUffThOkYwRRtgPP"互斥体的进程 结束该进程 手动创建同名互斥体防止再次感染 文件修复 : 全盘搜索被感染文件 对.exe/.dll文件: 恢复原始入口点 删除.rmnet感染区段 修复文件校验和 对.htm/.html文件: 删除添加的恶意代码 删除所有autorun.inf文件中的恶意内容 注册表修复 : 检查并恢复winlogon的userinit项 删除病毒创建的注册表项 0x06 技术总结 Ramnit蠕虫病毒展示了多种高级技术: 多阶段壳保护 进程注入与API Hook 多线程协同工作 多种传播机制结合 C&C通信隐蔽技术 持久化机制 该病毒特别针对低版本和不安全配置的系统,建议用户保持系统更新并采用纵深防御策略。