1. 简述

深信服EDR安全团队追踪到一个新型的挖矿病毒,深信服安全专家研究发现,此挖矿病毒构造复杂,善于伪装,像影子般依附到系统环境。

目前该病毒已挖得3350个门罗币,获利约合人民币268万人民币,但令人惊讶的是,目前仍然未被发现(闷声发大财的典型代表),深信服已将其命名为ShadowMiner,并制定了相关的应对措施。

《闷声发大财的典型代表——ShadowMiner》

下图,是收集到的五个相关样本。

《闷声发大财的典型代表——ShadowMiner》

2. 病毒分析

2.1 病毒流程

病毒的整体流程如下,其中病毒母体为x1.exe,WmiApSvr.exe为开源的挖矿软件XMRig。

《闷声发大财的典型代表——ShadowMiner》

2.2. 病毒母体分析

病毒母体x1.exe主要有四个主要的恶意行为:注册服务、释放文件、下载文件、创建进程        

《闷声发大财的典型代表——ShadowMiner》

2.2.1. 注册服务

检查服务clr_optimization_v3.0.50727_32是否存在,没有则创建该服务。

《闷声发大财的典型代表——ShadowMiner》

服务对应的文件为C:Windows.NETFrameworkmscorsvw.exe,此时该文件还未创建,所以服务也处于停止状态。

《闷声发大财的典型代表——ShadowMiner》

 服务运行的参数为aspnet_wp.exe。

《闷声发大财的典型代表——ShadowMiner》

 2.2.2. 释放文件

病毒母体通过Trigger+函数地址的方式进行API的动态调用,这大大增加了逆向者的分析难度。什么是Trigger呢?Trigger就像一个装载器,将函数参数和要调用的函数地址传给它,它就能自动进行函数调用。如下是病毒使用该方法进行创建文件、修改文件属性、查询文件,经过这轮操作,文件mscorsvw.exe、aspnet_wp.exe、MpMgSvc.dll被创建。

《闷声发大财的典型代表——ShadowMiner》

我们后续发现,这个mscorsvw.exe是个合法软件,原名叫srvany.exe,srvany.exe是Microsoft Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,真正运行的是恶意文件aspnet_wp.exe。

《闷声发大财的典型代表——ShadowMiner》

2.2.3. 下载文件

下载http://122.49.66.39/11.exe,重命名为本地的C:windowsime64.exe。

《闷声发大财的典型代表——ShadowMiner》

2.2.4. 创建恶意进程

创建进程aspnet_wp.exe。

《闷声发大财的典型代表——ShadowMiner》

aspnet_wp.exe运行后拉起了一个svchost.exe后便退出了。

《闷声发大财的典型代表——ShadowMiner》

下载完64.exe后,便调用CreateProcess执行了它。

《闷声发大财的典型代表——ShadowMiner》

64.exe的行为跟aspnet_wp.exe的很像,都是拉起了一些进程后退出。

《闷声发大财的典型代表——ShadowMiner》

最后,系统中只剩下恶意进程svchost.exe和WmiApSvr.exe,我们也可以看到WmiApSvr.exe已经开始挖矿了。

《闷声发大财的典型代表——ShadowMiner》

2.3.  aspnet_wp分析

从上文我们得知aspnet_wp.exe的恶意行为就是拉起svchost.exe然后退出,按照病毒的常规操作,它退出前会将恶意代码注入到svchost.exe中,所以分析aspnet_wp时我们重点关注进程注入操作。

《闷声发大财的典型代表——ShadowMiner》

2.3.1. 创建进程

创建合法进程svchost.exe。

《闷声发大财的典型代表——ShadowMiner》

2.3.2. 注入代码

调用WriteVirutalMemory往svchost.exe内存里写入恶意代码。

《闷声发大财的典型代表——ShadowMiner》

2.3.3. 木马通信

尝试与C&C服务器进行通信。

《闷声发大财的典型代表——ShadowMiner》

通过抓包得知,aaaa.usa-138.com对应的IP为123.142.209.27。而且现在无法跟C&C服务器进行连接。

《闷声发大财的典型代表——ShadowMiner》

2.3.4. 自隐藏

调用SetFileAttributesA将自身设置为隐藏属性。

《闷声发大财的典型代表——ShadowMiner》

2.4.  64.exe分析

《闷声发大财的典型代表——ShadowMiner》

2.4.1. 注册服务

64.exe跟病毒母体一样,也会创建一个伪装服务,伪装的服务名为Services。这个服务对应的可执行文件是MSBuild.exe,功能是运行Paramters里的二进制文件,即间接运行Services.exe。

《闷声发大财的典型代表——ShadowMiner》

2.4.2. 清除异己

接着64.exe会清除其他同行以保证独占CPU进行挖矿,首先会调用sc删除很多服务,其中包括WannaMine2.0。

《闷声发大财的典型代表——ShadowMiner》

添加防火墙策略,关闭SMB端口

《闷声发大财的典型代表——ShadowMiner》

2.4.3. 执行挖矿

运行Services.exe,Services.exe的主要功能为释放及运行挖矿软件WmiApsver.exe。

《闷声发大财的典型代表——ShadowMiner》

释放WmiApSvr.exe到C:Program FilesCommon FilesServices路径下。

《闷声发大财的典型代表——ShadowMiner》

运行挖矿软件WmiApSvr.exe,钱包地址为:49e9B8HxzSbMWsNbMs72aVe78U9CCE2DAM5aDJYNeccWNvWiKfrPaGeewmTAjj6nt6Bqzob4zaRjLXfpW1WfRMnzEAQBHy7。

《闷声发大财的典型代表——ShadowMiner》

开始挖矿!

《闷声发大财的典型代表——ShadowMiner》

2.4.4. 自删除

为自己的临时文件创建一个进程,主要目的为对64.exe进行自删除。

《闷声发大财的典型代表——ShadowMiner》

这是DEZ_7379.tmp的代码,首先结束64.exe进程。

《闷声发大财的典型代表——ShadowMiner》

然后删除64.exe。

《闷声发大财的典型代表——ShadowMiner》

3. 解决方案 

[1] 内网检测:深信服防火墙、深信服安全感知支持挖矿病毒检测,使用该类产品,可以快速定位企业内网感染挖矿病毒的主机。

[2] 结束进程:WmiApSvr.exe、svchost.exe(注意是没有父进程的svchost.exe)。

[3] 删除如下文件:

x1.exe

64.exe

C:WindowsMicrosoft.NETFrameworkaspnet_wp.exe

C:Program FilesMSBuildServices.exe

C:Program FilesCommon FilesWmiApSvr.exe

[4] 删除服务:clr_optimization_v3.0.50727_32、Services。

[5] 终端企业级防护,推荐使用深信服EDR产品进行一键查杀

《闷声发大财的典型代表——ShadowMiner》