警惕!新型RDP爆破蠕虫Morto来袭

警惕!新型RDP爆破蠕虫Morto来袭,近期,千里目安全实验室EDR安全团队接到多个企业用户反馈,其企业内网近百台计算机在使用过程中会突然跳出到windows登录界面,且再次登录就提示远程桌面繁忙,同时深信服防火墙检测到内网存在大量的RDP访问请求。

这次蠕虫病毒事件严重阻碍到企业办公,安全团队紧急介入,发现这是Morto蠕虫病毒的最新变种,它通过爆破内网、外网主机的RDP密码,登陆到受害主机,进行自我复制并运行,来实现病毒的传播。

0×01 攻击场景

病毒的攻击流程如下:

母体(Morto.exe)

1. 将伪装clb.dll释放到C:Windows,这样就会比C:WindowsSystem32下的合法clb.dll先加载(Windows寻找文件的特性,根目录的先被读取)

2. 写入恶意代码HKLMSystemWPAmd

3-4. 运行regedit,regedit会自动加载恶意的clb.dll

Loader(clb.dll)

5.将自己备份一份cache.txt到C:Windowsoffline web pages下

6.运行md下的恶意代码

Payload

7.释放tsclienta%smoto

8.释放tsclientaa.dll和tsclientar.reg

9.DNS请求和进行RDP爆破

10.修改注册表

11.将cache.txt注册为服务

沦陷主机上已经找不到母体和Loader了(应该病毒进行了自删除),但是cache.txt和payload还遗留在主机上,我们从这两个文件入手分析:

0×02 技术分析

cache.txt

cache.txt打开后发现其其实是一个DLL(clb.dll的克隆,即Loader),我们通过解密相关的函数地址,得到对应的函数列表,如下图所示:

解密出来的函数如下所示:

Loader

1. cache.txt运行前首先做一个判断,若程序不是通过rundll32.exe加载运行的,则尝试读取用户电脑系统目录下的winhlp32.exe或write.exe这两个程序(检测运行环境是否为沙箱),如果用户电脑中存在这两个文件,才进行后面的操作,如下图所示:

2. 验证不是沙箱环境后,cache.txt开始读取恶意注册表项的值(payload),并加载运行,如下图所示:

相应的恶意注册表键值为:

HKEY_LOCAL_MACHINESYSTEMWPA

名称:md

里面包含一大串二进制数据,通过内存解密之后,发现其实也是一个dll,主要的恶意操作也在其中,如下图所示:

3. 为了进行传播,payload会将自己复制一份到tsclienta%smoto,Loader后续会从tsclienta%smoto读取恶意代码:

Payload

1. payload开始运行后,会对下面这些域名的DNS发起请求,检索可下载的组件信息,如下图所示:

相关的域名地址:

wht%d.jifr.net

dos%d.jifr.net

ms.jifr.net

ms.jifr.info

ms.jifr.co.cc

ms.jifr.co.be

2. 然后payload对HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerRunMRU进行修改:

RunMRU注册表项的作用是存储用户最近运行的命令,payload修改它的目的是为了清除记录,防止恶意行为被发现。

3. 修改注册表项HELMCurrentControlSetControlSessin ManagerPendingFileRenameOperations的值为病毒母体cache.txt,如下图所示:

修改PendingFileRenameOperations键值的作用是使cache.txt开机自动重命名为C:WindowsTempntshrui.dll,这其中跟上面一样的技术,系统合法的ntshrui.dll在C:WindowsSystem32目录下,由于cache.txt开机自动伪装成了Tempntshrui.dll(Temp目录下的ntshrui.dll先被加载),导致cache.txt开机自动被加载。

4. 添加一些注册表恶意项:

HKEY_LOCAL_MACHINESYSTEMWPAid

HKEY_LOCAL_MACHINESYSTEMWPAie

HKEY_LOCAL_MACHINESYSTEMWPAit

HKEY_LOCAL_MACHINESYSTEMWPAsn

HKEY_LOCAL_MACHINESYSTEMWPAsr

5. 然后到了关键的RDP爆破:

6. 爆破成功后,登陆到受害主机上进行Payload的复制传播:

7. 然后进行Loader(tsclienta.dll和tsclientr.reg)的复制传播:

8. 最后将cache.txt(ntshrui.dll)注册为服务,对用户主机进行持久化攻击:

9. 最后,就是我们看到的可疑现象,有一个恶意svchost.exe进程一直在发送3389端口的请求:

0×03 解决方案

1. 删除右边所有键值,如图,只保留默认键值

2. 使用任务管理器结束不断发出3389请求的svchost.exe进程:

PS:使用tcpview等工具可确定爆破3389的svchost.exe

3. 删除病毒cache.txt:

4. 删除成功后重启电脑确认是否还存在该病毒

5. 更改用户登录密码,通过设置高强度密码避免再次被RDP爆破

以上解决方案主要针对单台主机。