Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863107069

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

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 攻击流程图.jpg

圖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 删除计划任务等.jpg

圖3‑1 刪除計劃任務等

遍歷所有可能的驅動器字母(從A到Z),檢查每個驅動器是否有足夠的可用空間。如果找到符合條件的驅動器,則返回該驅動器的名稱,如果遍歷完所有驅動器都沒有找到,則返回空。

图 3 2 遍历驱动器.jpg

圖3‑2 遍歷驅動器

清理C:\Windows\Installer目錄中的空間,查找該目錄中最大的文件。搜索C:驅動器根目錄和除了一些系統目錄之外的所有子目錄中具有特定擴展名(.exe、msi、iso、7z、rar、zip)的最大文件。如果找到了最大的文件,將其刪除,以便釋放空間。

图 3 3 释放空间.jpg

圖3‑3 釋放空間

定義了所需的空間量為10MB,如果找到了一個合適的驅動器,函數將嘗試創建一個隱藏的目錄\$RECYCLE.BIN\Fonts來保存文件。

图 3 4 下载文件存放位置.jpg

圖3‑4 下載文件存放位置

嘗試通過DoH服務獲取域名對應的IP地址,如果失敗,則嘗試使用傳統的DNS查詢方法。如果兩種方法都失敗,則使用備份的IP地址。目的是確保可以獲取到用於HTTP和FTP下載的域名的IP地址。

图 3 5 获取域名对应IP地址.jpg

圖3‑5 獲取域名對應IP地址

通過字符串替換操作來更新配置信息,以確保配置文件中的下載地址與實際的下載服務器地址一致。添加一個時間戳參數,通常用於確保每次請求都會加載最新的內容,而不是從緩存中加載。將HTTP地址轉換為FTP地址,並移除了可能存在的時間戳參數。

图 3 6 更新配置信息.jpg

圖3‑6 更新配置信息

創建多個計劃任務,分別執行後續下載到的載荷。計劃任務名分別為“OneDriveCloudSync”、“DefaultBrowserUpdate”、“OneDriveCloudBackup”,分別對應執行更新程序、自身文件、smartsscrren.exe。

图 3 7 创建计划任务.jpg

圖3‑7 創建計劃任務

清理自身舊的進程。

图 3 8 清理自身旧的进程.jpg

圖3‑8 清理自身舊的進程

從遠程服務器獲取配置信息,並確保配置信息中的某些字符串哈希值存在。如果這些字符串存在,函數將停止循環,並繼續執行後續的腳本操作。如果字符串不存在,嘗試使用FTP協議再次下載配置信息。

图 3 9 验证配置信息是否一致.jpg

圖3‑9 驗證配置信息是否一致

配置信息如下,其中包括curl、xm、xmc、xms、smart、scan、ms86、ms64、dkill和ddelete字符串。

图 3 10 配置信息.jpg

圖3‑10 配置信息

禁用Windows Defender的實時監控,關閉rpc服務,清理系統的垃圾文件和日誌等。

图 3 11 禁用系统自带杀毒软件.jpg

圖3‑11 禁用系統自帶殺毒軟件

從指定的URL下載文件並保存到C:\Windows\System32\drivers,創建並啟動名為aswArPots和IObitUnlockers的服務。

图 3 12 创建服务.jpg

圖3‑12 創建服務

停止並重啟MSDTC服務,將下載的適用於主機系統的x86.png或x64.png重命名為oci.dll並保存在C:\Windows\System32中,通過MSDTC服務實現DLL劫持後門。

图 3 13 DLL劫持后门.jpg

圖3‑13 DLL劫持後門

最後下載並運行多個後續組件,具體如圖所示。

图 3 14 下载后续组件.jpg

圖3‑14 下載後續組件

3.2.2 遠控模塊分析(backup.png)該腳本用於將日期時間、受害者主機名進行2次BASE編碼並回傳至攻擊者服務器,不斷地向服務器發送心跳信號,接收命令,執行這些命令,並將命令的輸出結果發送回服務器。

图 3 15 发送心跳包等至服务器.jpg

圖3‑15 發送心跳包等至服務器

3.2.3 對抗模塊分析(kill.png)該腳本實際為壓縮和BASE64編碼後的PowerShell腳本,該腳本會解密多層載荷,並在最後將一段shellcode代碼注入到powershell.exe進程中。

图 3 16 进程注入.jpg

圖3‑16 進程注入

shellcode會解密內嵌的一段PE再次實現內存加載。最終加載的PE數據為白名單驅動利用模塊,該模塊會偽裝白名單通信的驅動協議,操縱底層驅動利用系統權限刪除、終止指定的進程或文件,大部分進程為殺毒軟件、防火牆、沙箱等安全軟件的核心進程。該可執行文件旨在整理正在運行的進程列表,然後將它們與Anti-Virus和EDR進程名稱的CRC64校驗和值的混淆硬編碼列表進行比較。如果任何進程名稱與硬編碼列表中的條目直接關聯,則會將I/O控制(IOCTL)代碼發送到Avast驅動程序,從而導致進程終止。部分被列入攻擊者處理名單的進程名如下:

图 3 17 反杀毒软件驱动.jpg

圖3‑17 反殺毒軟件驅動

3.2.4 自我更新模塊分析(86/64.png)msdtc目錄下具有兩個文件:“86.png”、“64.png”。分別對應32位環境與64位環境,兩個樣本在代碼結構方面完全一致,僅在編譯時選擇的目標系統位數不同。該文件僅負責從攻擊者服務器重新下載“get.png”並執行,用於自我更新。

图 3 18 自我更新下载get.png

圖3‑18 自我更新下載get.png

3.2.5 挖礦組件下載器模塊分析(smartsscreen.exe)該文件為挖礦組件的下載模塊,由Golang語言開發,運行後會訪問攻擊者服務器下載挖礦各個組件等。

图 3 19 下载后续挖矿组件.png

圖3‑19 下載後續挖礦組件

該組件運行後會訪問攻擊者服務器下載“config.txt”、“curl.png”用於校驗挖礦組件HASH與下載挖礦組件。隨後分別訪問下載XMRig官方開源挖礦組件。其中“taskhostw.png”為挖礦程序,“config.json”為挖礦配置文件,“WinRing0x64.png”為XMRig運行所需驅動。

图 3 20 下载挖矿组件网络数据.png

圖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 删除计划任务.png

圖4‑1 刪除計劃任務

結束相應進程,smartsscreen.exe、taskhostw.exe和powershell.exe。

图 4 2 结束相应进程.png

圖4‑2 結束相應進程

刪除挖礦程序等對應目錄中的樣本。

图 4 3 删除对应目录样本.png

圖4‑3 刪除對應目錄樣本

刪除對應的驅動文件,aswArPots.sys和IObitUnlockers.sys。重啟MSDTC服務,如不是自身創建,可對應刪除該服務。

图 4 4 删除对应驱动文件.png

圖4‑4 刪除對應驅動文件

5 事件對應的ATTCK映射圖譜針對攻擊者投放挖礦木馬的完整過程,安天梳理本次攻擊事件對應的ATTCK映射圖譜如下圖所示。

图 5 1 事件对应的ATT&CK映射图谱.png

圖5‑1 事件對應的ATTCK映射圖譜

攻擊者使用的技術點如下表所示:

表5‑1 事件對應的ATTCK技術行為描述表

ATTCK階段/類別

具體行為

註釋

執行

利用命令和腳本解釋器

使用PowerShell腳本命令

持久化

執行流程劫持

利用oci.dll劫持

利用計劃任務/工作

創建計劃任務

防禦