“杀不掉”的“虚灵矿工”——门罗币挖矿木马分析报告
2021-12-23 15:28:52 Author: www.freebuf.com(查看原文) 阅读量:26 收藏

一、背景概述

近期,新华三态势感知平台监测到某机器发起过对挖矿域名(xmr-eu2.nanopool.org

)的解析请求,客户在发现异常事件后,启动中毒机器上的杀毒软件进行全盘扫描,未检出挖矿木马,带着客户的疑问,新华三安全攻防实验室即刻介入分析。

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

二、初步排查

  1. 使用ProcessMonitor对样本动态行为进行监测,发现挖矿网络请求由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

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

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

  1. 在sysmon中还定位到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有变量函数名混淆,这里简单重命名列出功能。

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

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

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

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

e. 解密挖矿参数,解密资源段数据并提取压缩包中的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、新华三威胁情报与特征库已能进行检测,建议升级到相关最新版本。


文章来源: https://www.freebuf.com/news/317132.html
如有侵权请联系:admin#unsafe.sh