當前位置:
首頁 > 新聞 > 微軟披露加密劫持惡意軟體Dexphot,已感染近80000台設備

微軟披露加密劫持惡意軟體Dexphot,已感染近80000台設備

2018年10月,微軟檢測到惡意挖礦軟體Dexphot的大規模分發行動。Dexphot使用了各種複雜的方法來逃避安全解決方案,包括多層混淆、加密和隨機文件名來隱藏安裝過程,利用無文件技術在內存中直接運行惡意代碼,劫持合法的系統進程來掩蓋惡意活動。Dexphot最終目的是在設備上運行加密貨幣挖掘程序,當用戶試圖刪除惡意軟體時,監控服務和預定任務會觸發二次感染。

微軟表示自2018年10月以來不斷有Windows設備受到感染,並在今年6月中旬達到峰值的8萬多台,自微軟部署提高檢測率的相關策略和攻擊阻止後,每天感染的設備數量開始逐漸下降。

複雜的攻擊鏈

Dexphot感染的早期階段涉及許多文件和步驟。在執行階段,Dexphot首先將五個關鍵文件寫入磁碟:

1、安裝程序,帶有兩個下載惡意payload的鏈接

2、MSI包文件,從安裝程序其中一處鏈接處下載

3、一個加密ZIP存檔文件

4、載入程序DLL,從加密存檔文件中提取

5、加密數據文件,包含三個額外的可執行文件,通過process hollowing載入到系統進程中

除安裝程序外,執行期間運行的其他進程是合法的系統進程,包括msiexec.exe(用於安裝MSI軟體包),unzip.exe(用於從受密碼保護的ZIP存檔中提取文件),rundll32.exe(用於載入載入程序DLL),schtasks.exe(用於計劃任務),powershell.exe(用於強制更新),使用合法系統進程讓檢測修復變得更加困難。在之後階段中,Dexphot也會以其他一些系統進程為目標來進行process hollowing,比如svchost.exe,tracert.exe和setup.exe。

多層逃避機制

Microsoft Defender ATP顯示,Dexphot安裝程序由SoftwareBundler:Win32/ICLoader及其變體植入運行,安裝程序帶有兩個下載惡意payload的鏈接,之所以這麼做是為了建立持久性的機制。

安裝程序從其中一處鏈接下載MSI程序包,啟動msiexec.exe執行靜默安裝。這是Dexphot運用 living-off-the-land(「LOLBin」,指攻擊者利用合法的二進位文件進行隱藏的惡意活動)技術的第一處實例。

Dexphot的安裝包通常都有一個混淆的批處理腳本,msiexe .exe在開始安裝過程時會優先運行此腳本,目的是檢查防病毒產品。如果發現防病毒產品正在運行,Dexphot會立即停止感染過程。

當我們剛開始研究時,此腳本僅檢查Avast和AVG的防病毒產品,後來Windows Defender Antivirus也被添加到名單中。

如果惡意進程能繼續運行,Dexphot將從MSI包解壓ZIP加密存檔文件,密碼在MSI包中。除了密碼之外,包中還有一個乾淨的unzip.exe,這樣就不必依賴於目標系統的ZIP實用程序了。為了避免詳細檢查,包中的unzip.exe文件常被命名為不同的名稱,比如z.exe或exe .exe。

ZIP歸檔文件一般包含了三個文件:載入程序DLL、加密的數據文件(通常命名為bin.dat),通常還包含一個乾淨且不相關、可能用於誤導檢測的DLL。

Dexphot通常會將解壓的文件提取到目標系統的「Favorites」文件夾中,並對根據執行時間對文件重命名,例如C:\Users\\Favorites\\Res.Center.ponse\。重命名的命令也是混淆的,如下圖所示:

Msiexec.exe接下來調用rundll32.exe,指定載入程序DLL(在本例中為urlmon.7z)來解密數據文件。解密過程涉及使用二進位中硬編碼的密鑰,進行ADD和XOR操作。

解密的數據包含三個可執行文件,與前面描述的文件不同,這些可執行文件永遠不會寫入文件系統,它們僅存在於內存中,Dexphot通過process hollowing將它們載入到其他系統進程中來運行。

通過無文件技術隱秘執行

Process hollowing是一種可以將惡意軟體隱藏在合法系統進程中的技術,它用惡意代碼來替換合法進程的內容。使用這種方法檢測隱藏的惡意代碼並非易事,因此process hollowing已成為當今惡意軟體普遍使用的技術。

此方法的另一個優點是無文件:可以運行代碼,而無需實際將其保存在文件系統上。在運行過程中,不僅很難檢測到惡意代碼,而且在進程停止後也很難找到有用的取證工具。

要啟動process hollowing,載入程序DLL以掛起狀態生成兩個合法的系統進程(例如svchost.exe或nslookup.exe),並用第一個和第二個解密的可執行文件替換掉這些進程的內容。這些可執行文件是監視服務,用於維護Dexphot的組件。之後將惡意進程將從掛起狀態中釋放並運行。

接下來,載入程序DLL以SysWoW64中的setup.exe文件為目標,將setup.exe的內容刪除,並將其替換為第三個解密的可執行文件——加密貨幣礦機。在我們的研究過程中,發現Dexphot有使用XMRig、JCE Miner等不同的礦機。

定期更新實現持久性

Dexphot有兩個監視服務,能同時檢查三個惡意進程的狀態,兩個監視服務的目的是當其中一個監視服務停止時,另一個也能發揮作用。如果有進程被終止,則監控器將立即識別情況,終止所有剩餘的惡意進程,然後重新感染設備。這種強制更新/重新感染過程由PowerShell命令啟動,如下所示:

監視組件還可以檢測新啟動的cmd.exe進程並立即將其終止。作為最終的故障保護,Dexphot使用schtasks.exe創建計劃任務,命令如下所示:

這種持久性技術很有趣,因為它採用了兩種截然不同的MITER ATT&CK技術:計劃任務和簽名二進位代理執行。

計劃任務將msiexec.exe作為代理運行惡意代碼,就像在安裝過程中使用msiexec.exe一樣。使用合法系統進程msiexec.exe可能會更難跟蹤惡意活動的來源。

此外,這些任務使Dexphot可以在每次任務運行時方便地從Web端更新payload,它們會在系統重新啟動時以及系統運行時每90或110分鐘自動更新Dexphot的所有組件。

Dexphot還會在運行時生成任務的名稱,這意味著簡單的硬編碼任務名稱阻止列表將無法有效阻止它們運行。名稱通常採用GUID格式,就在微軟發布了第一輪Dexphot威脅保護後,創作者開始轉為使用隨機字元串。

另外,對於計劃任務,創作者還使用了另一種逃避技術:某些Dexphot變體將msiexec.exe複製到任意位置,並為其指定一個隨機名稱,如%AppData%\.exe。這使得運行惡意代碼的系統進程成為移動目標。

多樣性

Dexphot在其分布的二進位文件中展示了多層多樣性。例如活動中使用的MSI包,包含的文件如下表所示,如上所述,MSI包通常包含一個乾淨的解壓版本、一個有密碼的ZIP文件和一個用於檢查防病毒產品的批處理文件。但批處理文件並不總是存在,ZIP文件名稱、載入程序 DLL的名稱,以及解壓ZIP文件的密碼也充斥著變化。

另外,每個載入程序DLL的內容因軟體包而異,ZIP文件中包含的加密數據也有所不同。每次攻擊者將文件捆綁在一起時,都會生成不同的ZIP存檔,進而生成唯一的MSI軟體包。由於這些精心設計的變化,傳統的基於文件的檢測方法對Dexphot無效。

大量主機託管payload

除了跟蹤Dexphot用於執行攻擊的文件和進程之外,我們還一直在監視用於託管惡意有效負載的域。用於託管的域名地址通常以.info或.net TLD結尾,而實際有效負載文件名則由隨機字元組成,類似於先前所看到的用於生成文件名和計劃任務的隨機性。下表列出了我們研究的一些例子。

列出的許多鏈接都被使用過很長時間了,但每個URL上託管的MSI軟體包都經常被更改或更新,域的數量也是在不斷補充更新。經過幾個月的監視,我們能夠識別大約200個唯一的Dexphot域。

結論:動態、全面的防禦措施,可以應對日益複雜的日常威脅

Dexphot不是那種能引起主流媒體關注的攻擊類型,它只是在任何特定時間都處於活動狀態的無數惡意軟體其中之一。它的目標也非常普遍——悄無聲息安裝一個竊取計算機資源並為攻擊者創造收入的加密貨幣挖礦機,但Dexphot的出現也證明了這種日常普遍的威脅正變得越來越複雜,發展速度也越來越快。

為了抵禦威脅,Microsoft Defender Advanced Threat Protection的防病毒組件中的下一代保護引擎會在攻擊鏈上的多個位置檢測並阻止惡意技術。對於Dexphot,雲中基於機器學習的檢測可以識別並阻止rundll32.exe載入的DLL,從而在早期階段停止攻擊鏈。內存掃描可檢測並終止由process hollowing隱藏的惡意代碼的載入,包括嘗試通過PowerShell命令更新惡意軟體代碼並重新感染計算機的監視進程。

行為阻止和遏制功能在克服Dexphot的無文件技術,逃避檢測和持久性機制(包括定期和啟動時嘗試通過計劃任務更新惡意軟體)方面特別有效。如前所述,考慮到攻擊鏈和Dexphot持久性方法的複雜性,我們發布了一種補救解決方案,該解決方案可通過消除工件來防止再次感染。

行為阻止和功能遏制在擊敗Dexphot的無文件技術、檢測規避和持久性機制方面尤其有效,包括通過計劃的任務定期和引導時嘗試更新惡意軟體。如前所述,考慮到攻擊鏈和Dexphot的持久性方法的複雜性,我們發布了一個修復解決方案,通過刪除某些不見來防止二次感染。

IoC

安裝程序(SHA-256):

MSI文件 (SHA-256):

22beffb61cbdc2e0c3eefaf068b498b63a193b239500dab25d03790c467379e3

65eac7f9b67ff69cefed288f563b4d77917c94c410c6c6c4e4390db66305ca2a

載入程序DLLs (SHA-256):

537d7fe3b426827e40bbdd1d127ddb59effe1e9b3c160804df8922f92e0b366e

504cc403e0b83233f8d20c0c86b0611facc040b868964b4afbda3214a2c8e1c5

aa5c56fe01af091f07c56ac7cbd240948ea6482b6146e0d3848d450977dff152

註:本文翻譯自:https://www.microsoft.com/security/blog/2019/11/26/insights-from-one-year-of-tracking-a-polymorphic-threat/

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


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

你對工業物聯網了解多少?
Apache Solr RCE 0 day漏洞