“杀不掉”的“虚灵矿工”——门罗币挖矿木马分析报告

安全
近期,新华三态势感知平台监测到某机器发起过对挖矿域名(xmr-eu2.nanopool.org)的解析请求,客户在发现异常事件后,启动中毒机器上的杀毒软件进行全盘扫描,未检出挖矿木马,带着客户的疑问,新华三安全攻防实验室即刻介入分析。

一、背景概述

近期,新华三态势感知平台监测到某机器发起过对挖矿域名(xmr-eu2.nanopool.org)的解析请求,客户在发现异常事件后,启动中毒机器上的杀毒软件进行全盘扫描,未检出挖矿木马,带着客户的疑问,新华三安全攻防实验室即刻介入分析。 

经验证,该样本的确能躲避多款国内外主流杀毒软件的查杀,通过对样本的深入分析,我们发现该挖矿木马在文件末尾附加了大量空字节、使自身大小达到百MB级别,从而达到杀软和沙箱检测逃逸的目的。根据该挖矿木马的这个特点,我们将其命名为"虚灵矿工"。

二、初步排查

1. 使用ProcessMonitor对样本动态行为进行监测,发现挖矿网络请求由explorer.exe进程发起:

2. 命令行带有明显的挖矿程序相关参数:

--cinit-find-x -B --algo=rx/0 --asm=auto --cpu-memory-pool=1 --randomx-mode=auto --randomx-no-rdmsr  --cuda-bfactor-hint=12 --cuda-bsleep-hint=100 --url=randomxmonero.eu-west.nicehash.com:3380 --user=3D8RFKShXUnEygTvd3ZMabw4ARhLu74KZq.Lakys --pass= --cpu-max-threads-hint=30  --nicehash  --cinit-stealth

3. 在sysmon记录中搜索父进程id,定位到父进程相应文件为:

%APPDATA%\gamelauncher.exe。该文件大小为672M,初步可以推测文件过大是杀毒软件未检出原因。

4. 在sysmon中还定位到gamlauncher.exe释放的一个驱动文件:%APPDATA%\libs\WR64.sys

根据gamelauncher.exe的线索,排查启动项,发现一计划任务会在机器开机时启动gamelauncher.exe。

根据排查可以定位挖矿木马和实现持久化的方法,调用关系如下:

三、样本分析

1、样本基本信息

2、样本逻辑图

3、gamelauncher.exe分析

gamelauncher.exe大小为672M,压缩后仅8.42M。使用工具查看时发现有效内容很少,因其实际Payload后添加了大量的空字节。

去除空字节填充之后的文件大小为8.35 MB (8,759,474 字节),查看区块信息,初步确认为Themida加壳。

其启动时会检测监控工具、反调试:

使用ExtremeDumper、AssemblyRebuilder获取到原始.net程序game.exe,game.exe启动会先休眠一分钟,然后对资源数据进行AES解密执行:

资源段数据解密结果为一个新的.net程序,文件名为game-miner.dll,但实际还是exe。

4、game-miner.dll分析

game-miner.dll有变量函数名混淆,这里简单重命名列出功能。

a. 有管理员权限情况下,创建计划任务实现持久化,如失败,则设置注册表项实现持久化:

b. 如果当前路径不是 %appdata%/gamelauncher.exe,则杀死sihost64进程,删除%appdata%/libs/路径下的sihost64.log、sihost64-2.log,将自身复制为%appdata%/gamelauncher.exe并启动,自身退出(实际运行时,只要文件名不是gamelauncher.exe,就会执行以上操作)

c. 读取kumhcdkzhbym资源,解密后写到%appdata%/libs/WR64.sys

d. 遍历所有explorer.exe进程的命令行,判断是否已经开始挖矿,如果已经有相应参数,则直接退出 

e. 解密挖矿参数,解密资源段数据并提取压缩包中的xmrig.exe文件,开始创建新explorer进程并注入恶意代码执行 

f. 以挂起方式创建explorer进程,第6个参数为4,即CREATE_SUSPENDED表示挂起状态,写挖矿程序到explorer进程相应内存,然后恢复运行,开始挖矿。

g. 写入explorer进程的挖矿程序被加壳,单独运行调试,使用Scylla dump并修复导入表,使用IDA可查看main函数。

我们从https://github.com/xmrig/xmrig下载挖矿程序与dump出的挖矿程序进行对比,main函数基本一致

game-miner.dll释放的WR64.sys pdb路径为:

"d:\hotproject\winring0\source\dll\sys\lib\amd64\WinRing0.pdb"

证书也和下载的xmrig包含的WinRing0x64.sys一致,使用IDA对比结构完全相同。

该恶意程序使用xmrig时,默认会将算力的1%贡献给xmrig项目,相关域名即态感平台监测到的xmr-eu2.nanopool.org。

根据样本分析,可确认挖矿木马执行的整个过程,和态感监测记录符合。

四、同源性分析

根据样本特点,我们关联到github的一个开源项目SilentXMRMiner:

https://github.com/UnamSanctam/SilentXMRMiner

该项目提供高度可定制化的挖矿程序生成能力,根据时间关系,我们取SilentXMRMiner v1.4.4版本按相同配置生成挖矿程序new_game.exe,和game.exe进行对比:

从资源段解密得到game-miner.dll, main函数对比如下:

此外,通过查看项目代码,确定样本分析中提到的sihost64进程为守护进程,可在挖矿程序异常时尝试恢复运行。

通过以上对比关联可以确定,"虚灵矿工"正是在该项目生成的程序基础上,进行了加壳和附加空字节的操作。

五、IOC

* domain:

xmr-eu2.nanopool.org

randomxmonero.eu-west.nicehash.com:3380

* MD5:

974df47a259b9d5477d768871f3cb5a8

六、新华三处置与防御建议

【处置建议】

1) 清除gamelauncher相关的计划任务和注册表中的自启动项;

2) 删除%APPDATA%/gamelauncher.exe %APPDATA%/libs/WR64.sys;

3) 重新启动操作系统。

【防御建议】

1) 尽量在官方下载软件,谨慎使用各大下载站;

2) 不要点击来源不明的邮件以及附件;

3) 新华三威胁情报与特征库已能进行检测,建议升级到相关最新版本。

 

责任编辑:Blue 来源: 新华三
相关推荐

2021-01-04 13:23:56

僵尸网络加密货币漏洞

2021-08-13 15:14:04

比特币虚拟货币加密货币

2013-06-05 17:02:42

2021-01-07 10:41:42

GolangWindowsLinux

2021-07-04 10:03:32

比特币虚拟货币加密货币

2021-01-19 14:57:47

AI

2021-04-26 23:27:41

僵尸网络漏洞恶意代码

2021-01-14 09:20:49

木马区块链加密货币

2012-12-11 15:24:46

2018-10-11 08:57:22

2021-08-10 10:37:43

恶意软件挖矿网络攻击

2011-04-11 17:10:16

Oracle

2021-03-05 14:58:34

比特币区块链挖矿

2022-01-21 16:30:45

比特币挖矿加密货币

2013-06-07 12:34:00

2021-11-19 14:33:27

挖矿木马病毒

2022-06-08 13:11:35

比特币挖矿区块链

2012-12-27 10:44:05

2021-04-26 10:13:04

显卡硬盘加密

2013-07-03 09:48:24

点赞
收藏

51CTO技术栈公众号