在长期的日常安全事件监测过程中,安天CERT经常捕获到大量的MyDoom蠕虫样本和传播该蠕虫的钓鱼邮件。受害主机感染MyDoom后会被放置后门,以便攻击者下发后续恶意软件,进行攻击或窃密等操作。MyDoom蠕虫最早发现于2004年,至今仍然活跃,主要利用SMTP协议传播钓鱼邮件。研究人员通过分析发现,MyDoom蠕虫落地后会将自身的前三个区段名替换为随机生成的8个字母,并将其作为钓鱼邮件的附件再次发送,导致每次传播时样本的哈希值均不相同。
MyDoom蠕虫运行后会不断扫描主机文件,提取邮箱地址,随机获取样本中的邮件标题、发件人等信息,压缩后的MyDoom作为附件生成钓鱼邮件,使用SMTP协议不断发送钓鱼邮件。最后使用DGA(域名生成算法)生成上线域名,进行三次校验后,回传本地信息,并等待“DDoS攻击、下发恶意文件和可移动介质传播”等指令,期间会释放多个文件以及写入注册表,对于此种情况,可使用集成的ARK工具ATool进行快速处置[1]。
2.1 钓鱼邮件
安天CERT捕获到多封传播MyDoom蠕虫的钓鱼邮件,其附件内可执行文件为MyDoom蠕虫。邮件中包含具有迷惑性的标题和正文内容,例如:“网络汇款提示”、“生日祝福”、“更改账户密码通知”等,以诱导用户点击查看附件。部分钓鱼邮件如图所示:
图2‑1 钓鱼邮件内容
2.2 攻击流程
MyDoom蠕虫通过钓鱼邮件进行传播,运行后会创建注册表启动项,复制自身到C:Windowssystem32smnss.exe并启动。smnss.exe被启动后会调用线程不断从本地提取邮箱地址并发送钓鱼邮件,最后连接C2服务端等待下发指令,如DDoS攻击、下发恶意文件和可移动介质传播等操作。
图2‑2 攻击流程
3.1 清除步骤
(1)结束进程
开启3159端口的进程(解压出的附件或smnss.exe,该进程有守护进程需要先结束)
名称为smnss.exe的进程
(2)删除文件(由于MyDoom为32位样本所以在不同位数的操作系统上有一定的区别)
32位操作系统:
解压出的附件
C:Windowssystem32smnss.exe
C:Windowssystem32shervans.dll
C:Windowssystem32grcopy.dll
C:Windowssystem32ctfmen.dll
C:Windowssystem32zipfi.dll
C:Windowssystem32zipfiaq.dll
C:Windowssystem32satornas.dll
64位操作系统:
解压出的附件
C:WindowsSysWOW64smnss.exe
C:WindowsSysWOW64shervans.dll
C:WindowsSysWOW64grcopy.dll
C:WindowsSysWOW64ctfmen.dll
C:WindowsSysWOW64zipfi.dll
C:WindowsSysWOW64zipfiaq.dll
C:WindowsSysWOW64satornas.dll
(3)删除注册表(由于MyDoom为32位样本所以在不同位数的操作系统上有一定的区别)
32位操作系统:
HKEY_CLASSES_ROOTCLSID{E6FB5E20-DE35-11CF-9C87-00AA005127ED}InprocServer32
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorervulnvol32Version
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorervulnvol32Version
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunctfmen
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunctfmen
64位操作系统:
HKEY_CLASSES_ROOTWow6432NodeCLSID{E6FB5E20-DE35-11CF-9C87-00AA005127ED}InprocServer32
HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftWindowsCurrentVersionExplorervulnvol32Version
HKEY_CURRENT_USERSoftwareWow6432NodeMicrosoftWindowsCurrentVersionExplorervulnvol32Version
HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftWindowsCurrentVersionRunctfmen
HKEY_CURRENT_USERSoftwareWow6432NodeMicrosoftWindowsCurrentVersionRunctfmen
3.2 使用ATool进行清除
图3‑1 下载ATool
MyDoom释放文件、创建注册表较多,若使用任务管理器、资源管理器和注册表编辑器等Windows自带工具进行处置,则会导致频繁切换工具使得操作不便、效率低。当MyDoom蠕虫加载shervans.dll后会启动线程不断调用smnss.exe(病毒母体),所以清除时需要先关闭该进程。由于shervans.dll会启动线程开启3159端口,所以可以使用这个作为特征识别最初的样本,使用ATool可快速识别到开启该端口的进程并进行处置。以x64位MyDoom为例:
(1)端口管理中,暴力删除开启3159端口的进程,使用“删除文件”不能删除运行状态下的文件。
图3‑2 暴力删除开启3159端口的进程
(2)进程管理中,结束并删除附件进程。
图3‑3 结束并删除恶意进程
(3)自启动项中,删除自启动项ctfmen,暴力删除ctfmen.exe文件。
图3‑4 定位自启动项
定位到注册表,删除该项。
图3‑5 删除自启动项
(4)文件管理中,删除SysWOW64下的释放文件,先点击修改时间进行排序,随后点击查找进行文件的定位,最后使用暴力删除文件将文件删除,除下图所示仍需删除shervans.dll、grcopy.dll。
图3‑6 删除MyDoom释放文件
(5)注册表管理中,定位到注册表项后删除表项,除下图所示仍需删除,HKEY_LOCAL_MACHINE(或HKEY_CURRENT_USER)SoftwareWow6432NodeMicrosoftWindowsCurrentVersionExplorervulnvol32Version中的表项。
图3‑7 删除MyDoom写入的注册表项
(1)安装终端防护软件:安装反病毒软件,建议安装安天智甲终端防御系统;
(2)加强口令强度:避免使用弱口令,建议使用16位或更长的口令,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
(3)部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。安天探海威胁检测系统(PTD)以网络流量为检测分析对象,能精准检测出已知海量恶意代码和网络攻击活动,有效发现网络可疑行为、资产和各类未知威胁;
(4)安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场等待安全工程师对计算机进行排查;安天7*24小时服务热线:400-840-9234。
经验证,安天智甲终端防御系统(简称IEP)可实现对该蠕虫的有效查杀。
图4‑1 安天智甲可实现对MyDoom蠕虫的有效查杀
MyDoom蠕虫运行后首先检测虚拟机和调试器,然后通过注册表项A判断是否首次运行。
(1)若首次运行,则在C:Windowssystem32目录下释放ctfmen.exe、shervans.dll、grcopy.dll,随后在注册表中记录5项感染标识,调用shervans.dll进行初始化、复制并运行smnss.exe、守护smnss.exe进程、设置自启动、监听3159端口进行代理等恶意操作,最后调用ctfmen.exe(启动母体复制文件smnss.exe或shervans.dll)。
(2)若非首次运行,则创建互斥量A保证自身唯一实例运行,判断注册表项B。若存在,则加载shervans.dll进行初始化和代理等操作;若不存在,则创建注册表项B。判断后启动线程收集Outlook邮箱通讯录,并从体积小于0.97MB且后缀为“html”、“htm”、“txt”、“xml”、“doc”、“pl”、“php”、“tbb”的文件中过滤特征字符串搜索邮箱地址,随后以MyDoom作为附件向其发送随机生成的钓鱼邮件。判断是否存在互斥量B,若不存在则加载shervans.dll,根据感染标识usbactiv的值判断是否进行移动介质传播。
最后使用DGA(域名生成算法)随机生成上线域名,经过三次校验后,连接C2服务端上传信息,包括:注册表iduser项的值、端口号3159、本地IP、操作系统版本。等待攻击者指令继而执行重启自身、DDoS攻击、下发恶意文件和可移动介质传播等操作。
注册表项A:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorervulnvol32Version或HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorervulnvol32Version
注册表项B:HKEY_CLASSES_ROOTCLSID{E6FB5E20-DE35-11CF-9C87-00AA005127ED}InprocServer32
互斥量A:VULnaShvolna,保证smnss.exe唯一运行
互斥量B:x_socks5aan,加载shervans.dll标识
SoftwareMicrosoftWindowsCurrentVersionExplorervulnvol32Version下MyDoom写入的各个键值,如下表所示:
序号 |
项 |
值 |
说明 |
1 |
iduser |
字符串:随机8字符 |
机器的标识,连接C2服务端时提供 |
2 |
statem |
数字 |
标识邮件发送线程被启动的次数,初始值为0 |
3 |
namecp |
字符串:随机8字符.exe |
可移动介质感染时复制MyDoom的文件名 |
4 |
usw |
字符串 |
代理使用的用户名,初始值为:kgbee |
5 |
pafw |
字符串 |
代理使用的密码,初始值为:kcnfj |
6 |
usbactiv |
数字 |
感染可移动介质标识,初始值为0(不感染可移动介质) |
7 |
timeout |
数字 |
C2命令等待时间 |
5.1 释放文件
MyDoom蠕虫运行后释放3个核心文件:母体程序smnss.exe、母体启动程序ctfmen.exe以及初始化程序shervans.dll,释放的文件功能说明,如下表所示:
文件名称 |
文件所在路径 |
功能说明 |
smnss.exe(病毒母体) |
C:Windowssystem32 |
传播钓鱼邮件、通过可移动介质传播、连接C2 服务端 |
ctfmen.exe |
C:Windowssystem32 |
启动病毒母体(自启动项)、若母体不存在则调用shervans.dll |
shervans.dll |
C:Windowssystem32 |
初始化环境、守护母体进程、设置自启动、监听3159端口 |
5.2 复制自身
MyDoom在复制自身时,会调用特定函数来修改文件的区段名,将前三个区段名替换为随机生成的8个字母,以确保每次复制都会产生不同哈希值的文件。通过这种方式,增加了文件的唯一性和随机性。
图5‑1 修改区段名
5.3 持久化
MyDoom在加载shervans.dll后将ctfmen.exe程序添加至注册表启动项,实现smnss.exe(病毒母体)持久化:
图5‑2 创建自启动项
5.4 设置监听端口
MyDoom在加载shervans.dll后设置监听3159端口:
图5‑3 设置监听端口
5.5 传播钓鱼邮件
5.5.1 获取邮箱地址
MyDoom获取邮箱地址方式有两种:
(1)获取用户主机Outlook通讯录中的邮箱地址,并释放MyDoom压缩后的文件zipfi.dll与zipfiaq.dll:
图5‑4 获取Outlook通讯录中邮箱地址
(2)遍历用户主机中后缀名为“html”、“htm”、“txt”、“xml”、“doc”、“pl”、“php”、“tbb”的文件,从中提取出邮箱地址,如下图所示:
图5‑5 用户主机文件中邮箱地址
5.5.2 发送钓鱼邮件
不断扫描本地文件和Outlook通讯录,提取其中的邮箱地址,使用SMTP协议发送随机生成的钓鱼邮件。
图5‑6 发送钓鱼邮件
5.6 通过可移动介质传播
MyDoom释放satornas.dll以备在可移动介质传播时复制为autorun.inf,结合释放出的病毒母体达到传播的目的。
图5‑7 autorun.inf中内容
通过C2指令可以开启和关闭可移动介质感染。
图5‑8 通过C2指令开启和关闭可移动介质感染
5.7 命令与控制
使用DGA获取域名,该变种相比于之前变种增加了三次校验,以保证连接攻击者C2服务端,校验成功后连接C2服务端等待接收远控指令。
图5‑9 DGA实现
图5‑10 三次校验
通过校验后进行主机信息的上传:
图5‑11 上传主机信息
远控的功能包括DDoS攻击、下发恶意文件和可移动介质传播等,如下表所示:
指令 |
功能 |
http |
HTTP泛洪攻击 |
spamon |
初始化发送邮件次数 |
down_file |
下载文件到C:Windowssystem32donzx.dll |
pusk |
下载文件并运行文件 |
restart |
重新运行 |
timeout |
设置命令执行间隔 |
socksa |
设置注册表中的用户名、密码 |
flash_on |
开启可移动介质感染 |
flash_off |
关闭可移动介质感染 |
icmp |
ICMP泛洪攻击 |
参考资料
[2] 安天. 安天垂直响应平台(安天安全威胁排查工具、ATool系统安全内核分析工具)[R/OL],https://vs2.antiy.cn
原文始发于微信公众号(安天集团):使用ARK工具ATool清除典型蠕虫MyDoom