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

一、背景概述

近期,新华三态势感知平台监测到某机器发起过对挖矿域名(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)  新华三威胁情报与特征库已能进行检测,建议升级到相关最新版本。

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/126193.html<

(0)
运维的头像运维
上一篇2025-02-24 02:32
下一篇 2025-02-14 10:22

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注