PlugX變體已經悄悄更改源代碼且正式更名為THOR

語言: CN / TW / HK

在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 還有另外兩個可識別的屬性:

1. 隱藏的Windows 類名Static,如圖10 所示,該窗口用於進程內部通信。

 

PlugX Windows 類名

2. RWX 內存模塊的 MZ 和 PE 標頭被刪除並替換為 ASCII ROHT( THOR向後),如下圖所示。

 

內存模塊工件

此樣本具有以下 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 變體相關聯的其他樣本和變體。

 

有需要相關的資料可以關注私信我哦!!!