前言
距离在2017年5月WannaCry活动中首次发现EternalBlue(永恒之蓝)漏洞利用已经一年多了,但我们现在仍然能够看到,在亚洲这个漏洞被用来感染未修补的机器。我们的检测报告表明,从2018年11月中旬开始,NRSMiner挖矿恶意软件的最新版本正在亚洲积极传播,它利用EternalBlue漏洞在本地网络中进行传播。大多数被感染的系统都在越南。
除了将挖矿程序下载到失陷计算机上外,NRSMiner还可以下载更新模块,并删除自己以前版本安装的文件和服务。
本文分析了最新版本的NRSMiner是如何感染系统并发现新目标的。关于缓解措施、IoC和SHA1请查看文末。
NRSMiner如何传播
最新版本的NRSMiner通过两种方法感染系统:
方法1:通过更新模块进行感染
首先,被NRSMiner的旧版本感染(并运行wmassrv服务)的系统将连接到tecate[.]traduires[.]com,将更新程序模块作为tmp[xx].exe下载到%systemroot%temp文件夹,其中[xx]是GetTickCount() API的返回值。
在执行该更新程序时,它将从硬编码IP地址列表中的一个下载另一个文件到同一个文件夹:
下载的文件(/x86或/x64)作为WUDHostUpgrade[xx].exe保存在%systemroot%temp中,同样地,其中[xx]是GetTickCount() API的返回值。
WUDHostUpgrade[xx].exe
WUDHostUpgrade[xx].exe首先检查mutex{502CBAF5-55E5-F190-16321A4},以确定系统是否已经感染了最新的NRSMiner版本。如果已经感染,WUDHostUpgrade[xx].exe将自行删除。否则它将删除MarsTraceDiagnostis.xml、snmpstorsrv.dll、MgmtFilterShim.ini文件。
接下来,模块将MarsTraceDiagnostics.xml和snmpstorsrv.dll从其资源部分(BIN目录)提取到%systemroot%system32或%systemroot%sysWOW64文件夹。
然后,它从svchost.exe复制CreationTime、LastAccessTime和LastWritetime属性的值,并用复制的值更新MarsTraceDiagnostis.xml和snmpstorsrv.dll文件对应的属性。
最后,WUDHostUpgrade[xx].exe创建一个名为snmpstorsrv的服务,其中snmpstorsrv.dll注册为servicedll。然后它会自行删除。
Snmpstorsrv服务
新创建的Snmpstorsrv服务通过“svchost.exe -k netsvcs”启动,并加载snmpstorsrv.dll文件,该文件创建多个线程来执行多个恶意活动。
服务首先在%systemroot%system32文件夹中创建名为MgmtFilterShim.ini的文件,在其中写入“+”,并修改其CreationTime、LastAccessTime和LastWritetime属性,使其具有与svchost.exe相同的值。
接下来,Snmpstorsrv服务从MarsTraceDiagnostis.xml中提取恶意URL和挖矿程序的配置文件。
在一个已经被NRSMiner的旧版本感染的系统上,恶意软件将删除旧版本的所有组件,然后再感染较新的版本。要删除旧版本,最新版本需要知道要删除的服务、任务和文件的列表,这些文件可以通过snmpstorsrv.dll文件中的字符串找到;要删除所有旧版本,需要使用MarsTraceDiagnostis.xml文件中的列表。
删除所有旧版本的组件后,Snmpstorsrv服务通过以下链接,检查挖矿模块是否更新:
如果更新后的挖矿模块可用,则下载该模块并将其写入MarsTraceDiagnostis.xml文件。下载新模块后,删除%systemroot%system32TrustedHostex.exe中的旧挖矿程序。在内存中解压新的挖矿程序,并将新提取的挖矿程序配置数据写入其中。
然后将这个新更新的挖矿文件注入svchost.exe进行挖矿。如果注入失败,则服务将挖矿程序写入%systemroot%system32TrustedHostex.exe并执行。
接下来,Snmpstorsrv服务解压wininit.exe文件并将其注入svchost.exe。如果注入失败,它会将wininit.exe写入%systemroot%AppDiagnoticswininit.exe并执行它。该服务还打开60153端口并开始侦听。
在另外两个线程中,该服务向以下站点发送有关受感染系统的详细信息:
根据发送的信息,将下载并执行一个新的更新程序,该文件将执行上面“更新模块”一节中描述的相同活动。该更新模块可用于感染任何新版本的NRSMiner系统。
方法2:通过Wininit.exe感染并利用
在最新的NRSMiner版本中,wininit.exe负责处理其利用和传播活动。Wininit.exe将压缩后的数据解压到%systemroot%AppDiagnoticsble.xml中,并将文件解压到AppDiagnotics文件夹中。解压文件中有一个名为svchost.exe的文件,它是EternalBlue2.2.0可执行文件。然后,它删除ble.xml文件,并在AppDiagnotics文件夹中写入两个名为x86.dll和x64.dll的新文件。
Wininit.exe扫描TCP端口445上的本地网络,搜索其他可访问的系统。然后它将执行EternalBlue可执行文件,利用发现的任何易受攻击的系统。利用漏洞攻击的信息记录在process1.txt文件中。
如果成功利用了目标系统,wininit.exe将执行spoolsv.exe,这是DoublePulsar-1.3.1可执行文件。它将DoublePulsar后门安装到失陷系统上。根据目标的操作系统的不同,对应的x86.dll或x64.dll文件随后通过wininit.exe传输,并通过spoolsv.exe后门注入目标系统的lsass.exe。
x86.dll/x64.dll
该文件创建一个套接字连接,并从受感染的父系统中获取%systemroot%system32文件夹中的MarsTraceDiagnostis.xml文件。提取snmpstorsrv.dll,然后在新感染的系统上创建并启动Snmpstorsrv服务,从而重复整个感染周期并查找其他目标。
挖矿模块
NRSMiner使用XMRig Monero CPU挖矿程序来挖掘门罗币。它通过下面的参数之一运行:
下面是参数中使用的开关:
缓解措施
可以采取以下措施减少EternalBlue漏洞利用,并防止扩散。
IoC
Sha1s:
32ffc268b7db4e43d661c8b8e14005b3d9abd306 - MarsTraceDiagnostics.xml 07fab65174a54df87c4bc6090594d17be6609a5e - snmpstorsrv.dll abd64831ad85345962d1e0525de75a12c91c9e55 - AppDiagnostics folder (zip) 4971e6eb72c3738e19c6491a473b6c420dde2b57 - Wininit.exe e43c51aea1fefb3a05e63ba6e452ef0249e71dd9 – tmpxx.exe 327d908430f27515df96c3dcd180bda14ff47fda – tmpxx.exe 37e51ac73b2205785c24045bc46b69f776586421 - WUDHostUpgradexx.exe da673eda0757650fdd6ab35dbf9789ba8128f460 - WUDHostUpgradexx.exe ace69a35fea67d32348fc07e491080fa635cc859 - WUDHostUpgradexx.exe 890377356f1d41d2816372e094b4e4687659a96f - WUDHostUpgradexx.exe 7f1f63feaf79c5f0a4caa5bbc1b9d76b8641181a - WUDHostUpgradexx.exe 9d4d574a01aaab5688b3b9eb4f3df2bd98e9790c - WUDHostUpgradexx.exe 9d7d20e834b2651036fb44774c5f645363d4e051 – x64.dll 641603020238a059739ab4cd50199b76b70304e1 – x86.dll
IP地址:
167[.]179.79.234 104[.]248.72.247 172[.]105.229.220 207[.]148.110.212 149[.]28.133.197 167[.]99.172.78 181[.]215.176.23 38[.]132.111.23 216[.]250.99.33 103[.]103.128.151
URL:
c[.]lombriz[.]tk state[.]codidled[.]com null[.]exhauest[.]com take[.]exhauest[.]com junk[.]soquare[.]com loop[.]sawmilliner[.]com fox[.]weilders[.]com asthma[.]weilders[.]com reader[.]pamphler[.]com jump[.]taucepan[.]com pluck[.]moisture[.]tk handle[.]pamphler[.]com