“匿鏟”挖礦木馬活動分析
時間 : 2024年05月10日 來源: 安天CERT
1.概述
近期,安天CERT通過網絡安全監測發現了一起新的挖礦木馬攻擊事件,該挖礦木馬從2023年11月開始出現,期間多次升級組件,目前版本為3.0。截止到發稿前,該挖礦木馬攻擊事件持續活躍,感染量呈上升態勢。主要特點是隱蔽性強、反分析、DLL劫持后門和shellcode注入等,因此安天CERT將該挖礦木馬命名為“匿鏟”。
在此次攻擊活動中,攻擊者利用了兩個比較新穎的技術以對抗反病毒軟件,第一個技術是濫用反病毒軟件的舊版本內核驅動程序中的功能來結束反病毒軟件和EDR,這個技術通過一個主體的PowerShell腳本、一個獨立的PowerShell腳本和一個控制器(內存加載的小型可執行文件)來完成,主體的PowerShell腳本用于下載并安裝反病毒軟件的舊版本內核驅動程序,獨立的PowerShell腳本用于解密并內存加載控制器,控制器用來控制內核驅動程序。雖然被濫用的舊版本內核驅動程序早已更新,但目前仍能被非法利用并有效結束大多數反病毒軟件。第二個技術是利用MSDTC服務加載后門DLL,實現自啟動后門,達到持久化的目的。這個技術利用了MSDTC服務中MTxOCI組件的機制,在開啟MSDTC服務后,該組件會搜索oci.dll,默認情況下Windows系統不包含oci.dll。攻擊者會下載后門DLL重命名為oci.dll并放在指定目錄下,通過PowerShell腳本中的命令創建MSDTC服務,這樣該服務會加載oci.dll后門,形成持久化操作。
經驗證,安天智甲終端防御系統不會被反病毒軟件的舊版本內核驅動程序所阻斷,也能夠對該后門DLL的有效查殺。
2.攻擊流程
“匿鏟”挖礦木馬首先會從放馬服務器上下載名為“get.png”的PowerShell腳本,解碼后執行哈希驗證、創建計劃任務、禁用系統自帶殺毒軟件和創建服務等操作。之后會下載“kill.png”腳本和“delete.png”、“kill(1).png”兩個壓縮文件,腳本解碼出shellcode代碼,shellcode代碼經過解密得到控制器(一個可執行文件)并注入到powershell.exe進程中,兩個壓縮文件經過解壓縮得到反病毒廠商的舊版本內核驅動程序“aswArPots.sys”和“IObitUnlockers.sys”,由控制器調用,終止殺毒軟件和EDR程序等。還會根據受害主機自身系統型號下載對應的“86/64.png”的壓縮文件,解壓縮后會得到oci.dll文件,通過MSDTC服務調用實現DLL劫持后門。在“get.png”腳本中還看到了下載“backup.png”腳本的地址,但下載函數還未實現,可能后續版本會加,該腳本主要功能是發送心跳接收命令等。最后“get.png”腳本會下載“smartsscreen.exe”程序,該程序會下載挖礦程序及其組件進行挖礦。
圖2-1 攻擊流程圖
3.樣本梳理與功能分析
3.1 樣本梳理
針對該挖礦木馬攻擊,對其樣本及功能進行梳理,如下表所示:
表3-1 樣本及功能梳理
樣本名 |
落地名 |
樣本路徑 |
功能 |
get.png |
不落地 |
內存中 |
初始投放載荷,下載后續樣本,持久化 |
backup.png |
無 |
無 |
初始投放載荷沒有定義下載該樣本,推測后續增加 |
run.bat |
run.bat |
C:\Users\Public |
powershell命令下載get.png |
kill.png |
不落地 |
powershell.exe內存中 |
終止殺毒軟件和EDR等進程 |
kill.png(1) |
aswArPots.sys |
C:\Windows\System32\drivers |
|
delete.png |
IObitUnlockers.sys |
C:\Windows\System32\drivers |
強制刪除文件和進程 |
86.png/64.png |
oci.dll |
C:\Windows\System32 |
DLL劫持后門 |
smartsscreen.png |
smartsscreen.exe |
C:\Windows\Fonts |
下載挖礦程序等 |
curl.png |
curl.exe |
C:\Windows\Fonts |
curl官方文件 |
config.json |
config.json |
C:\Windows\Fonts |
挖礦配置文件 |
taskhostw.png |
taskhostw.exe |
C:\Windows\Fonts |
XMRig挖礦程序 |
WinRing0x64/32.png |
WinRing0x64/32.sys |
C:\Windows\Fonts |
挖礦驅動程序 |
config.txt |
不落地 |
無 |
包含版本信息及樣本哈希 |
表3-2 挖礦程序中的礦池地址和錢包地址
礦池地址 |
錢包地址 |
111.90.143.130:80 |
ZEPHYR2ty7pYE3wUdjLn1QKsFLiatXdMZHZzQSJToaoFM1LvWPzuqsvdtLzXRRk2hhFTxLCvLnAr4XJBCvrVfUeP8F6XC7QLgza47 |
93.95.228.47:80 |
|
zephyr.herominers.com:1123 |
3.2 樣本功能分析
3.2.1 核心腳本模塊分析(get.png)
利用系統自帶的工具刪除指定計劃任務、結束指定進程和停止指定服務,疑似清理與其存在競爭關系的挖礦木馬持久化操作。
圖3-1 刪除計劃任務等
遍歷所有可能的驅動器字母(從A到Z),檢查每個驅動器是否有足夠的可用空間。如果找到符合條件的驅動器,則返回該驅動器的名稱,如果遍歷完所有驅動器都沒有找到,則返回空。
圖3-2 遍歷驅動器
清理C:\Windows\Installer目錄中的空間,查找該目錄中最大的文件。搜索C:驅動器根目錄和除了一些系統目錄之外的所有子目錄中具有特定擴展名(.exe、.msi、.iso、.7z、.rar、.zip)的最大文件。如果找到了最大的文件,將其刪除,以便釋放空間。
圖3-3 釋放空間
定義了所需的空間量為10MB,如果找到了一個合適的驅動器,函數將嘗試創建一個隱藏的目錄\$RECYCLE.BIN\Fonts來保存文件。
圖3-4 下載文件存放位置
嘗試通過DoH服務獲取域名對應的IP地址,如果失敗,則嘗試使用傳統的DNS查詢方法。如果兩種方法都失敗,則使用備份的IP地址。目的是確保可以獲取到用于HTTP和FTP下載的域名的IP地址。
圖3-5 獲取域名對應IP地址
通過字符串替換操作來更新配置信息,以確保配置文件中的下載地址與實際的下載服務器地址一致。添加一個時間戳參數,通常用于確保每次請求都會加載最新的內容,而不是從緩存中加載。將HTTP地址轉換為FTP地址,并移除了可能存在的時間戳參數。
圖3-6 更新配置信息
創建多個計劃任務,分別執行后續下載到的載荷。計劃任務名分別為“OneDriveCloudSync”、“DefaultBrowserUpdate”、“OneDriveCloudBackup”,分別對應執行更新程序、自身文件、smartsscrren.exe。
圖3-7 創建計劃任務
清理自身舊的進程。
圖3-8 清理自身舊的進程
從遠程服務器獲取配置信息,并確保配置信息中的某些字符串哈希值存在。如果這些字符串存在,函數將停止循環,并繼續執行后續的腳本操作。如果字符串不存在,嘗試使用FTP協議再次下載配置信息。
圖3-9 驗證配置信息是否一致
配置信息如下,其中包括curl、xm、xmc、xms、smart、scan、ms86、ms64、dkill和ddelete字符串。
圖3-10 配置信息
禁用Windows Defender的實時監控,關閉rpc服務,清理系統的垃圾文件和日志等。
圖3-11 禁用系統自帶殺毒軟件
從指定的URL下載文件并保存到C:\Windows\System32\drivers,創建并啟動名為aswArPots和IObitUnlockers的服務。
圖3-12 創建服務
停止并重啟MSDTC服務,將下載的適用于主機系統的x86.png或x64.png重命名為oci.dll并保存在C:\Windows\System32中,通過MSDTC服務實現DLL劫持后門。
圖3-13 DLL劫持后門
最后下載并運行多個后續組件,具體如圖所示。
圖3-14 下載后續組件
3.2.2 遠控模塊分析(backup.png)
該腳本用于將日期時間、受害者主機名進行2次BASE編碼并回傳至攻擊者服務器,不斷地向服務器發送心跳信號,接收命令,執行這些命令,并將命令的輸出結果發送回服務器。
圖3-15 發送心跳包等至服務器
3.2.3 對抗模塊分析(kill.png)
該腳本實際為壓縮和BASE64編碼后的PowerShell腳本,該腳本會解密多層載荷,并在最后將一段shellcode代碼注入到powershell.exe進程中。
圖3-16 進程注入
shellcode會解密內嵌的一段PE再次實現內存加載。最終加載的PE數據為白名單驅動利用模塊,該模塊會偽裝白名單通信的驅動協議,操縱底層驅動利用系統權限刪除、終止指定的進程或文件,大部分進程為殺毒軟件、防火墻、沙箱等安全軟件的核心進程。該可執行文件旨在整理正在運行的進程列表,然后將它們與Anti-Virus和EDR進程名稱的CRC64校驗和值的混淆硬編碼列表進行比較。如果任何進程名稱與硬編碼列表中的條目直接關聯,則會將I/O控制(IOCTL)代碼發送到Avast驅動程序,從而導致進程終止。部分被列入攻擊者處理名單的進程名如下:
圖3-17 反殺毒軟件驅動
3.2.4 自我更新模塊分析(86/64.png)
msdtc目錄下具有兩個文件:“86.png”、“64.png”。分別對應32位環境與64位環境,兩個樣本在代碼結構方面完全一致,僅在編譯時選擇的目標系統位數不同。該文件僅負責從攻擊者服務器重新下載“get.png”并執行,用于自我更新。
圖3-18 自我更新下載get.png
3.2.5 挖礦組件下載器模塊分析(smartsscreen.exe)
該文件為挖礦組件的下載模塊,由Golang語言開發,運行后會訪問攻擊者服務器下載挖礦各個組件等。
圖3-19 下載后續挖礦組件
該組件運行后會訪問攻擊者服務器下載“config.txt”、“curl.png”用于校驗挖礦組件HASH與下載挖礦組件。隨后分別訪問下載XMRig官方開源挖礦組件。其中“taskhostw.png”為挖礦程序,“config.json”為挖礦配置文件,“WinRing0x64.png”為XMRig運行所需驅動。
圖3-20 下載挖礦組件網絡數據
4.挖礦木馬落地排查與清除方案
4.1 挖礦木馬落地識別
1.計劃任務
計劃任務名 |
對應樣本路徑 |
DefaultBrowserUpdate |
C:\Users\Public\run.bat |
OneDriveCloudBackup |
cmd.exe /c start
C:\Windows\Fonts\smartsscreen.exe |
OneDriveCloudSync |
cmd.exe
/c C:\Windows\System32\sc.exe start msdtc |
2.文件
文件名 |
路徑 |
smartsscreen.exe |
C:\Windows\Fonts |
taskhostw.exe |
|
WinRing0x64/32.sys |
|
curl.exe |
|
config.json |
|
run.bat |
C:\Users\Public\run.bat |
oci.dll |
C:\Windows\System32 |
aswArPots.sys |
C:\Windows\System32\drivers |
IObitUnlockers.sys |
3.服務
服務名 |
對應注冊表 |
MSDTC |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC |
4.進程
進程名 |
路徑 |
powershell.exe |
內存執行 |
smartsscreen.exe |
C:\Windows\Fonts |
taskhostw.exe |
5.網絡
IP |
功能 |
111.90.158.40 |
掛馬服務器 |
111.90.143.130:80 |
礦池地址 |
93.95.228.47:80 |
4.2 清除方案
建議采用安天系統安全內核分析工具(ATool)*免費版(下載地址:https://vs2.antiy.cn/)進行檢測查殺,首先刪除三個計劃任務,計劃任務名為DefaultBrowserUpdate、OneDriveCloudBackup和OneDriveCloudSync。
圖4-1 刪除計劃任務
結束相應進程,smartsscreen.exe、taskhostw.exe和powershell.exe。
圖4-2 結束相應進程
刪除挖礦程序等對應目錄中的樣本。
圖4-3 刪除對應目錄樣本
刪除對應的驅動文件,aswArPots.sys和IObitUnlockers.sys。重啟MSDTC服務,如不是自身創建,可對應刪除該服務。
圖4-4 刪除對應驅動文件
5.事件對應的ATT&CK映射圖譜
針對攻擊者投放挖礦木馬的完整過程,安天梳理本次攻擊事件對應的ATT&CK映射圖譜如下圖所示。
圖5-1 事件對應的ATT&CK映射圖譜
表5-1 事件對應的ATT&CK技術行為描述表
ATT&CK階段/類別 |
具體行為 |
注釋 |
執行 |
利用命令和腳本解釋器 |
使用PowerShell腳本命令 |
持久化 |
執行流程劫持 |
利用oci.dll劫持 |
利用計劃任務/工作 |
創建計劃任務 |
|
防御規避 |
進程注入 |
shellcode注入到powershell.exe中 |
修改注冊表 |
修改注冊表 |
|
反混淆/解碼文件或信息 |
反混淆PowerShell命令 |
|
使用Rootkit |
aswArPots.sys反Rootkit監控 |
|
削弱防御機制 |
禁用Windows Defender |
|
發現 |
發現文件和目錄 |
查找指定目錄最大文件 |
發現系統時間 |
獲取系統時間 |
|
命令與控制 |
編碼數據 |
回傳編碼數據 |
影響 |
資源劫持 |
占用CPU資源 |
6.防護建議
針對挖礦攻擊,安天建議企業采取如下防護措施:
1. 安裝終端防護:安裝反病毒軟件,針對不同平臺建議安裝安天智甲終端防御系統Windows/Linux版本;
2. 加強SSH口令強度:避免使用弱口令,建議使用16位或更長的口令,包括大小寫字母、數字和符號在內的組合,同時避免多個服務器使用相同口令;
3. 及時更新補丁:建議開啟自動更新功能安裝系統補丁,服務器應及時更新系統補丁;
4. 及時更新第三方應用補丁:建議及時更新第三方應用如Redis等應用程序補丁;
5. 開啟日志:開啟關鍵日志收集功能(安全日志、系統日志、錯誤日志、訪問日志、傳輸日志和Cookie日志),為安全事件的追蹤溯源提供基礎;
6. 主機加固:對系統進行滲透測試及安全加固;
7. 部署入侵檢測系統(IDS):部署流量監控類軟件或設備,便于對惡意代碼的發現與追蹤溯源。安天探海威脅檢測系統(PTD)以網絡流量為檢測分析對象,能精準檢測出已知海量惡意代碼和網絡攻擊活動,有效發現網絡可疑行為、資產和各類未知威脅;
8. 安天服務:若遭受惡意軟件攻擊,建議及時隔離被攻擊主機,并保護現場等待安全工程師對計算機進行排查;安天7*24小時服務熱線:400-840-9234。
部署企業級終端防御系統,實時檢測防護即時通訊軟件接收的不明文件。安天智甲終端防御系統采用安天下一代威脅檢測引擎檢測不明來源文件,通過內核級主動防御能力阻止其落地和運行。
圖6-1 安天智甲終端防御系統有效防護
7.IoCs
IoCs |
111.90.158.40 |
93.95.225.137 |
111.90.143.130 |
93.95.228.47 |
download.yrnvtklot.com |
ftp.yrnvtklot.com |
online.yrnvtklot.com |
zephyr.herominers.com |
hxxp://111.90.158.40/config.txt |
hxxp://111.90.158.40/curl.png |
hxxp://111.90.158.40/kill.png |
hxxp://111.90.158.40/smartsscreen.png |
hxxp://111.90.158.40/get.png |
hxxp://111.90.158.40/msdtc/86.png |
hxxp://111.90.158.40/msdtc/64.png |
hxxp://111.90.158.40/drives/kill.png |
hxxp://111.90.158.40/drives/delete.png |
hxxp://111.90.158.40/backup.png |
hxxp://111.90.158.40/config.json |
hxxp://111.90.158.40/info.txt |
hxxp://111.90.158.40/taskhostw.png |
hxxp://111.90.158.40/WinRing0x64.png |
hxxp://93.95.225.137/update |
hxxp://93.95.225.137/result |
AE465AF2287D24CCDEEC8035A1E3F159 |
B9E37DD582A6FF810672F9B33865C217 |
851284B85ACA7D8E966F3F0DCF9AA33B |
C3834835873B9D7D6B9A2436F748AA51 |
DC6CD17105168171C27FB167239636E1 |
8D31AE369E67EE0B412D889299F2B4B2 |
AA8FFE5D6495AFB8515E1B7C27A7A4AC |
271520C83F847743AA6EACCD1B949797 |
F6F15D525D1C893B996A01E1EA5CCC63 |
1801337FF3C1CBEC9B97ED0F7B79AC0B |