本文翻译自:https://www.alienvault.com/blogs/labs-research/zombieboy
ZombieBoy是一款通过漏洞利用传播的加密货币挖矿蠕虫。与MassMiner的不同的是,ZombieBoy使用WinEggDrop来搜索新的目标主机,该恶意软件还在持续更新,因为研究人员每天都能发现新的样本。
ZombieBoy的执行过程如下图所示:
ZombieBoy使用多个运行HFS(HTTP文件服务器)的服务器来获取payload。研究任意发现的URL有:
ca[dot]posthash[dot]org:443/
sm[dot]posthash[dot]org:443/
sm[dot]hashnice[dot]org:443/
除了这些,研究任意还在dns[dot]posthash[dot]org上找到一个C2服务器。
ZombieBoy在执行时利用了多个漏洞:
ZombieBoy首次使用EternalBlue/DoublePulsar漏洞利用来远程安装主dll。用来安装这两个漏洞利用的程序叫做ZombieBoyTools,好像来源于中国,因为使用的语言是中文简体,还使用了大量的中国恶意软件家族,比如IRONTIGER APT版本的Gh0stRAT。
ZombieBoyTools截图
DoublePulsar漏洞利用成功执行后,会加载和执行恶意软件的第一个dll。恶意软件会从ca[dot]posthash[dot]org:443
下载123.exe,保存为C:\%WindowsDirectory%\sys.exe
,然后执行。
123.exe执行过程中会完成许多操作。首先,从分发服务器夏代模块64.exe,保存为boy.exe并执行。64.exe应该是负责传播ZombieBoy和携带XMRIG挖矿机。其次,会释放和执行74.exe和84.exe 2个模块。74.exe会被保存为C:\Program Files(x86)\svchost.exe
,看似是Gh0stRAT的一种形式。84.exe会在本机保存为C:\Program Files(x86)\StormII\mssta.exe,mssta.exe
看起来是一种RAT。
64.exe 是ZombieBoy下载的第一个模块,使用了反分析技术。Exe文件是通过Themida打包软件加密的,这让逆向变得非常困难。在当前ZombieBoy版本中,还会检测是否虚拟机再确定是否运行。64.exe还会在C:\Windows\IIS
文件夹中释放70多个文件,其中包括XMRIG挖矿机,漏洞利用和名为CPUInfo.exe的副本文件。
64.exe会连接到ip[dot]3222[dot]net
来获取受害者主机的IP,然后用WinEggDrop扫描网络找出开发445端口的目标。然后利用获取的IP地址和本地IP地址进行传播。64.exe使用DoublePulsar漏洞利用安装一个SMB后门和一个RDP后门。
DoublePulsar截图
64.exe还会使用XMRIG进行门罗币挖矿活动。根据已知的门罗币1钱包地址,ZombieBoy挖矿的速度大约是43KH/s,折算成美元的话,每个月$1000美金(6840.5元)。研究任意发现ZombieBoy不再使用minexmr.com挖矿了。
已知的钱包地址:
42MiUXx8i49AskDATdAfkUGuBqjCL7oU1g7TsU3XCJg9Maac1mEEdQ2X9vAKqu1pvkFQUuZn2HEzaa5UaUkMMfJHU5N8UCw
49vZGV8x3bed3TiAZmNG9zHFXytGz45tJZ3g84rpYtw78J2UQQaCiH6SkozGKHyTV2Lkd7GtsMjurZkk8B9wKJ2uCAKdMLQ
研究任意还发现64.exe会从受害者处获取系统架构等信息。
74.exe是123.exe释放的第一个恶意软件。从形式上看,74.exe负责下载、解密和执行名为NetSyst96.dll
的Gh0stRat dll。74.exe会解密下面的参数并传递给Netsyst96.dll
。
解密的参数包括:
解密截图
74.exe解密了这些参数后,就会通过调用CreateFileA
(CreationDisposition设置为Open_Existing)来检查 NetSyst96.dll
是否下载并保存为C:\Program Files\AppPatch\mysqld.dll
。如果没有找到mysqld.dll,74.exe就会打开到ca[dot]posthash[dot]org:443/
的连接,并下载NetSyst96.dll
,保存为C:\Program Files\AppPatch\mysqld.dll
。
NetSyst96.dll
有两个输出函数DllFuUpgraddrs和DllFuUpgraddrs1,把NetSyst96.dll
保存为mysqld.dll
后,74.exe在调用前会先定位其中的DllFuUpgraddrs。
NetSyst96.dll
是74.exe的dll。经过加密后,对解密的文件的分析会返回一些可以识别的字符串,如 “Game Over Good Luck By Wind”, “jingtisanmenxiachuanxiao.vbs”。
暗示释放的文件的字符串
NetSyst96.dll
可以获取用户屏幕、录音、编辑剪贴板。对字符串的分析显示会输入键盘输入。Netsyst96.dll
会获取Environment Strings
路径,然后用来创建路径C:\Program files (x86)\svchost.exe
。然后,用CreateToolhelp32Snapshot
、NetSyst96.dll
搜索Rundll32.exe
的进程来确定dll是不是第一次运行。第一次运行后,NetSyst96.dll
会做以下的动作来达到驻留的目的:
保存74.exe副本为C:\Program Files(x86)\svchost.exe
;
用System/CurrentControlSet/Services/ANqiki cmsuucs
将ANqiki cmsuucs注册为服务;
svchost.exe
;把MARKTIME
加入到注册表中,并加入上次启动的时间;
用CreateToolhelp32Snapshot
的snapshot寻找svchost.exe运行的进程;
连续运行的话,NetSyst96.dll会与C2联系起来:
定位并确认System/CurrentControlSet/Services/ANqiki cmsuucs
的存在;
创建Eeie saswuk wso
事件
枚举和改变input Desktop(input desktop)
;
传递C2服务器ip给C2URL (dns[dot]posthash[dot]org)
;
开启WSA (winsock 2.0)
;
连接到www[dot]ip123[dot]com[dot]cn
,并获取dns[dot]posthash[dot]org
的ip;
重置Event
连接到C2 Server,并等待命令
因为触发函数的命令是未知的,研究人员发现了31个switch选项,应该是NetSyst96.dll的命令选项。
84.exe是123.exe释放的第二个模块,这也是一个RAT。84.exe不需要下载额外的库就可以从内存中解密和执行Loader.dll。另外,84.exe会用函数来解密Loader.dll。
Loader.dll被调用后,84.exe会通过一个Update函数传给一系列变量给Loader.dll:
传递给Loader.dll的字符串中,其中3个是加密的。加密的字符串如下:
[ChDz0PYP8/oOBfMO0A/0B6Y=] = "dns[dot]posthash[dot]org"
[6gkIBfkS+qY=] = "Default"
[EQr8/KY=] = "mdzz"
Loader.dll也是一种RAT。84.exe运行后,Loader.dll做的第一件事是从84.exe中的Update获取变量。然后Loader.dll会创建一些重要的运行时对象:
Loader.Dll在SYSTEM/CurrentControlSet/Services/Dazsks Fsdgsdf
中搜索dazsks fsdgsdf
,然后用来确定是否是第一次运行恶意软件。
第一次运行时:
Loader.dll会创建一个名为Dazsks Fsdgsdf服务,其中ImagePath = C:\Program Files(x86)\StormII\mssta.exe
;
Loader.dll会尝试运行新创建的服务,如果尝试运行成功的话,继续进入主循环;如果没有运行成功,就退出。
随后继续运行:
Dazsks Fsdgsdf
开启服务services.exe;检查运行的次数后,Loader.dll会进入程序的主循环。
主循环:
ccfcdaa
,句柄为 0x8C;ChDz0PYP8/oOBfMO0A/0B6Y=
为dns[dot]posthash[dot]org
;Get /?ocid = iefvrt HTTP/1.1
dns[dot]posthash[dot]org:5200
;System\CurrentControlSet\Services\(null)
为注册表;Hardware\Description\System\CentralProcessor\
获取CPU刷新速度;GetVersion
来获取系统信息;GlobalMemoryStatusEx
来获取可用全局内存状态;GetDriveTypeA
从A:/
开始枚举所有可用的磁盘驱动;CreateToolHelp32Snapshot
创建运行进程的截图,然后找出运行的反病毒程序EQr8/KY=
为 mdzz
dns[dot]posthash[dot]org:5200
处的C2服务器。缓解ZombieBoy的最好方法就是避免,这也是为什么要更新系统到最新版的原因。MS17-010会帮助恶意软件的传播能力。
如果用户被ZombieBoy感染,首先要做的是用反病毒软件扫描系统,然后找出所有ZombieBoy运行的进程,然后结束这些进程。ZombieBoy运行的进程包括:
删除下面的注册表:
SYSTEM/CurrentControlSet/Services/Dazsks Fsdgsdf
SYSTEM/CURRENTCONTROLSET/SERVICES/ANqiki cmsuuc
删除恶意软件释放的文件:
C:\%WindowsDirectory%\sys.exe
C:\windows\%system%\boy.exe
C:\windows\IIS\cpuinfo.exe
C:\Program Files(x86)\svchost.exe
C:\Program Files\AppPatch\mysqld.dll
C:\Program Files(x86)\StormII\mssta.exe
C:\Program Files(x86)\StormII\*