最经典的蠕虫病毒刨析
字数 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 感染症状
-
可执行文件感染:
- 被感染的*.exe和*.dll程序会新增一个名为
.rmnet的区段 - 每次打开被感染程序时,会在当前目录生成"母体名+Srv.exe"的程序
- 被感染的*.exe和*.dll程序会新增一个名为
-
网页文件感染:
- 被感染的.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 互斥体创建
CreateMutex("KyUffThOkYwRRtgPP");
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版本
- 主/次版本号
- 国家代码
- 组合数据格式示例:
20406F46000121F800000A28000000050000000186 - 解密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>结尾(防重复感染) - 添加特定恶意代码
- 检查是否以
- 对.exe/.dll:
线程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通信隐蔽技术
- 持久化机制
该病毒特别针对低版本和不安全配置的系统,建议用户保持系统更新并采用纵深防御策略。