挖礦惡意程序紀實分析之 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:Windowsdellun64.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原創獎勵計劃,未經許可禁止轉載
※黑客發現酒店鑰匙卡系統漏洞,可生成任意房門鑰匙
※ezXSS:一款功能強大的XSS盲測工具
TAG:FreeBuf |