freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

“杀不掉”的“虚灵矿工”——门罗币挖矿木马分析报告
2021-12-23 15:28:52

一、背景概述

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

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
  • 0 文章数
  • 0 关注者
文章目录