當前位置:
首頁 > 新聞 > 挖礦惡意程序紀實分析之 Windows 篇

挖礦惡意程序紀實分析之 Windows 篇

一、背景


近期接到客戶反饋,其網路中有部分 Windows 系統終端機器異常,安全團隊經過分析,發現其仍舊是一起網路挖礦事件。


二、基本情況


通過對受害終端進行檢查,發現有一個進程update64.exe佔用CPU極高,該進程位於c:windowsdell目錄下。

任務管理器根據CPU排序後,其佔用99%CPU,許可權是SYSTEM許可權。


如下圖所示:



用任務管理其殺掉update64.exe進程,馬上重新啟動,靠,這麼暴力啊?


直接調用命令wmic process where Name=」update64.exe」 get ParentProcessId查看其父進程,發現竟然是cmd.exe不停的在啟動update64.exe,而且cmd.exe是system許可權運行的,如下圖所示:



殺掉該cmd.exe,發現其也是不停的重新啟動,暈,太暴力了。


繼續查看其父進程

wmic process where Name="cmd.exe" get ParentProcessId

發現cmd.exe是由svchost.exe進程啟動的,其位置也在c:windowsdell目錄下,許可權也是system許可權,進程描述為「the Non-Sucking Service Manager」。


如下圖所示:


採用svchost.exe ->cmd.exe->update64.exe的順序殺掉進程,update64.exe進程不會重新再次啟動,說明c:windowsdellsvchost.exe就是用於負責啟動並且保護update64.exe進程的。


1、運行cmd.exe,進入c:windowsdell目錄,命令dir /a 查看後,發現該目錄下有四個文件,分別是run.bat、run64.bat、svchost.exe和Update64.exe。


2、獲取文件HASH


利用window自帶命令行工具certutil.exe,獲取文件SHA256 HASH。


certutil.exe用法:



certutil.exe -hashfile 目標文件名 SHA256


SHA256 HASH列表如下:
























文件名 大小 文件HASH(SHA256)
Run.bat 214 f86f90440a2b36c0c477a6ce6df732d274b29605388c55b952bc1028e4e0af94
Run64.bat 95 dbc8422a6e73459e777bb1989aa26c0f4416fe99e93e234a6b3c0ae9539ff603
Svchost.exe 353,792 29f0dbf2d07c4b68c3c9ee0d139d80bad3e9058fbf9dbd574cb5b047cf742e74
Update64.exe 2,594,816 c1fee6f3375b891081fa9815c620ad8c1a80e3c62dccc7f24c5afee72cf3ddcd

備註:

撰寫本文時,發現當天(5月23日)FREEBUF上發布了一篇文章,「SURFSRC | 一個針對「比特票」挖礦木馬樣本的分析」,連接網址為:【http://www.freebuf.com/articles/system/172579.html】,其中分析的樣本與我方分析的樣本基本類似,尤其是其中Svchost.exe為同一個程序,因為其HASH值相同。

暈,好吧。

既然已經撰寫了,就厚臉繼續投稿了,畢竟技術上可以互相印證。其他有些差異的地方,大家可以對照兩文,互相補充。


3、此外,習慣性的運行命令dir /a /od檢查,在c:windows目下發現一個名為Update.exe文件。












文件名 大小 HASH(SHA256)
Update.exe 2,854,829 aeb8ecc2ad424926af154172c6f2d2f8a98b881f59389fe75e1a2408bdcb3927

簡單分析發現Update.exe其實是winrar創建的自解壓exe文件。查看其文件屬性,發現其自解壓命令如下圖所示。



Update.exe運行後會把文件解壓縮到c:windowsdell目錄下(覆蓋模式),同時運行c:windowsdell
un.bat批處理文件(靜默後台運行)。


能解壓到c:windows目錄下,說明入侵者具備了超級許可權。


判斷:

入侵者通過某種入侵手段(未知,比如漏洞攻擊、郵件攻擊、欺騙手段比如直接發給目標一個update.exe,說是啥啥啥的壓縮包文件,讓其雙擊執行解壓等)獲取系統許可權,並執行update.exe解壓縮到c:windowsdell目錄。


4、進程與網路連接

運行tasklist命令,update64.exe進程號為364,如下圖。


運行nentstat–noa 命令查看,364號進程的網路鏈接如下圖。



三、樣本分析


(一)run.bat


1、文件內容



2、批處理命令解析



a)     

安裝

Windows32_Update服務。

利用

C:Windowsdell*svchost.exe**進程安裝一個windows系統服務,名為」* Windows32_Update」,其對應的可執行路徑為: C:Windowsdell
un64.bat。


b)     啟動Windows32_Update服務


c)     調用系統自帶」Windows 事件命令行工具wevtutil.exe清理日誌信息


清除windows powershell啟動運行日誌


清除windows日誌之安全日誌


清除windows日誌之系統日誌

安全日誌和系統日誌比較常見,windows powershell日誌記錄的是系統windows powershell腳本運行的痕迹,其在事件查看器中的位置如下圖所示:



3、Wevtutil.exe簡介


Wevtutil.exe是系統自帶的系統日誌命令行管理工具,位於c:windowssystem32目錄下,其命令行參數如下所示:


| wevtutil COMMAND [ARGUMENT [ARGUMENT] …] [/OPTION:VALUE [/OPTION:VALUE] …]

命令:


el | enum-logs          列出日誌名稱。
gl | get-log             獲取日誌配置信息。
sl | set-log              修改日誌配置。
ep | enum-publishers     列出事件發布者。
gp | get-publisher        獲取發布者配置信息。
im | install-manifest       從清單中安裝事件發布者和日誌。
um | uninstall-manifest    從清單中卸載事件發布者和日誌。
qe | query-events        從日誌或日誌文件中查詢事件。
gli | get-log-info         獲取日誌狀態信息。
epl | export-log          導出日誌。
al | archive-log           存檔導出的日誌。
cl | clear-log             清除日誌。

常用選項:


/{r | remote}:VALUE 如果指定,則在遠程計算機上運行該命令。VALUE 是遠程計算機名稱。
/im 和 /um 選項不支持遠程操作。
/{u | username}:VALUE 指定一個不同的用戶以登錄到遠程計算機。 VALUE 是 domainuser 或 user 形式的用戶名。只有在指定 /r 選項時才適用。
/{p | password}:VALUE 指定的用戶密碼。如果未指定, 或者 VALUE 為 「*」,則會提示用戶輸入密碼。 只有在指定 /u 選項時才適用。
/{a | authentication}:[Default|Negotiate|Kerberos|NTLM] 用於連接到遠程計算機的身份驗證類型。默認值為 Negotiate。
/{uni | unicode}:[true|false] 使用 Unicode 顯示輸出。如果為 true,則使用 Unicode 顯示輸出。 |
| —- |


4、疑問


a)     清除系統日誌的動機大家都很清楚,無外乎隱藏攻擊者痕迹。為什麼要清除windows powershell日誌呢?除非在整個入侵或者滲透過程中,攻擊者利用powershell執行了某些指令?可是如何查看其執行的指令呢?是否預示。。。?畢竟現在還不清楚入侵手段。


b)     怎麼能夠把一個.bat文件註冊為服務進程呢?


c)     安裝系統服務是必須具備超級用戶許可權的,入侵者是通過何種手段進入的,又是如何躲避UAC的?


在實驗機器上手動執行該run.bat批處理,其運行界面如下:



(二)Run64.bat


1、文件內容




2、命令解析


從run64.bat內容我們可以估計Update64.exe就是一個挖礦程序,其挖掘的是XMR虛擬貨幣,礦池是xmr.pool.minergate.com:45560,挖礦帳號是:cooldayright@outlook.com。


3、MinerGate簡介


MinerGate是國外一個知名的挖礦網站,支持很多種虛擬或貨幣的挖礦、轉賬交易等,其網站主頁為:https://minergate.com/。


根據網站主頁顯示,目前支持BTC、XMR、以太坊等16種主流的虛擬貨幣,具體支持的貨幣如下圖所示:


在網站上可以直觀查看挖礦收益,而且支持的系統很多,目前已經支持安卓手機,適合各種人群。一句話總結,Minergate就是一款或許是最簡單的入門的挖礦工具!


補充:


第一、在Minergate網站註冊時必須利用真實有效的郵箱地址進行註冊確認,因此,cooldayright@outlook.com郵箱是攻擊者的真實有效EMAIL。


第二、根據minergate網站提示,其用於xmr挖礦的埠已經修改為45700,而本樣本依然連接的是45560埠,或許攻擊者還會採取下一步動作?



(三)svchost.exe


查看文件屬性,如下圖:



打開baidu,搜索nssm.exe,結果如下。



我們發現,svchost.exe其實就是服務管理軟體nssm.exe,其官網地址為:http://nssm.cc/


github上NSSM(https://github.com/kirillkovalenko/nssm)。


根據網路查詢,NSSM是一個服務封裝程序,它可以將普通exe程序封裝成服務,使之像windows服務一樣運行。同類型的工具還有微軟自己的srvany,不過nssm更加簡單易用,並且功能強大。


它的特點如下:



l  支持普通exe程序(控制台程序或者帶界面的Windows程序都可以)


l  安裝簡單,修改方便


l  可以重定向輸出(並且支持Rotation)


l  可以自動守護封裝了的服務,程序掛掉了後可以自動重啟


l  可以自定義環境變數


至此,上面的疑問(.bat文件如何能註冊為服務進程)終於得到了解決。NSSM很強大,真的很強大!!!!


怪不得,上面殺了update64.exe,過一會該進程就重新啟動。


(四)Update64.exe


從run64.bat我們可知,其實Update64.exe就是一個挖礦軟體。文件屬性如下圖所示,文件修改時間為2016年9月2日。



根據經驗,很多挖礦軟體都自帶命令行幫助文件,於是我們直接在命令行下運行該程序,結果卻如下所示:



說明該程序應該是經過重新修改編譯了。


直接加上參數運行(調用run64.bat),發現其竟然是有控制台顯示的(利用system許可權調用也是有原因,至少不會彈出黑屏框),其顯示的界面如下圖所示:



根據網路查詢,發現Update64就是Claymore-XMR-CPU-Miner,版本為3.5版本,一款利用開源的利用cpu挖掘xmr幣的軟體,其github地址為:https://github.com/nanopool/Claymore-XMR-CPU-Miner/releases。


目前已經更新到4.0版本。


Claymore支持多種虛擬貨幣挖礦:



由於minergate網站沒有提供直接挖礦收益查詢功能,註冊用戶只能查看其自身收益情況,因此無法得知攻擊者cooldayright@outlook.com收益情況。


四、總結與疑問



1、卸載服務。


2、刪除文件實體。


3、入侵手法未知?也就是壓縮檔文件update.exe是如何進入到用戶系統的,目前不知道,還有整個分析過程沒有發現「powershell」命令運行痕迹,結合run.bat裡面清除」powershell」日誌,是否有可能是利用某些漏洞攻擊手法(比如doc文檔攻擊,裡面調用powershell命令下載文件執行?可是不對,文檔類攻擊無法獲取system許可權?)


4、難道真的是直接發送給用戶update.exe讓其運行,可是為什麼會在c:windows目錄下呢?


5、如果是自動化入侵手段,應該是利用漏洞攻擊手法,比如前期的jboss、websphere等軟體漏洞,在window系統下可以直接獲取system許可權。可是有些終端主機都是簡單的客戶端,沒有對外提供服務?有可能是先控制的伺服器,然後進行內網滲透?豈不是全網淪陷了?汗。。。


6、帶著疑問。。。繼續前行吧,網路安全永遠在路上。


* 本文作者:CGF99,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

黑客發現酒店鑰匙卡系統漏洞,可生成任意房門鑰匙
ezXSS:一款功能強大的XSS盲測工具

TAG:FreeBuf |