延续了2018年加密货币挖矿恶意软件的趋势,我发现了另一种类似于5月初发现的“MassMine”的挖矿恶意软件。我把这个家族称为ZombieBoy,因为它使用了一个名为ZombieBoyTools的工具来释放第一个dll。
与MassMiner类似,ZombieBoy也是一种利用漏洞进行传播的挖矿蠕虫。但也有与MassMiner不同的地方,ZombieBoy使用WinEggDrop而不是MassScan来搜索新主机。ZombieBoy目前仍在不断更新,我几乎每天能获取到新的样本。
ZombieBoy的执行流程概述如下:
ZombieBoy使用了多个运行HFS (http文件服务器)的服务器来获取有效载荷(payload)。经我确认的URL有如下几个:
l ca[dot]posthash[dot]org:443/
l sm[dot]posthash[dot]org:443/
l sm[dot]hashnice[dot]org:443/
此外,它似乎在dns[dot]posthash[dot]org中也有一个C2服务器。
ZombieBoy在执行期间利用了多个漏洞:
l CVE-2017-9073,Windows XP和Windows Server 2003上的RDP漏洞
l CVE-2017-0143,SMB漏洞
l CVE-2017-0146,SMB漏洞
ZombieBoy首先使用EternalBlue/DoublePulsar漏洞来远程安装主dll。用于安装这两个漏洞的程序被称为ZombieBoyTools,似乎源自中国。它使用简体中文作为自己的语言,并且已经被用来部署了多个中国恶意软件家族(例如,IRONTIGER APT版本的Gh0stRAT)。
ZombieBoyTools的截图
在成功执行DoublePulsar漏洞利用后,它会加载并执行恶意软件的第一个dll。这个dll的执行会导致从ca[dot]posthash[dot]org:443下载一个名为123.exe的文件,并将其保存到“C:\%WindowsDirectory%\sys.exe”,然后执行它。
123.exe在执行时会进行多项操作。首先,它会从文件分发服务器下载第一个模块。根据对123.exe的代码分析,它将此模块引用为“64.exe”,但将其作为“boy.exe”保存到受害者设备上。在保存模块之后,它会对其进行执行。64.exe似乎负责分发ZombieBoy以及包含在其中的XMRIG矿工。
除了从其服务器下载模块外,123.exe还会释放并执行另外两个模块。其中一个模块在代码中引用为“74.exe”。它在受害者设备上保存为“C:\Program Files(x86)\svchost.exe”,这似乎是古老的Gh0stRAT的一种形式。
另一个模块在代码中引用为“84.exe”。它在受害者设备上保存为“C:\Program Files(x86)\StormII\mssta.exe”,似乎是一个未知来源的RAT。
64.exe是ZombieBoy下载的第一个模块。64.exe使用了一些非常强大的反分析技术。首先,整个可执行文件使用了打包器Themida进行加密,这使得逆向工程变得非常困难。此外,在ZombieBoy的当前版本中,它会检测虚拟机,并在检测到虚拟机之后不再运行。
64.exe会将70多个文件释放到C:\Windows\IIS中,这些文件由XMRIG矿工、漏洞利用程序以及被它命名为CPUInfo.exe的自身副本组成。
64.exe通过连接到ip[dot]3222[dot]net来获取受害者的ip。然后使用WinEggDrop,一个轻量级TCP扫描程序来扫描网络,以寻找打开了端口445的更多的目标。它还会使用上面获得的IP以及本地IP来传播到本地网络以及公共IP网络中。
64.exe会使用DoublePulsar漏洞来安装SMB后门以及RDP后门。
DoublePulsar截图
另外,64.exe会使用XMRIG来挖掘门罗币(XMR)。在关闭minexmr.com上的一个地址之前,ZombieBoy以大约43KH/s的速度挖矿。根据当前的门罗币价格,这允许攻击者能够每月获得略高于1000美元的收入。
我已找到了另一个新地址,然而,ZombieBoy已经不再使用minexmr.com进行挖矿。
已知的地址:
l 42MiUXx8i49AskDATdAfkUGuBqjCL7oU1g7TsU3XCJg9Maac1mEEdQ2X9vAKqu1pvkFQUuZn2HEzaa5UaUkMMfJHU5N8UCw
l 49vZGV8x3bed3TiAZmNG9zHFXytGz45tJZ3g84rpYtw78J2UQQaCiH6SkozGKHyTV2Lkd7GtsMjurZkk8B9wKJ2uCAKdMLQ
通过使用strace,我发现64.exe正在获取有关受害者的信息,例如枚举操作系统的体系结构。
74.exe是第一个被123.exe释放的模块,也是整个恶意软件的第二个模块。74.exe的基本功能是负责下载、解密和执行一个名为NetSyst96.dll的Gh0stRat dll。另外,74.exe还解密了一系列要传递给Netsyst96.dll的参数。
参数中的arguments对象如下:
1. Dns.posthash.org
2. 127.0.0.1
3. 5742944442
4. YP_70608
5. ANqiki cmsuucs
6. Aamqcygqqeqkia
7. Fngzxzygdgkywoyvkxlpv ldv
8. %ProgramFiles%/
9. Svchost.exe
10. Add
11. Eeie saswuk wso
解密过程截图
一旦74.exe解密了参数,它就会检查NetSyst96.dll是否已下载并保存到了C:\Program Files\AppPatch\mysqld.dll。它通过调用CreateFileA并将CreationDisposition设置为Open_Existing来完成此操作。如果找不到mysqld.dll,74.exe将打开与ca[dot]posthash[dot]org:443/的连接,并下载NetSyst96.dll,将其保存为C:\ProgramFiles\AppPatch\mysqld.dll。
NetSyst96.dll有两个导出函数:DllFuUpgraddrs和DllFuUpgraddrs1。在将NetSyst96.dll保存为mysqld.dll后,74.exe会在NetSyst96.dll中找到DllFuUpgraddrs,在调用它之前。
NetSyst96.dll通常是被加密的,对解密后的文件的分析返回了一些有趣的字符串,可用于识别它。例如,“Game Over Good Luck By Wind”和“jingtisanmenxiachuanxiao.vbs”。
字符串截图展示了一些被释放的文件
NetSyst96.dll可以捕获用户的屏幕截图、录制音频,甚至可以编辑剪贴板。此外,对字符串的分析显示,它导入了键盘按键,这是键盘记录程序的典型特征。首先,Netsyst96.dll会获取环境字符串路径并使用它创建路径C:\Program files (x86)\svchost.exe。接下来,使用CreateToolhelp32Snapshot和NetSyst96.dll在运行的进程中搜索Rundll32.exe,以确定它是否是第一次运行dll。
对于第一次运行,NetSyst96.dll进行了几项操作来创建持久性:
l 将74.exe的副本保存为C:\ProgramFiles(x86)\svchost.exe。
l 使用System/CurrentControlSet/Services/ANqikicmsuucs将“ANqiki cmsuucs”注册为服务。
l 启动服务后,运行svchost.exe。
l 将MARKTIME添加到注册表项,添加上次启动的时间。
l 使用来自CreateToolhelp32Snapshot的快照来搜索正在运行的svchost.exe进程。
l 如果未找到,则会启动它并返回搜索svchost.exe。
l 如果找到一个,将维持svchost.exe的运行。
l 如果找到多个,会调用一个函数来创建一个vbs脚本,以删除额外的svchost.exe。
在连续运行时,NetSyst96.dll更关心的是连接到C2服务器:
1. 查找并验证“System/CurrentControlSet/Services/ANqiki cmsuucs”是否存在。
a) 如果不存在,它会创建一个这样的键值。
b) 如果存在,则会往下执行步骤2。
2. 创建名为“Eeie saswuk wso”的事件。
3. 枚举并更改输入桌面。
4. 将C2服务器IP传递给C2 URL(dns[dot]posthash[dot]org)。
5. 启动WSA(winsock 2.0)。
6. 连接到www[dot]ip123[dot]com[dot]cn并获取dns[dot]posthash[dot]org的ip。
a) 实际的IP可能会发生变化,但到目前为止仍是211.23.47[dot]186。
7. 重置事件。
8. 连接到C2服务器并等待命令。
虽然触发此函数的命令未知,但我确实发现了一个包含31个选项的switch-case,它似乎是NetSyst96.dll的命令选项。有关这个31个选项中部分选项的深入分析,请参阅附录。
84.exe是由123.exe释放的第二个模块,也是整个恶意软件的第三个模块。与74.exe类似,它似乎是一个RAT。然而,这也是唯一的相似之处。与74.exe不同,84.exe不需要下载任何其他库,而是从其自己的内存中解密并执行Loader.dll。此外,84.exe会使用一个函数来解密Loader.dll,包括为每个需要解密的字符抛出异常。
其他运行信息:
· 将用户的环境字符串设置为C:\Program Files(x86)\StormII\。
此外,一旦调用了Loader.dll,84.exe就会通过一个名为“Update”的函数将一系列变量传递给Loader.dll。
变量:
1. ChDz0PYP8/oOBfMO0A/0B6Y=
2. 0
3. 6gkIBfkS+qY=
4. dazsks fsdgsdf
5. daac gssosjwayw
6. |_+f+
7. fc45f7f71b30bd66462135d34f3b6c66
8. EQr8/KY=
9. C:\Program Files(x86)\StormII
10. Mssta.exe
11. 0
12. Ccfcdaa
13. Various integers
在传递给Loader.dll的字符串中,有三个是加密的。解密后的字符串如下:
1. [ChDz0PYP8/oOBfMO0A/0B6Y=] =”dns[dot]posthash[dot]org”
2. [6gkIBfkS+qY=] =”Default”
3. [EQr8/KY=] = “mdzz”
Loader.dll是一个具有一些有趣功能的RAT,例如搜索CPU写入速度的能力,以及搜索系统中的防病毒软件。
它由84.exe启动,Loader.dll执行的第一件事是从84.exe中的“Update”获取变量。此时,Loader.dll创建了几个重要的运行时对象(runtime object):
l 名为Null的不可靠、无信号、自动重置事件,句柄:0×84。
l 用于执行操作DesktopInfo的函数的线程。
l 一个具有句柄0x8C和标记DF_ALLOWOTHERACCOUNTS的inputDesktop,它被设置为调用线程的Desktop。
然后,Loader.Dll会在SYSTEM/CurrentControlSet/Services/Dazsks Fsdgsdf中搜索系统中的“dazsksfsdgsdf”,用于确定这是否是第一次运行恶意软件。
首次运行:
l Loader.dll会使用ImagePath = C:\Program Files(x86)\StormII\mssta.exe来创建服务DazsksFsdgsdf。
l Loader.dll会尝试运行新创建的服务。如果尝试成功,则继续主循环。如果不成功,则退出。
接下来,Loader.Dll将进行以下操作:
l 使用参数DazsksFsdgsdf启动services.exe服务。
l 继续第一次运行中提到的主循环。
在检查了循环序号之后,Loader.dll将进入程序的主循环。
主循环:
l 创建一个名为“ccfcdaa”的不可靠、自动重置、无信号的事件,句柄为0x8C。
l 解密ChDz0PYP8/oOBfMO0A/0B6Y=to ‘dns[dot]posthash[dot]org’。
l 启动WinSock对象。
l 使用句柄0×90创建名为null的不可继承、无信号、手动重置事件对象。
l 汇编 Get 请求:“Get/?ocid = iefvrt HTTP/1.1”。
l 连接到dns[dot]posthash[dot]org:5200。
l 使用GetVersionEx获取有关操作系统的信息。
l 加载ntdll.dll并调用RtlGetVersionNumbers。
l 将System\CurrentControlSet\Services\(null)保存到注册表。
l 获取套接字名称。
l 使用Hardware\Description\System\CentralProcessor\取CPU刷新速度
l 调用GetVersion以获取系统信息。
l 调用GlobalMemoryStatusEx以获取可用全局内存的状态。
l 使用GetDriveTypeA枚举从“A:/”开始的所有可用磁盘驱动器。
l 获取每个枚举驱动器上可用的总可用空间量。
l 初始化COM库。
l 使用marktime函数将当前时间追加到服务“dazsksfsdgsdf”。
l 获取在WOW64下运行的系统的系统信息。
l 使用大多数中文防病毒软件文件名和CreateToolHelp32Snapshot列表,创建正在运行的进程的快照,然后识别任何正在运行的防病毒程序。
l 解密EQr8/KY= to“mdzz”。
l 将上面获得的所有数据发送到在dns[dot]posthash[dot]org:5200中的C2服务器。
想要减轻ZombieBoy攻击所带来的影响的最佳方法是一如既往地避免被攻击,这就是为什么我建议你将系统更新到最新版本的原因。具体来说,MS17-010补丁将有助于阻断恶意软件的传播。
如果你被不幸被ZombieBoy感染了,那么你应该做的第一件事就是深呼吸几次。接下来,我建议使用你使用防病毒软件扫描你的系统。
在扫描完成之后,你应该找出并终止ZombieBoy当前正在运行的任何已知的进程,例如:
l 123.exe
l 64.exe
l 74.exe
l 84.exe
l CPUinfo.exe
l N.exe
l S.exe
l Svchost.exe (注意文件的位置。任何不来自C:\Windows\System32的Svchost.exe进程都应被终止)。
此外,删除以下注册表项:
l SYSTEM/CurrentControlSet/Services/Dazsks Fsdgsdf
l SYSTEM/CURRENTCONTROLSET/SERVICES/ANqiki cmsuuc
同样的,删除所有被恶意软件释放的文件,例如:
l C:\%WindowsDirectory%\sys.exe
l C:\windows\%system%\boy.exe
l C:\windows\IIS\cpuinfo.exe
l 在IIS中释放的70多个文件
l C:\Program Files(x86)\svchost.exe
l C:\Program Files\AppPatch\mysqld.dll
l C:\Program Files(x86)\StormII\mssta.exe
l C:\Program Files(x86)\StormII\*
*本文作者:Hydralab,转载自FreeBuf.COM
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.