更新版NSRminer加密货币挖矿机分析

2019-04-04 约 3362 字 预计阅读 7 分钟

声明:本文 【更新版NSRminer加密货币挖矿机分析】 由作者 angel010 于 2019-01-09 08:23:00 首发 先知社区 曾经 浏览数 2540 次

感谢 angel010 的辛苦付出!

NSRminer加密货币挖矿机更新分析

2017年WannaCry爆发一年后,在亚洲仍然有大量被恶意软件感染未修复的机器。2018年11月中旬开始,研究人员发现了NSRminer加密货币挖矿机的最新版本。NSRminer挖矿机使用Eternal Blue漏洞在本地网络中有漏洞的系统中传播,主要活跃区域在亚洲。大多数受感染的系统位于越南。

2018年11-12月NRSMiner按国家的感染数据

NRSMiner除了下载加密货币挖矿机到受感染的机器外,还可以下载更新的模块,并删除之前版本安装的文件和服务。
本文分析最新NRSMiner版本如何感染系统、修复建议等。

NRSMiner传播方式

NRSMiner最新版本感染系统的方式有两种:

  • 下载updater模块到已感染NRSMiner的系统上;
  • 如果系统被修复,并且局域网内有机器感染NRSMiner。

方法1:通过Updater模块感染

如果系统感染了NRSMiner之前的版本,就会连接到tecate[.]traduires[.]com来下载updater模块到%systemroot%\temp文件夹中,下载后的文件名为tmp[xx].exe,其中[xx]GetTickCount()API的返回值。

Updater模块执行后,就会从因编码的IP地址下载另一个文件到相同的文件夹:

不同updater模块文件中的IP地址列表

下载的文件/x86/x64WUDHostUpgrade[xx].exe文件的形式保存在%systemroot%\temp文件中,其中[xx]GetTickCount()API的返回值。

WUDHostUpgrade[xx].exe

WUDHostUpgrade[xx].exe首先检查mutex{502CBAF5-55E5-F190-16321A4}来确定系统是否感染最新的NRSMiner。如果感染,WUDHostUpgrade[xx].exe就会删除自己。否则,删除MarsTraceDiagnostics.xml、snmpstorsrv.dll和MgmtFilterShim.ini文件。

然后,该模块会从resource部分提取MarsTraceDiagnostics.xmlsnmpstorsrv.dll文件到%systemroot%\system32%systemroot%\sysWOW64文件夹。

然后复制svchost.exeCreationTime、LastAccessTime和LastWritetime属性值,并用复制的值更新MarsTraceDiagnostics.xmlsnmpstorsrv.dll的相同属性。

最后,WUDHostUpgrade[xx].exe会安装名为snmpstorsrv的服务,并用snmpstorsrv.dll注册为servicedll,然后删除自己。

WUDHostUpgradexx.exe动作的伪代码表示

Snmpstorsrv service

新创建的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感染系统。

方法2:通过Wininit.exe和漏洞利用感染

在最新的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.exespoolsv.exe是DoublePulsar – 1.3.1可执行文件,该文件会在被漏洞利用的系统中安装DoublePulsar后门。根据目标的操作系统类型,Wininit.exe会移动x86.dll或x64.dll文件,然后用spoolsv.exe后门注入目标系统的lsass.exe

感染方法

x86.dll/x64.dll

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/

关键词:[‘技术文章’, ‘翻译文章’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now