“殺不掉”的“虛靈礦工”——門羅幣挖礦木馬分析報告
一、背景概述
近期,新華三態(tài)勢感知平臺監(jiān)測到某機(jī)器發(fā)起過對挖礦域名(xmr-eu2.nanopool.org
經(jīng)驗(yàn)證,該樣本的確能躲避多款國內(nèi)外主流殺毒軟件的查殺,通過對樣本的深入分析,我們發(fā)現(xiàn)該挖礦木馬在文件末尾附加了大量空字節(jié)、使自身大小達(dá)到百M(fèi)B級別,從而達(dá)到殺軟和沙箱檢測逃逸的目的。根據(jù)該挖礦木馬的這個特點(diǎn),我們將其命名為"虛靈礦工"。
二、初步排查
1. 使用ProcessMonitor對樣本動態(tài)行為進(jìn)行監(jiān)測,發(fā)現(xiàn)挖礦網(wǎng)絡(luò)請求由explorer.exe進(jìn)程發(fā)起:
2. 命令行帶有明顯的挖礦程序相關(guān)參數(shù):
--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記錄中搜索父進(jìn)程id,定位到父進(jìn)程相應(yīng)文件為:
%APPDATA%\gamelauncher.exe。該文件大小為672M,初步可以推測文件過大是殺毒軟件未檢出原因。
4. 在sysmon中還定位到gamlauncher.exe釋放的一個驅(qū)動文件:%APPDATA%\libs\WR64.sys
根據(jù)gamelauncher.exe的線索,排查啟動項(xiàng),發(fā)現(xiàn)一計(jì)劃任務(wù)會在機(jī)器開機(jī)時啟動gamelauncher.exe。
根據(jù)排查可以定位挖礦木馬和實(shí)現(xiàn)持久化的方法,調(diào)用關(guān)系如下:
三、樣本分析
gamelauncher.exe大小為672M,壓縮后僅8.42M。使用工具查看時發(fā)現(xiàn)有效內(nèi)容很少,因其實(shí)際Payload后添加了大量的空字節(jié)。
去除空字節(jié)填充之后的文件大小為8.35 MB (8,759,474 字節(jié)),查看區(qū)塊信息,初步確認(rèn)為Themida加殼。
其啟動時會檢測監(jiān)控工具、反調(diào)試:
使用ExtremeDumper、AssemblyRebuilder獲取到原始.net程序game.exe,game.exe啟動會先休眠一分鐘,然后對資源數(shù)據(jù)進(jìn)行AES解密執(zhí)行:
資源段數(shù)據(jù)解密結(jié)果為一個新的.net程序,文件名為game-miner.dll,但實(shí)際還是exe。
game-miner.dll有變量函數(shù)名混淆,這里簡單重命名列出功能。
a. 有管理員權(quán)限情況下,創(chuàng)建計(jì)劃任務(wù)實(shí)現(xiàn)持久化,如失敗,則設(shè)置注冊表項(xiàng)實(shí)現(xiàn)持久化:
b. 如果當(dāng)前路徑不是 %appdata%/gamelauncher.exe,則殺死sihost64進(jìn)程,刪除%appdata%/libs/路徑下的sihost64.log、sihost64-2.log,將自身復(fù)制為%appdata%/gamelauncher.exe并啟動,自身退出(實(shí)際運(yùn)行時,只要文件名不是gamelauncher.exe,就會執(zhí)行以上操作)
c. 讀取kumhcdkzhbym資源,解密后寫到%appdata%/libs/WR64.sys
e. 解密挖礦參數(shù),解密資源段數(shù)據(jù)并提取壓縮包中的xmrig.exe文件,開始創(chuàng)建新explorer進(jìn)程并注入惡意代碼執(zhí)行
f. 以掛起方式創(chuàng)建explorer進(jìn)程,第6個參數(shù)為4,即CREATE_SUSPENDED表示掛起狀態(tài),
g. 寫入explorer進(jìn)程的挖礦程序被加殼,單獨(dú)運(yùn)行調(diào)試,使用Scylla dump并修復(fù)導(dǎo)入表,使用IDA可查看main函數(shù)。
我們從https://github.com/xmrig/xmrig下載挖礦程序與dump出的挖礦程序進(jìn)行對比,main函數(shù)基本一致
game-miner.dll釋放的WR64.sys pdb路徑為:
"d:\hotproject\winring0\source\dll\sys\lib\amd64\WinRing0.pdb"
證書也和下載的xmrig包含的WinRing0x64.sys一致,使用IDA對比結(jié)構(gòu)完全相同。
該惡意程序使用xmrig時,默認(rèn)會將算力的1%貢獻(xiàn)給xmrig項(xiàng)目,相關(guān)域名即態(tài)感平臺監(jiān)測到的xmr-eu2.nanopool.org。
根據(jù)樣本分析,可確認(rèn)挖礦木馬執(zhí)行的整個過程,和態(tài)感監(jiān)測記錄符合。
四、同源性分析
根據(jù)樣本特點(diǎn),我們關(guān)聯(lián)到github的一個開源項(xiàng)目SilentXMRMiner:
https://github.com/UnamSanctam/SilentXMRMiner
該項(xiàng)目提供高度可定制化的挖礦程序生成能力,根據(jù)時間關(guān)系,我們?nèi)ilentXMRMiner v1.4.4版本按相同配置生成挖礦程序new_game.exe,和game.exe進(jìn)行對比:
從資源段解密得到game-miner.dll, main函數(shù)對比如下:
此外,通過查看項(xiàng)目代碼,確定樣本分析中提到的sihost64進(jìn)程為守護(hù)進(jìn)程,可在挖礦程序異常時嘗試恢復(fù)運(yùn)行。
通過以上對比關(guān)聯(lián)可以確定,"虛靈礦工"正是在該項(xiàng)目生成的程序基礎(chǔ)上,進(jìn)行了加殼和附加空字節(jié)的操作。
五、IOC
* domain:
xmr-eu2.nanopool.org
randomxmonero.eu-west.nicehash.com:3380
* MD5:
974df47a259b9d5477d768871f3cb5a8
六、新華三處置與防御建議
【處置建議】
1) 清除gamelauncher相關(guān)的計(jì)劃任務(wù)和注冊表中的自啟動項(xiàng);
2) 刪除%APPDATA%/gamelauncher.exe %APPDATA%/libs/WR64.sys;
3) 重新啟動操作系統(tǒng)。
【防御建議】
1) 盡量在官方下載軟件,謹(jǐn)慎使用各大下載站;
2) 不要點(diǎn)擊來源不明的郵件以及附件;
3) 新華三威脅情報與特征庫已能進(jìn)行檢測,建議升級到相關(guān)最新版本。


















































