Earth Preta組織從3月開始就在全球肆虐,其開發的惡意軟件家族包括TONEINS、TONESHELL和PUBLOAD。 Earth Preta又名Mustang Panda或Bronze President。該組織的攻擊對象包括但不限於緬甸、澳大利亞、菲律賓、日本等國家。
趨勢科技的研究人員最近發現Earth Preta濫用虛假谷歌賬戶,通過魚叉式網絡釣魚電子郵件傳播惡意軟件,這些電子郵件最初存儲在一個存檔文件(如rar/zip/jar)中,並通過Google Drive鏈接傳播。然後誘騙用戶下載並觸發惡意軟件執行TONEINS、TONESHELL和PUBLOAD。 PUBLOAD之前已被報導,我們會在本文將其與TONEINS和TONESHELL聯繫起來,後者是該組織在其活動中新使用的惡意軟件家族。
此外,攻擊者利用不同的技術來逃避檢測和分析,如代碼混淆和自定義異常處理程序。我們還發現,魚叉式網絡釣魚郵件的發件人和Google Drive鏈接的所有者是相同的。根據用於誘騙受害者的樣本文件,我們還認為,攻擊者能夠對目標組織進行研究,並可能事先對其進行破壞,從而使其變得熟悉,這在之前被洩露的賬戶名稱的縮寫中有所顯示。
在這篇文章中,我們討論了Earth Preta的活動及其策略、技術和程序(TTP),包括新的安裝程序和後門。
受害目標分析根據我們對這一威脅的監測,誘餌文件是用緬甸文寫成的,內容是“僅限內部”。文件中的大多數主題都是國家間有爭議的問題,包含“機密”或“機密”等詞 ,這可能表明,攻擊者將緬甸政府作為他們的第一個立足點。這也可能意味著,攻擊者在攻擊之前就已經對特定的政治對象進行了破壞,Talos研究人員此前也注意到了這一點。
攻擊者利用竊取的文件作為誘餌,誘騙與緬甸政府機構有合作關係的目標組織下載並執行惡意文件。受害者涵蓋了世界範圍內廣泛的組織和垂直領域,其中亞太地區的受害者集中度更高。除了在緬甸開展合作的政府辦事處外,隨後的受害者還包括教育和研究行業等。除了以涉及特定組織的正在進行的國際事件為誘餌之外,攻擊者還用與色情材料有關的標題引誘個人用戶下載。
Earth Preta的目標行業分佈
攻擊進程Earth Preta使用魚叉式網絡釣魚郵件作為攻擊的第一步。如前所述,一些郵件的主題和內容討論地緣政治話題,而其他郵件可能包含聳人聽聞的主題。我們觀察到,我們分析的所有電子郵件中都嵌入了Google Drive鏈接,這表明用戶可能會被誘騙下載惡意文件。文件類型包括壓縮文件,例如.rar、zip和.jar。訪問鏈接後,我們了解到文件包含惡意軟件TONEINS、TONESHELL和PUBLOAD。
有關會議記錄的電子郵件文檔,可能是從先前的攻擊中竊取的
魚叉式網絡釣魚電子郵件通過分析電子郵件的內容,發現Google Drive鏈接被用來誘騙受害者。電子郵件的主題可能為空,或者可能與惡意文件同名。攻擊者沒有將受害者的地址添加到電子郵件的“收件人”標題中,而是使用了假電子郵件。同時,真實受害者的地址被寫在“CC”標題中,可能會逃避安全分析,延緩調查。使用開源情報(OSINT)工具GHunt來探測“收件人”部分中的那些Gmail地址,我們發現了這些虛假賬戶,其中幾乎沒有信息。
此外,我們觀察到一些發件人可能是來自特定組織的電子郵件帳戶。受害者可能會相信這些郵件是由可信的合作夥伴發送的,這增加了收件人選擇惡意鏈接的機會。
虛假文件我們還發現了一些與緬甸政府對象相關或與之合作的組織有關的虛假文件。其中包含了緬甸和中國大使館之間的粗略會面時間表。另一份文件與日本科學促進協會(JSPS)有關,該協會為研究人員提供在日本進行研究交流的機會。值得注意的是,壓縮文件附件中主要是圖片。用於下一層側加載的惡意DLL和可執行文件也包含在其中。
有關政府會議(左)及海外研究交流(右)的虛假文件樣本
此外,還有其他內容主題多樣的誘餌文件,包括地區事務和色情內容。但是,當受害者打開這個文件夾中的假文檔文件時,沒有相應的內容出現。
其他攻擊途徑我們觀察到至少三種類型的攻擊途徑,包括通過Google Drive鏈接、Dropbox鏈接或其他託管文件的IP地址分佈在世界各地的30多個誘餌文件。在我們收集的大多數樣本中,都有合法的可執行文件,以及側加載的DLL。誘餌文件的名稱在每個案例中都有所不同。在接下來的部分中,我們將以其中一些為例,介紹每一個的TTP。
DLL側加載在該示例中,有三個文件:“~”, Increasingly confident US is baiting China.exe和libcef.dll。值得注意的是,誘餌文件和可執行文件的名稱可能不同,詳細信息將在下一節中介紹。
誘餌文件
PUBLOAD文件中的誘餌文件
可以看出“~”文件是一個誘餌文件。 Increasingly confident US is baiting China.exe是一個合法的可執行文件(最初名為adobe_licensing_wf_helper.exe,即adobe licensing wf helper)。這個可執行文件將側載惡意的libeff .dll並觸發導出函數cef_api_hash。
首次執行時,可執行文件嘗試通過複製.exe文件和移動libcef.dll(趨勢科技將其命名為Trojan.W32.PUBLOAD)。
惡意活動
快捷鏈接惡意文件包含三個文件:New Word Document.lnk、putty.exe和CefBrowser.dll。特別是,DLL和可執行文件被放置在名為“_”的多層文件夾中。
攻擊者利用.lnk文件通過使用WinRAR解壓縮文件來安裝惡意文件。完整的命令行如下所示。
Pputty.exe偽裝成一個正常的可執行文件,其原始文件名為AppXUpdate.exe。當它被執行時,它會加載CefBrowser.dll,並在它的導出函數CCefInterface:SubProcessMain中執行主例程。它還濫用schtask來實現持久性。
惡意軟件在這次活動中,研究人員識別出使用了以下惡意軟件,即PUBLOAD、TONEINS和TONESHELL。
Trojan.Win32.PUBLOADPUBLOAD是一個可以從其指揮控制(CC)服務器下載下一級有效負載的stager。該惡意軟件於2022年5月由Cisco Talos首次披露。
一旦.dll被執行,它首先通過調用OpenEventA來檢查相同的進程是否已經在運行。根據Barberousse發布的推文,一些值得注意的事件名稱被識別為Twitter上其他網絡安全研究人員的用戶名,如“moto_sato”、“xaacrazyman_armyCIAx”和“JohnHammondTeam”。值得注意的是,這些研究人員與PUBLOAD沒有任何關係,只是被二進製文件中的攻擊者有意提及。
PUBLOAD中特殊事件名稱的示例
持久性分析PUBLOAD在
1. 添加註冊表運行項
2. 創建計劃任務
反分析技術:帶有回調的APIPUBLOAD惡意軟件在內存中的AES算法中解密shellcode。 shellcode是通過創建線程或使用不同的API調用的。 API可以接受回調函數的參數,作為觸發shellcode的替代方法。我們觀察到一些利用API的情況,包括GrayStringW、EnumDateFormatsA和LineDDA,可以將其視為繞過反病毒監視和檢測的技術。
PUBLOAD中的shellcode回調示例
接受回調函數的API
CC協議解密的PUBLOAD shell代碼收集計算機名和用戶名作為第一個信標的有效負載。有效負載將使用預定義的RC4 (Rivest Cipher 4)密鑰進行加密。在撰寫本文時,到目前為止我們看到的所有階段都共享相同的密鑰。
加密後,stager使用特定的字節序列作為其數據包的標頭。它在加密數據之前加上神奇的字節“17 03 03”和有效負載大小。
PUBLOAD惡意軟件中使用的RC4密鑰(頂部)和數據包主體(底部)
PUBLOAD中的請求數據包格式
stager還檢查響應包是否具有相同的魔術標頭“17 03 03”。在內存中下載的有效負載將被視為一段shellcode,並將直接執行。
值得注意的調試字符串在2022年初,我們發現了一些嵌入調試字符串的PUBLOAD示例。它們被用來分散分析人員對主要感染程序的注意力。
PUBLOAD中分散注意力的調試字符串
Trojan.Win32.TONEINSTrojan.Win32.TONEINS是TONESHELL後門的安裝程序。安裝程序將TONESHELL惡意軟件放入%PUBLIC%文件夾,並為其建立持久性。 TONEINS惡意軟件通常出現在誘餌文件中,在大多數情況下,TONEINS DLL的名稱是libcef.DLL。惡意例程通過調用其導出函數cef_api_hash來觸發。
TONEINS惡意軟件被混淆,可能會減慢惡意軟件分析的速度。它的控制流中包含大量垃圾代碼,並且有大量無用的XOR指令,似乎暗示這些指令用於解碼字符串。經過檢查,我們發現這些混淆的代碼是從開源存儲庫中重用的。
TONEINS中的代碼混淆
安裝程序通過使用以下schtasks命令建立TONESHELL後門的持久性:
被釋放的TONESHELL惡意軟件的文件名大小寫不同,計劃任務的名稱也不同。建立持久性後,TONESHELL將合法的可執行文件和惡意的DLL複製到%PUBLIC%文件夾,其中兩個文件的名稱在誘餌存檔中都以“~”開頭。在本示例中,~$220220817.docx是用於DLL側加載的合法可執行文件,而~$20220617(1).docx是要安裝的TONESHELL後門DLL。
帶有虛假文件擴展名的文件
Backdoor.Win32.TONESHELLTONESHELL惡意軟件是本次活動中使用的主要後門。它是一個shellcode加載器,在內存中使用一個32字節的密鑰加載和解碼後門shellcode。在早期版本的TONESHELL中,它具有來自TONEINS惡意軟件的功能,包括建立持久性和安裝後門。然而,最新版本的TONESHELL是一個獨立的後門,沒有任何安裝程序功能(例如文件~$Talkpoints.docx)。它也以類似於TONEINS惡意軟件的方式被混淆,表明攻擊者繼續更新武器庫以繞過檢測。
反分析:進程名稱檢查為了確保TONESHELL被正確安裝,Backdoor.Win32.TONESHELL首先檢查進程路徑是否與預期路徑匹配。如果是,則自定義異常處理程序可能會觸發惡意代碼。
TONESHELL中的進程名稱檢查
反分析:c++中的自定義異常處理程序有趣的是,攻擊者使用自定義異常處理程序的實現隱藏了實際的代碼流。將根據進程名稱檢查的結果調用不同的異常處理程序,通過調用_CxxThrowException觸發異常來繼續惡意例程。調用後,C++運行時將從ThrowInfo結構一直到_msRttiDscr結構中的CatchProc成員找到相應的異常處理程序,其中包含真正的惡意代碼。在此示例中,異常處理程序位於偏移量0x10005300處。這種技術不僅隱藏了執行流,而且還停止了分析師調試器的執行。
C++中異常處理的數據工作流;黃色圓圈中的CatchProc成員是要調用的惡意異常處理程序
異常處理程序中的主要惡意例程
反分析:ForegroundWindow檢查查看最近的TONESHELL示例,我們注意到與早期版本相比,添加了新的反沙盒技術。較新的版本調用GetForegroundWindow API兩次並檢查是否有任何窗口切換。如果環境是沙盒,兩個調用將獲得相同的窗口句柄,因為大多數沙盒中不涉及人工交互,導致前台窗口不更改。此外,作為一種反沙盒和延遲執行技術,惡意例程只有在前台窗口已經切換了第五次時才會被觸發。
更新的TONESHELL示例中的GetForegroundWindow檢查
第五個窗口開關觸發的惡意例程
Shellcode解碼觸發惡意異常處理程序後,它開始解碼下一階段的TONESHELLshellcode。要解碼shellcode,它首先在與0x7D的XOR運算中解碼一個32字節的密鑰,然後該密鑰將用於解碼shellcode主體。
解碼前(中間)和解碼後(底部)32字節密鑰(頂部)和TONESHELLshellcode的示例
不斷改進的變體我們發現了TONESHELLshellcode的幾種變體:
TONESHELL變體之間的差異
變體ATONESHELL在設計上支持多達10個CC服務器,但在我們F發現的所有示例中,只使用了一個CC服務器。在連接到CC服務器之前,它使用受害者的捲序列號和計算機名生成一個受害者ID(變量unique_id),或者使用一個隨機生成的GUID。
查找TONESHELL中支持的10個CC服務器
在TONESHELL變體A中用於生成受害者ID的算法
在第一個信標中,它從受害者的設備收集以下數據並將其發送到CC服務器:
當前進程ID;
卷序列號;
使用者名稱;
計算機名稱;
產品名稱;
操作系統位;
進程列表;
TONESHELL通過原始TCP進行通信,請求標頭和響應標頭以特定
Recommended Comments