默小白 发表于 2019-1-23 17:15

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

本帖最后由 默小白 于 2019-1-31 14:38 编辑

转自:https://xz.aliyun.com/t/3790

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

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105223649-55ff0076-10f7-1.png)

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

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

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

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

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

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

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224233-22e1b516-10f8-1.png)

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

下载的文件`/x86`和`/x64`以`WUDHostUpgrade.exe`文件的形式保存在`%systemroot%\temp`文件中,其中``是`GetTickCount()API`的返回值。

#### WUDHostUpgrade.exe
`WUDHostUpgrade.exe`首先检查mutex`{502CBAF5-55E5-F190-16321A4}`来确定系统是否感染最新的NRSMiner。如果感染,`WUDHostUpgrade.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.exe`会安装名为`snmpstorsrv`的服务,并用`snmpstorsrv.dll`注册为servicedll,然后删除自己。

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224247-2af7b99e-10f8-1.png)

WUDHostUpgradexx.exe动作的伪代码表示

#### Snmpstorsrv service
新创建的Snmpstorsrv服务会从`svchost.exe -k netsvcs`开始,然后加载`snmpstorsrv.dll`文件,`snmpstorsrv.dll`文件会常见多个线程来执行恶意活动。

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224256-30dc49ba-10f8-1.png)

Snmpstorsrv服务执行的活动

Snmpstorsrv服务首先会在`%systemroot%\system32`文件夹中创建名为`MgmtFilterShim.ini`的文件,写入`+`,修改创建时间、最后访问时间、最后写入时间为svchost.exe中的值。

然后,Snmpstorsrv服务会从`MarsTraceDiagnostics.xml`中提取出恶意URL和加密货币挖矿机的配置文件。

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224311-39aa422c-10f8-1.png)

MarsTraceDiagnostics.xml文件中的恶意URL和挖矿机配置信息

在感染了老版本NRSMiner的系统中,恶意软件在更新NRSMiner前会删除老版本NRSMiner的所有组件。为了移除老版本的组件,新版本NRSMiner会引用一些可以在`snmpstorsrv.dll`文件中找到的字符串形式的服务、任务和文件;为了移除所有的`snmpstorsrv.dll`老版本,恶意软件引用了`MarsTraceDiagnostics.xml`文件中的列表。

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224326-424307c0-10f8-1.png)

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

老版本的服务、任务、文件和文件夹被删除后,Snmpstorsrv服务会检查连接到下面的地址来更新挖矿机的组件:

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

如果更新的挖矿机组件不可用,就下载和写入`MarsTraceDiagnostics.xml`文件。在下载了新的模块后,`%systemroot%\system32\TrustedHostex.exe`中的老版本挖矿机文件会被删除。新版本的挖矿机会在内存中解压缩,并将新提取出的挖矿机配置数据写入。

最新更新的挖矿机文件会被注入到`svchost.exe`中来进行加密货币挖矿。如果注入失败了,服务就会将挖矿机写入`%systemroot%\system32\TrustedHostex.exe`,然后执行。

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224428-674ff0b4-10f8-1.png)

内存中解压缩的挖矿机

然后,Snmpstorsrv服务会解压缩`wininit.exe`文件并将其注入到`svchost.exe`。如果注入失败,就将`wininit.exe`写入到`%systemroot%\AppDiagnostics\wininit.exe`中并执行。该服务还会打开端口`60153`并开始监听。

在其他2个线程中,服务会发送受感染的系统详情到地址:

- pluck[.]moisture[.]tk– MAC地址、IP地址、系统名、操作系统信息
- jump[.]taucepan[.]com– 处理器和内存特定信息

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224605-a1392b38-10f8-1.png)

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224543-93db98d6-10f8-1.png)

转发到远程站点的系统信息
根据发送的信息,恶意软件会下载和执行一个新的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会在TCP`445`端口扫描本地网络来寻找其他可访问的系统。扫描后,会执行Eternalblue可执行文件来利用有漏洞的系统。利用信息保存在`process1.txt`文件中。

如果有漏洞的系统被成功利用,`Wininit.exe`会执行`spoolsv.exe`。`spoolsv.exe`是DoublePulsar – 1.3.1可执行文件,该文件会在被漏洞利用的系统中安装DoublePulsar后门。根据目标的操作系统类型,`Wininit.exe`会移动`x86.dll或x64.dll`文件,然后用`spoolsv.exe`后门注入目标系统的`lsass.exe`。

![感染方法](https://xzfile.aliyuncs.com/media/upload/picture/20190105224621-aae69eae-10f8-1.png)
感染方法

#### x86.dll/x64.dll
`x86.dll/x64.dll`会创建socket连接,并从受感染系统中的`%systemroot%\system32`文件夹中获取`MarsTraceDiagnostics.xml`文件。提取`snmpstorsrv.dll`,然后在新感染的系统中创建并开启Snmpstorsrv服务,然后重复整个感染循环,并找出其他有漏洞的机器。

#### 挖矿机模块
NRSMiner使用XMRig Monero CPU挖矿机来生成Monero门罗币。使用的参数有:

![](https://xzfile.aliyuncs.com/media/upload/picture/20190105224630-affa1434-10f8-1.png)

挖矿机参数

```
-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/

houhualei 发表于 2019-1-23 17:30

pj10234 发表于 2019-1-23 17:53

感谢楼主的分析

haiwangfood 发表于 2019-1-23 17:57

感谢楼主的分析

zsksssss 发表于 2019-1-23 18:33

如何知道我的电脑有没有被感染当成她们的矿机呢

lucklymzj 发表于 2019-1-23 18:52

完全没看明白

lhp369 发表于 2019-1-23 21:03

好高深的。

you920928 发表于 2019-1-24 09:03

感谢楼主的分析

wangxuefeng 发表于 2019-1-24 09:51

除了内几个if判断,其他的一脸懵

E21k 发表于 2019-1-24 10:37


虽然不懂,但是感觉很厉害的样子。
页: [1] 2
查看完整版本: 更新版NSRminer加密货币挖矿机分析