PlugX变体已经悄悄更改源代码且正式更名为THOR
在2021年3月監測Microsoft Exchange Server攻擊時,Unit 42研究人員就發現了一個PlugX變體,該變體是作為漏洞利用后遠程訪問工具 (RAT) 傳送到其中一臺受感染服務器的。 Unit 42 觀察到該變體的獨特之處在于它包含對其核心源代碼進行了更改:將 “PLUG”替換為“THOR”。最早發現的 THOR 樣本是 2019 年 8 月,它是已知最早的更名代碼后的樣本。在此變體中觀察到了新功能,包括增強的有效載荷傳送機制和濫用受信任的二進制文件。
PlugX 于 2008 年首次被發現,經過追蹤分析,更多的樣本以及相關的 PlugX 命令和控制 (C2) 基礎設施被研究人員發現。
Palo Alto Networks 的 AutoFocus 用戶可以分別使用 PlugX 和 PKPLUG 標簽跟蹤 PlugX 和 PKPLUG 活動,他們可以在 Unit 42 ATOM 查看器中查看所觀察到的技術及其相關行動過程的完整可視化。
傳播過程
2021 年 3 月 19 日,Unit 42觀察到攻擊者通過一系列零日漏洞(CVE-2021-26855 和 CVE-2021-27065)(稱為 ProxyLogon)利用源自 IP 101.36.120[.]227 的 Exchange 服務器。成功利用后,一個 webshell 被上傳到一個可公開訪問的 web 目錄,允許以最高權限級別執行代碼。
攻擊者隨后使用了一種稱為“Living off the Land”(LotL) 的技術,該技術使用受信任的二進制文件來繞過防病毒檢測。在這種情況下,Microsoft Windows 二進制文件 bitsadmin.exe 用于從攻擊者控制的 GitHub 目標下載名為 Aro.dat(SHA256:59BA902871E98934C054649CA582E2A01707998ACC78B2570FEF43DBD10F7B6F)的無害文件。
Bitsadmin 命令樣本
Aro.Dat
Aro.dat 的前一千字節表明該文件可能已加密或可能已被壓縮,事實證明,這些數據只不過是隨機填充數據,很可能作為文件標頭添加,以逃避殺毒軟件簽名阻止檢測。填充數據的末尾以null結尾,它為實際數據入口點提供了一個標識符。緊隨 NULL 字節 (0x00) 的是一組用于解壓縮文件的 x86 匯編指令。在此樣本中,x86 程序集從文件偏移量 0x4EC 開始,操作碼為 0x77,這會轉換為JA的程序集助記符(如果上面是unsigned則跳轉)。
Aro.dat 文件標頭如下所示,以 NULL 字節結尾。為簡潔起見,數據被截斷,因為直到NULL之前的字節都是無意義的。紅色表示NULL字節,綠色是代碼執行開始的地方。
Aro.dat 文件標頭
Aro.dat 旨在保持惡意程序不會被檢測到,并且在沒有特定加載程序的幫助下無法運行。與之前的 PlugX 變體一樣,代碼執行是通過一種稱為 DLL 側加載的技術實現的。靜態分析表明,一旦加載到內存中,Aro.dat 就會開始自行解壓縮并啟動與 C2 服務器的通信。
Aro.dat 實際上是一個加密和壓縮的 PlugX 載荷,Aro.dat 中的解密例程與舊的 PlugX 變體非常相似,因為它涉及多個解密密鑰和位移位操作。解密后,它會通過 Windows API RtlDecompressBuffer 解壓縮到 Windows 模塊 (DLL) 中。壓縮算法是 LZ 壓縮 (COMPRESSION_FORMAT_LZNT1)。
PlugX 解密例程的比較
上圖突出顯示的條目是 Aro.dat 和舊版 2012 PlugX 樣本(SHA256:A68CA9D35D26505A83C92202B0220F7BB8F615BC1E8D4E2266AADDB0DFE7BD15)使用的靜態解密密鑰。通過使用不同的靜態密鑰和不同的加減法使用,每個 PlugX 構建的解密例程略有不同。
解密、解壓的 Aro.dat 是一個 x86 Windows DLL 或 PE 文件。
Aro.Dat:代碼執行
Aro.dat 文件包含以下字符串名稱:aross.dll、aro.exe 和aro.dat。這三個文件的關聯提供了對如何實現代碼執行的深入了解。 VirusTotal 有以下文件:
Aro.exe (SHA256: 18A98C2D905A1DA1D9D855E86866921E543F4BF8621FAEA05EB14D8E5B23B60C)
Aross.dll (SHA256:
9FFFB3894B008D5A54343CCF8395A47ACFE953394FFFE2C58550E444FF20EC47)
開源研究表明 ,Aro.exe 是“ARO 2012 高級修復和優化工具”的一部分。它是一個免費提供的工具,聲稱可以修復 Windows 注冊表錯誤。它經過數字簽名,與 PlugX 加載程序有已知關聯,并動態加載 Aross.dll。 Aross.dll 是攻擊者使用的 DLL 文件,負責加載加密的有效載荷文件 Aro.dat。有了這些信息,我們可以推斷這兩個文件是必要的,負責加載加密的 THOR 載荷 Aro.dat。
Aro.dat 的 DLL 側加載
Aro.Dat:RunTime操作
一旦被解密的有效載荷在內存中運行,它就會表現出與以前的 PlugX 植入變體相同的行為。它首先解密嵌入的 PlugX 硬編碼配置設置。解密算法和 XOR 密鑰在多個 PlugX 植入程序中相當一致。代碼行為與 Insikt Group 報告的 RedDelta PlugX 的行為非常相似。與所有其他已知 PlugX 惡意軟件家族相比,此樣本的一個顯著差異是在 PlugX 插件初始化期間執行的魔術值檢查。從歷史上看,該數字一直是 0x504C5547,它對應于 ASCII 編碼中的 PLUG 值。在此樣本中,魔術值為 0x54484F52,對應于 ASCII 編碼中的 THOR 值。
DLL PlugX 魔術值比較
樣本中的硬編碼 PlugX 配置設置解碼為以下值:
解密的硬編碼配置設置
如上圖所示,這個特定的 PlugX 植入程序配置如下:
rainydaysweb[.]com 的四個 C2 域;
與端口80、443、53 和 8000通信,數據通過 TCP 和 UDP 協議傳輸。輸出傳輸到調試(outputdebugstringW)的數據到調試程序(如果附加)。
調試輸出
使用 HTTP 協議,與 C2 的初始握手不是 HTTP,它由長度可變的隨機字節組成。植入程序需要返回 16 字節的數據,并且根據返回值(命令),將啟動 HTTP 通信。 PlugX SxWorkProc 線程負責處理 HTTP 通信,其中一個HTTP 標頭的示例如下所示:
HTTP POST 樣本
上圖的揭示如下所示:
POST 數據由隨機字節組成;
User-agent 是一個硬編碼值:Mozilla/4.0(compatible;MSIE 9.0;Windows NT 10.0;.NET4.0C;.NET4.0E;Tablet PC 2.0);
utmcn、utmcs、utmsr 和 utmsc 是硬編碼的用戶代理值;
61456 是已知的 PlugX 常數值;
HTTP 標頭類似于 Recorded Future page 11 中的 RedDelta PlugX 變體;
使用名稱和描述創建 Windows 系統服務:HP Digital Image;
作為 HP Digital Image 運行的 PlugX 樣本
可能的1234攻擊 ID ;
當運行時,系統事件,如進程創建,日期和時間和用戶名被記錄到一個名為NTUSER.DAT的隱藏文件中,位于C: ProgramData MSDN 6.0目錄,此文件使用0x4F6F的雙字節密鑰進行加密。
PlugX 還有另外兩個可識別的屬性:
PlugX Windows 類名
內存模塊工件
此樣本具有以下 PlugX 插件,它們具有單獨的硬編碼日期戳,如下表所示。在過去,關于這些PlugX有很多說法。總之,它們為攻擊者提供了各種監控、更新受感染的系統并與之交互,以實現他們的目標。
PlugX 插件
此樣本似乎還包含一個鍵或硬編碼日期 20180209,它在結構中使用并在調用函數對象時傳播。
與PKPLUG的關系
像Aro.dat這樣的PlugX模塊,包含了硬編碼的配置信息,允許多個C2地址。這為后門程序提供了備用選項,以防某些遠程服務在泄露時不可用。在這個特殊的PlugX植入物(SHA256: 59BA902871E98934C054649CA582E2A01707998ACC78B2570FEF43DBD10F7B6F)中,如上圖所示,所有四個C2配置選項都引用了域名rainydaysweb[.]com。
下圖突出顯示了最近發現的帶有THOR魔法字節(基礎設施)的PlugX樣本和與已知PKPLUG活動相關的其他對象之間的重疊,它們分別用橙色矩形和紅色矩形表示。
如前所述,Aro.dat (SHA256: 59BA902871E98934C054649CA582E2A01707998ACC78B2570FEF43DBD10F7B6F)使用bitsadmin從actor控制的GitHub存儲庫下載到目標Microsoft Exchange Server。因此,負責加載和解密模塊的特定組件是未知的。它與rainydaysweb[.]com的連接顯示在下圖中的藍色橢圓形中。
Maltego 圖表突出顯示了 THOR 與現有 PKPLUG 基礎設施的重疊部分
研究人員發現了一些相關基礎設施和常見惡意行為的重疊,具體描述如下圖所示。
PlugX樣本(SHA256: 93D33626886E97ABF4087F5445B2A02738EA21D8624B3F015625CD646E9D986E)[1],首次出現于2021年3月19日,使用傳統的PLUG(而不是THOR)標識符并與相同的C2rainydaysweb[.]com通信。此樣本也與其他PlugX一樣有一些共同的行為特征,即特定于創建密鑰HKLM\Software\CLASSES\ms-pu\PROXY的注冊表活動。其中一些樣本使用了過去鏈接到PKPLUG活動的C2基礎架構,如2020年底使用C2 manager2013[.]com的PlugX樣本(SHA256: A15FED60E69EC07BFD01A23BEEC2C8E9B14AD457EA052BA29BD7A7B806AB63B4)。
使用公共注冊表項的集合中的其他示例,通過使用共享基礎設施,揭示了包含與第三級域upload.ukbbcnews[.]com相關的C2通信信息的更多樣本。該域名不是也從來都不是合法的BBC域名,并被注冊為這樣的受害者。該域名解析為IPv4地址45.248.87[.]217 為PlugX樣本(SHA256: 690C488A9902978F2EF05AA23D21F4FA30A52DD9D11191F9B49667CD08618D87)[5]提供C2通道,其THOR模塊mpsvc.ui (SHA256: 64E2FE0E9D52812D2DA956B1D92B51E7C215E579241649316CF996F9721E466E)從2020年8月初就開始運行了。
早在 2019 年 5 月至 2021 年 3 月,其他“ukbbcnews”三級域(即 bbc.、news. 和 www.)就存在并解析為相同的 45.248.87[.]217 IPv4 地址。在2018年、2019年和2020年似乎一直被用作各種PlugX樣本的C2通道。2018年6月起的PlugX樣本(SHA256: 3CDD33DEA12F21A4F222EB060E1E8CA8A20D5F6CA0FD849715F125B973F3A257)[6]共享行為性狀,即設置注冊表鍵值HKLM\SOFTWARE\Classes\KET.FAST\CLSID[7] 到-1。
在 Unit 42已知的三個更改注冊表項值的PlugX樣本中,有一個樣本(SHA256: A9511CDAA96ED59DE73A7A7C7DC375DE204BEE7A9511C5EE71BF013010324A91)[8]在相同的時間段(2018年6月)使用域tibetsl[.]com和許多第三級域名,用于C2通信。第三個PlugX樣本(SHA256: 80DEED939A520696968335D1BB2A9FCCE7053C0156F679BA261824D0A2D44967)[9],在設置中也使用了THOR標識符。從2019年11月起,該樣本及其配置模塊arosx .dat (SHA256: C5DCD3073904FAD5D9A8FE1026141A832E05C9CA03A88FEE96587921F42773D4)使用108.61.182[.]34用于C2通信,同樣的域名也被用于C2通信。
另一個使用THOR標識符的配置模塊acrobat.chm (SHA256: B5C0DB62184325FFBE2B8EF7E6F13F5D5926DEAC331EF6D542C5FA50144E0280)被PlugX樣本Acrobat.dll (SHA256: 3C5E2A4AFE58634F45C48F4E800DC56BAE3907DDE308FF97740E9CD5684D1C53) 加載,該樣本于2020年10月底首次出現。配置中的C2通道是tools.scbbgroup[.]com,在當時被解析為167.88.180[.]131,自 2021 年 2 月初以來,它繼續被解析為ASN 6134和134835下的 103.85.24[.]158。。
樣本包括 www.ixiaoyver[.]com 和 www.systeminfor[.]com,它們分別于 2020 年 4 月和 5 月被解析為 103.85.24[.]190,它們充當多個 PlugX 樣本的 C2 通道(使用 PLUG 標識符)。
在 www.systeminfor[.]com 解析為 103.85.24[.]190 的短暫兩天后,該解析曾短暫地被更改為 167.88.180[.]32 (ASN 6134) ,其他pkplug相關域在2020年期間解決。其中一個域名是www.cabsecnow[.]com,這是用作另一個PlugX C2通信樣本(SHA256: A9CBCE007A7467BA1394EED32B9C1774AD09A9A9FB74EB2CCC584749273FAC01)和配置模塊Smadav.dat (SHA256: E2D21B5E34189FA1ACA39A13A405C792B19B6EDF020907FB9840AF1AAFBAA2F4) 在 2020 年 8 月使用 THOR 魔術字節。
最后PlugX樣本使用THOR標識符SmadHook32.dll (SHA256: 125 fdf108dc1ad6f572cbdde74b0c7fa938a9adce0cc80cb5ce00f1c030b0c93)及其配置模塊Smadav.dat (SHA256: CC1AFB373F8286C08869CD786FEE75B8002DF595586E00255F52892016FD7A4F)是最近THOR樣本。首次出現于 2021 年 3 月,該樣本的 C2 引用了 news.cqpeizi[.]com,自 2019 年底以來,該網站解析為環回地址 127.0.0[.]1。
了解了加密載荷文件的構建方式后,Unit 42 研究人員根據 x86 匯編指令創建了一個簽名。這些指令用于解壓有效載荷。
追蹤分析中,研究人員發現了其他 PlugX 加密的有效載荷,它們具有不同的編碼方案和文件標頭。這些樣本使用解密密鑰進行 XOR 編碼,解密密鑰由從文件偏移量零開始的字節組成,直到 NULL 字節。通常,密鑰的長度為 10 個字節。解密后,樣本是 PE 文件 (DLL) 的樣本。
目前,研究人員已經確定了另外兩個具有不同編碼方案的 PlugX 加密載荷文件。這些文件被手動解密并確認為 PlugX 變體。
Unit 42 PlugX 有效載荷解密程序
Unit 42 創建了一個 Python 腳本,該腳本可以在沒有關聯的 PlugX 加載程序的情況下解密和解壓加密的 PlugX 載荷。它嘗試檢測 PlugX 加密樣本的類型,然后輸出以下內容:
解密和解壓的 PlugX 模塊 (DLL),由于內存模塊中不存在 MZ 標頭,因此將 MZ 標頭添加到文件中,它僅適用于具有隨機字節標頭的加密載荷(THOR 載荷);
硬編碼的 PlugX 配置文件(C2 信息)(如果支持);
使用中的工具樣本的視頻請點此。解密程序工具托管在 Unit 42 的公共工具 GitHub 存儲庫中。
總結
PlugX 惡意軟件家族雖然已經出現13年了, 但仍然是一個威脅。經過對源代碼組件的更改,開發人員將其簽名魔術值從“PLUG”更改為“THOR”。在此變體中觀察到了新功能,包括增強的有效載荷傳播機制和濫用受信任的二進制文件。借助 THOR 標識符簽名,Unit 42 將繼續搜索可能與此新 PlugX 變體相關聯的其他樣本和變體。
有需要相關的資料可以關注私信我哦!!!
總結
以上是生活随笔為你收集整理的PlugX变体已经悄悄更改源代码且正式更名为THOR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【安全漏洞】Rocket.Chat 远程
- 下一篇: Golang 的字符编码与 regexp