NSRminer加密货币挖矿机更新分析
2017年WannaCry爆发一年后,在亚洲仍然有大量被恶意软件感染未修复的机器。2018年11月中旬开始,研究人员发现了NSRminer加密货币挖矿机的最新版本。NSRminer挖矿机使用Eternal Blue漏洞在本地网络中有漏洞的系统中传播,主要活跃区域在亚洲。大多数受感染的系统位于越南。
2018年11-12月NRSMiner按国家的感染数据
NRSMiner除了下载加密货币挖矿机到受感染的机器外,还可以下载更新的模块,并删除之前版本安装的文件和服务。
本文分析最新NRSMiner版本如何感染系统、修复建议等。
NRSMiner最新版本感染系统的方式有两种:
如果系统感染了NRSMiner之前的版本,就会连接到tecate[.]traduires[.]com
来下载updater模块到%systemroot%\temp
文件夹中,下载后的文件名为tmp[xx].exe
,其中[xx]
是GetTickCount()
API的返回值。
Updater模块执行后,就会从因编码的IP地址下载另一个文件到相同的文件夹:
不同updater模块文件中的IP地址列表
下载的文件/x86
和/x64
以WUDHostUpgrade[xx].exe
文件的形式保存在%systemroot%\temp
文件中,其中[xx]
是GetTickCount()
API的返回值。
WUDHostUpgrade[xx].exe
首先检查mutex{502CBAF5-55E5-F190-16321A4}
来确定系统是否感染最新的NRSMiner。如果感染,WUDHostUpgrade[xx].exe
就会删除自己。否则,删除MarsTraceDiagnostics.xml、snmpstorsrv.dll和MgmtFilterShim.ini
文件。
然后,该模块会从resource部分提取MarsTraceDiagnostics.xml
和snmpstorsrv.dll
文件到%systemroot%\system32
或%systemroot%\sysWOW64
文件夹。
然后复制svchost.exe
的CreationTime、LastAccessTime和LastWritetime
属性值,并用复制的值更新MarsTraceDiagnostics.xml
和snmpstorsrv.dll
的相同属性。
最后,WUDHostUpgrade[xx].exe
会安装名为snmpstorsrv
的服务,并用snmpstorsrv.dll
注册为servicedll,然后删除自己。
WUDHostUpgradexx.exe动作的伪代码表示
新创建的Snmpstorsrv服务会从svchost.exe -k netsvcs
开始,然后加载snmpstorsrv.dll
文件,snmpstorsrv.dll
文件会常见多个线程来执行恶意活动。
Snmpstorsrv服务执行的活动
Snmpstorsrv服务首先会在%systemroot%\system32
文件夹中创建名为MgmtFilterShim.ini
的文件,写入+
,修改创建时间、最后访问时间、最后写入时间为svchost.exe中的值。
然后,Snmpstorsrv服务会从MarsTraceDiagnostics.xml
中提取出恶意URL和加密货币挖矿机的配置文件。
MarsTraceDiagnostics.xml文件中的恶意URL和挖矿机配置信息
在感染了老版本NRSMiner的系统中,恶意软件在更新NRSMiner前会删除老版本NRSMiner的所有组件。为了移除老版本的组件,新版本NRSMiner会引用一些可以在snmpstorsrv.dll
文件中找到的字符串形式的服务、任务和文件;为了移除所有的snmpstorsrv.dll
老版本,恶意软件引用了MarsTraceDiagnostics.xml
文件中的列表。
要被删除的服务、任务、文件和文件夹列表
老版本的服务、任务、文件和文件夹被删除后,Snmpstorsrv服务会检查连接到下面的地址来更新挖矿机的组件:
reader[.]pamphler[.]com/resource
handle[.]pamphler[.]com/modules.dat
如果更新的挖矿机组件不可用,就下载和写入MarsTraceDiagnostics.xml
文件。在下载了新的模块后,%systemroot%\system32\TrustedHostex.exe
中的老版本挖矿机文件会被删除。新版本的挖矿机会在内存中解压缩,并将新提取出的挖矿机配置数据写入。
最新更新的挖矿机文件会被注入到svchost.exe
中来进行加密货币挖矿。如果注入失败了,服务就会将挖矿机写入%systemroot%\system32\TrustedHostex.exe
,然后执行。
内存中解压缩的挖矿机
然后,Snmpstorsrv服务会解压缩wininit.exe
文件并将其注入到svchost.exe
。如果注入失败,就将wininit.exe
写入到%systemroot%\AppDiagnostics\wininit.exe
中并执行。该服务还会打开端口60153
并开始监听。
在其他2个线程中,服务会发送受感染的系统详情到地址:
pluck[.]moisture[.]tk
– MAC地址、IP地址、系统名、操作系统信息jump[.]taucepan[.]com
– 处理器和内存特定信息转发到远程站点的系统信息
根据发送的信息,恶意软件会下载和执行一个新的updater文件,该文件会执行上面Updater Module描述的活动。Updater模块会被用于用最新的NRSMiner感染系统。
在最新的NRSMiner版本中,wininit.exe负责处理漏洞利用和传播活动。wininit.exe
会解压缩压缩的数据到%systemroot%\AppDiagnostics\blue.xml
,并解压文件到AppDiagnostics
文件夹。这些解压缩的文件中有一个是svchost.exe
,这是Eternalblue – 2.2.0的漏洞利用文件。然后删除blue.xml
文件并将x86.dll和x64.dll
文件写入AppDiagnostics
文件夹。
Wininit.exe会在TCP445
端口扫描本地网络来寻找其他可访问的系统。扫描后,会执行Eternalblue可执行文件来利用有漏洞的系统。利用信息保存在process1.txt
文件中。
如果有漏洞的系统被成功利用,Wininit.exe
会执行spoolsv.exe
。spoolsv.exe
是DoublePulsar – 1.3.1可执行文件,该文件会在被漏洞利用的系统中安装DoublePulsar后门。根据目标的操作系统类型,Wininit.exe
会移动x86.dll或x64.dll
文件,然后用spoolsv.exe
后门注入目标系统的lsass.exe
。
感染方法
x86.dll/x64.dll
会创建socket连接,并从受感染系统中的%systemroot%\system32
文件夹中获取MarsTraceDiagnostics.xml
文件。提取snmpstorsrv.dll
,然后在新感染的系统中创建并开启Snmpstorsrv服务,然后重复整个感染循环,并找出其他有漏洞的机器。
NRSMiner使用XMRig Monero CPU挖矿机来生成Monero门罗币。使用的参数有:
挖矿机参数
-o, –url=URL ,挖矿服务的URL
-u, –user=USERNAME,挖矿服务器的用户名
-p, –pass=PASSWORD,挖矿服务器的密码
-t, –threads=N,挖矿机线程数
–donate-level=N,默认5% (5 minutes in 100 minutes)
–nicehash,启用nicehash.com支持
https://labsblog.f-secure.com/2019/01/03/nrsminer-updates-to-newer-version/