分析 NRSMiner 恶意软件最新样本

 

 

前言

距离在2017年5月WannaCry活动中首次发现EternalBlue(永恒之蓝)漏洞利用已经一年多了,但我们现在仍然能够看到,在亚洲这个漏洞被用来感染未修补的机器。我们的检测报告表明,从2018年11月中旬开始,NRSMiner挖矿恶意软件的最新版本正在亚洲积极传播,它利用EternalBlue漏洞在本地网络中进行传播。大多数被感染的系统都在越南。

2018年11月-12月NRSMiner检测统计

除了将挖矿程序下载到失陷计算机上外,NRSMiner还可以下载更新模块,并删除自己以前版本安装的文件和服务。

本文分析了最新版本的NRSMiner是如何感染系统并发现新目标的。关于缓解措施、IoC和SHA1请查看文末。

 

NRSMiner如何传播

最新版本的NRSMiner通过两种方法感染系统:

  • 将更新程序模块下载到已受NRSMiner旧版本感染的系统,
  • 如果系统未安装补丁(MS17-010),并且内网中的另一个系统已被NRSMiner感染。

 

方法1:通过更新模块进行感染

首先,被NRSMiner的旧版本感染(并运行wmassrv服务)的系统将连接到tecate[.]traduires[.]com,将更新程序模块作为tmp[xx].exe下载到%systemroot%temp文件夹,其中[xx]是GetTickCount() API的返回值。

在执行该更新程序时,它将从硬编码IP地址列表中的一个下载另一个文件到同一个文件夹:

在不同更新模块文件中找到的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。然后它会自行删除。

关于WUDHostUpgradexx.exe活动的伪代码

Snmpstorsrv服务

新创建的Snmpstorsrv服务通过“svchost.exe -k netsvcs”启动,并加载snmpstorsrv.dll文件,该文件创建多个线程来执行多个恶意活动。

Snmpstorsrv服务的活动

服务首先在%systemroot%system32文件夹中创建名为MgmtFilterShim.ini的文件,在其中写入“+”,并修改其CreationTime、LastAccessTime和LastWritetime属性,使其具有与svchost.exe相同的值。

接下来,Snmpstorsrv服务从MarsTraceDiagnostis.xml中提取恶意URL和挖矿程序的配置文件。

MarsTraceDiagnostis.xml文件中的恶意URL和挖矿程序配置详细信息

在一个已经被NRSMiner的旧版本感染的系统上,恶意软件将删除旧版本的所有组件,然后再感染较新的版本。要删除旧版本,最新版本需要知道要删除的服务、任务和文件的列表,这些文件可以通过snmpstorsrv.dll文件中的字符串找到;要删除所有旧版本,需要使用MarsTraceDiagnostis.xml文件中的列表。

要删除的服务、任务、文件和文件夹列表

删除所有旧版本的组件后,Snmpstorsrv服务通过以下链接,检查挖矿模块是否更新:

  • reader[.]pamphler[.]com/resource
  • handle[.]pamphler[.]com/modules.dat

如果更新后的挖矿模块可用,则下载该模块并将其写入MarsTraceDiagnostis.xml文件。下载新模块后,删除%systemroot%system32TrustedHostex.exe中的旧挖矿程序。在内存中解压新的挖矿程序,并将新提取的挖矿程序配置数据写入其中。

然后将这个新更新的挖矿文件注入svchost.exe进行挖矿。如果注入失败,则服务将挖矿程序写入%systemroot%system32TrustedHostex.exe并执行。

挖矿程序在内存中解压

接下来,Snmpstorsrv服务解压wininit.exe文件并将其注入svchost.exe。如果注入失败,它会将wininit.exe写入%systemroot%AppDiagnoticswininit.exe并执行它。该服务还打开60153端口并开始侦听。

在另外两个线程中,该服务向以下站点发送有关受感染系统的详细信息:

  • pluck[.]moisture[.]tk – mac地址,ip地址,系统名称,操作系统信息
  • jump[.]taucepan[.]com – 特定处理器和内存信息

发送到远程站点的系统信息

根据发送的信息,将下载并执行一个新的更新程序,该文件将执行上面“更新模块”一节中描述的相同活动。该更新模块可用于感染任何新版本的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挖矿程序来挖掘门罗币。它通过下面的参数之一运行:

挖矿程序参数

下面是参数中使用的开关:

  • -o, –url=URL 挖矿服务器URL
  • -u, –user=USERNAME 挖矿服务器用户名
  • -p, –pass=PASSWORD 挖矿服务器密码
  • -t, –threads=N 挖矿程序线程数
  • –donate-level=N 捐赠水平,默认5%
  • –nicehash 启用nicehash.com支持

 

 

缓解措施

可以采取以下措施减少EternalBlue漏洞利用,并防止扩散。

  • 对于F-Secure:
    • 确保F-Secure程序使用最新的可用数据库更新。
    • 确保在所有公司端点中打开DeepGuard,并启用F-Secure云连接。
    • 确保F-Secure防火墙在默认设置中打开。或者将防火墙配置为正确拦截445的出入流量,以防止其在本地网络中传播。
  • Windows:
    • 使用软件更新程序或任何其他可用的工具来识别端点,使用微软发布的安全补丁(4013389),并立即对其进行修补。
    • 根据微软关于WannaCrypt攻击的客户指南中的指导,为系统应用相关的修补程序。
    • 如果无法立即对其进行修补,建议禁用SMBv1,使用Knowledge Base Article 2696547中的步骤来减少攻击面。

 

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
(完)