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 事件對應的ATTCK映射圖譜針對攻擊者投放挖礦木馬的完整過程,安天梳理本次攻擊事件對應的ATTCK映射圖譜如下圖所示。
圖5‑1 事件對應的ATTCK映射圖譜
攻擊者使用的技術點如下表所示:
表5‑1 事件對應的ATTCK技術行為描述表
ATTCK階段/類別
具體行為
註釋
執行
利用命令和腳本解釋器
使用PowerShell腳本命令
持久化
執行流程劫持
利用oci.dll劫持
利用計劃任務/工作
創建計劃任務
防禦
Recommended Comments