时间 : 2023年11月21日 来源: 安天CERT
在长期的日常安全事件监测过程中,安天CERT经常捕获到大量的MyDoom蠕虫样本和传播该蠕虫的钓鱼邮件。受害主机感染MyDoom后会被放置后门,以便攻击者下发后续恶意软件,进行攻击或窃密等操作。MyDoom蠕虫最早发现于2004年,至今仍然活跃,主要利用SMTP协议传播钓鱼邮件。研究人员通过分析发现,MyDoom蠕虫落地后会将自身的前三个区段名替换为随机生成的8个字母,并将其作为钓鱼邮件的附件再次发送,导致每次传播时样本的哈希值均不相同。
MyDoom蠕虫运行后会不断扫描主机文件,提取邮箱地址,随机获取样本中的邮件标题、发件人等信息,压缩后的MyDoom作为附件生成钓鱼邮件,使用SMTP协议不断发送钓鱼邮件。最后使用DGA(域名生成算法)生成上线域名,进行三次校验后,回传本地信息,并等待“DDoS攻击、下发恶意文件和可移动介质传播”等指令,期间会释放多个文件以及写入注册表,对于此种情况,可使用集成的ARK工具ATool进行快速处置[1]。
ATool是针对系统进行安全分析和反RootKit木马的工具,有Windows版本和信创系统版本。主要供网络管理员、勘察取证人员、计算机爱好者和专业用户使用。ATool对进程、服务、驱动、内核模块等执行对象和启动项、计划任务等环境配置进行相关枚举,并以清单的方式来呈现。通过本地库+云端对象信誉查询的方式对相关对象的安全信誉进行评价,从而“孤立”出威胁对象和值得提取分析的可疑对象。
安天CERT捕获到多封传播MyDoom蠕虫的钓鱼邮件,其附件内可执行文件为MyDoom蠕虫。邮件中包含具有迷惑性的标题和正文内容,例如:“网络汇款提示”、“生日祝福”、“更改账户密码通知”等,以诱导用户点击查看附件。部分钓鱼邮件如图所示:
图2-1 钓鱼邮件内容
MyDoom蠕虫通过钓鱼邮件进行传播,运行后会创建注册表启动项,复制自身到C:\Windows\system32\smnss.exe并启动。smnss.exe被启动后会调用线程不断从本地提取邮箱地址并发送钓鱼邮件,最后连接C2服务端等待下发指令,如DDoS攻击、下发恶意文件和可移动介质传播等操作。
图2-2 攻击流程
(1)结束进程
开启3159端口的进程(解压出的附件或smnss.exe,该进程有守护进程需要先结束)
名称为smnss.exe的进程
(2)删除文件(由于MyDoom为32位样本所以在不同位数的操作系统上有一定的区别)
32位操作系统:
解压出的附件
C:\Windows\system32\smnss.exe
C:\Windows\system32\shervans.dll
C:\Windows\system32\grcopy.dll
C:\Windows\system32\ctfmen.dll
C:\Windows\system32\zipfi.dll
C:\Windows\system32\zipfiaq.dll
C:\Windows\system32\satornas.dll
64位操作系统:
解压出的附件
C:\Windows\SysWOW64\smnss.exe
C:\Windows\SysWOW64\shervans.dll
C:\Windows\SysWOW64\grcopy.dll
C:\Windows\SysWOW64\ctfmen.dll
C:\Windows\SysWOW64\zipfi.dll
C:\Windows\SysWOW64\zipfiaq.dll
C:\Windows\SysWOW64\satornas.dll
(3)删除注册表(由于MyDoom为32位样本所以在不同位数的操作系统上有一定的区别)
32位操作系统:
HKEY_CLASSES_ROOT\CLSID\{E6FB5E20-DE35-11CF-9C87-00AA005127ED}\InprocServer32
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ctfmen
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ctfmen
64位操作系统:
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E6FB5E20-DE35-11CF-9C87-00AA005127ED}\InprocServer32
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version
HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\ctfmen
HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\ctfmen
系统深度分析工具ATool是安天实验室在2006年开始发布更新的一款系统安全内核分析和RootKit检测工具,因Windows 10以后系统签名和启动认证的要求更为苛刻,很多原有免费ARK工具都不能在Windows 10等更新的系统下运行,所以近日安天更新发布了ATool V3.5免费版本,加强了对 Windows 10及Windows 11版本的支持,可在安天垂直响应平台[2]下载,如下所示:
图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)\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version中的表项。
图3-7 删除MyDoom写入的注册表项
(1)安装终端防护软件:安装反病毒软件,建议安装安天智甲终端防御系统;
(2)加强口令强度:避免使用弱口令,建议使用16位或更长的口令,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
(3)部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。安天探海威胁检测系统(PTD)以网络流量为检测分析对象,能精准检测出已知海量恶意代码和网络攻击活动,有效发现网络可疑行为、资产和各类未知威胁;
(4)安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场等待安全工程师对计算机进行排查;安天7*24小时服务热线:400-840-9234。
经验证,安天智甲终端防御系统(简称IEP)可实现对该蠕虫的有效查杀。
图4-1 安天智甲可实现对MyDoom蠕虫的有效查杀
MyDoom蠕虫运行后首先检测虚拟机和调试器,然后通过注册表项A判断是否首次运行。
(1)若首次运行,则在C:\Windows\system32\目录下释放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_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version或HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version
注册表项B:HKEY_CLASSES_ROOT\CLSID\{E6FB5E20-DE35-11CF-9C87-00AA005127ED}\InprocServer32
互斥量A:VULnaShvolna,保证smnss.exe唯一运行
互斥量B:x_socks5aan,加载shervans.dll标识
Software\Microsoft\Windows\CurrentVersion\Explorer\vulnvol32\Version下MyDoom写入的各个键值,如下表所示:
表5-1 注册表Version项下感染标识各键值说明
序号 |
项 |
值 |
说明 |
1 |
iduser |
字符串:随机8字符 |
机器的标识,连接C2服务端时提供 |
2 |
statem |
数字 |
标识邮件发送线程被启动的次数,初始值为0 |
3 |
namecp |
字符串:随机8字符.exe |
可移动介质感染时复制MyDoom的文件名 |
4 |
usw |
字符串 |
代理使用的用户名,初始值为:kgbee |
5 |
pafw |
字符串 |
代理使用的密码,初始值为:kcnfj |
6 |
usbactiv |
数字 |
感染可移动介质标识,初始值为0(不感染可移动介质) |
7 |
timeout |
数字 |
C2命令等待时间 |
MyDoom蠕虫运行后释放3个核心文件:母体程序smnss.exe、母体启动程序ctfmen.exe以及初始化程序shervans.dll,释放的文件功能说明,如下表所示:
表5-2 MyDoom释放的文件功能说明
文件名称 |
文件所在路径 |
功能说明 |
smnss.exe(病毒母体) |
C:\Windows\system32\ |
传播钓鱼邮件、通过可移动介质传播、连接C2 服务端 |
ctfmen.exe |
C:\Windows\system32\ |
启动病毒母体(自启动项)、若母体不存在则调用shervans.dll |
shervans.dll |
C:\Windows\system32\ |
初始化环境、守护母体进程、设置自启动、监听3159端口 |
MyDoom在复制自身时,会调用特定函数来修改文件的区段名,将前三个区段名替换为随机生成的8个字母,以确保每次复制都会产生不同哈希值的文件。通过这种方式,增加了文件的唯一性和随机性。
图5-1 修改区段名
MyDoom在加载shervans.dll后将ctfmen.exe程序添加至注册表启动项,实现smnss.exe(病毒母体)持久化:
图5-2 创建自启动项
MyDoom在加载shervans.dll后设置监听3159端口:
图5-3 设置监听端口
MyDoom获取邮箱地址方式有两种:
(1)获取用户主机Outlook通讯录中的邮箱地址,并释放MyDoom压缩后的文件zipfi.dll与zipfiaq.dll:
图5-4 获取Outlook通讯录中邮箱地址
(2)遍历用户主机中后缀名为“html”、“htm”、“txt”、“xml”、“doc”、“pl”、“php”、“tbb”的文件,从中提取出邮箱地址,如下图所示:
图5-5 用户主机文件中邮箱地址
不断扫描本地文件和Outlook通讯录,提取其中的邮箱地址,使用SMTP协议发送随机生成的钓鱼邮件。
图5-6发送钓鱼邮件
MyDoom释放satornas.dll以备在可移动介质传播时复制为autorun.inf,结合释放出的病毒母体达到传播的目的。
图5-7 autorun.inf中内容
通过C2指令可以开启和关闭可移动介质感染。
图5-8 通过C2指令开启和关闭可移动介质感染
使用DGA获取域名,该变种相比于之前变种增加了三次校验,以保证连接攻击者C2服务端,校验成功后连接C2服务端等待接收远控指令。
图5-9 DGA实现
图5-10 三次校验
通过校验后进行主机信息的上传:
图5-11 上传主机信息
远控的功能包括DDoS攻击、下发恶意文件和可移动介质传播等,如下表所示:
表5-3 命令控制功能
指令 |
功能 |
http |
HTTP泛洪攻击 |
spamon |
初始化发送邮件次数 |
down_file |
下载文件到C:\Windows\system32\donzx.dll |
pusk |
下载文件并运行文件 |
restart |
重新运行 |
timeout |
设置命令执行间隔 |
socksa |
设置注册表中的用户名、密码 |
flash_on |
开启可移动介质感染 |
flash_off |
关闭可移动介质感染 |
icmp |
ICMP泛洪攻击 |