受影響平臺:Windows

受影響方:任何組織

影響:控制受害者的設備,收集敏感信息

嚴重性級別:緊急

FortiGuard實驗室最近檢測到一種用Rust編寫的新注入器,它可以注入shellcode并將XWorm引入受害者的環境。雖然Rust在惡意軟件開發中相對不常見,但自2019年以來,已經有幾個活動采用了這種語言,包括Buer loader、Hive和RansomExx。FortiGuard實驗室的分析還顯示,2023年5月期間注入器活動顯著增加,其中shellcode可以使用Base64編碼,并可以從AES、RC4或LZMA等加密算法中進行選擇,以逃避防病毒檢測。

通過檢查編碼算法和API名稱,研究人員在攻擊者工具“Freeze.rs”中確定了這種新型注射器的來源,該工具旨在創建能夠繞過EDR安全控制的有效負載。此外,在分析過程中,研究人員發現SYK Crypter通常用于通過社區聊天Discord傳播惡意軟件家族的工具,該工具涉及加載Remcos,這是一種復雜的遠程訪問木馬(RAT),可用于控制和監控運行Windows的設備。SYK Crypter出現于2022年,已被各種惡意軟件家族使用,包括AsyncRAT、jnrat、QuasarRAT、WarzoneRAT和NanoCore RAT。

FortiGuard實驗室在7月13日觀察到網絡釣魚電子郵件活動,該活動使用惡意PDF文件啟動了攻擊鏈。此文件重定向到HTML文件,并利用“search-ms”協議訪問遠程服務器上的LNK文件。點擊LNK文件后,PowerShell腳本執行Freeze.rs和SYK Crypter準備進一步進攻。最后,加載XWorm和Remcos,并與C2服務器建立通信。

在本文中,我們將深入研究用于傳播Rust-lang注入器SYK Crypter的初始攻擊方法,并進一步探討攻擊的后續階段。

初始訪問

如下圖所示,釣魚電子郵件偽裝成發送給多家公司的緊急訂單補充請求,以欺騙收件人。它還在PDF文件中使用模糊圖像來引誘受害者點擊隱藏的按鈕。所附的PDF文件如下圖所示。

網絡釣魚郵件

PDF文件

惡意URL隱藏在流對象(/ObjStm)中,使其難以被檢測到。然而,通過pdf解析器提取URL顯示它位于流對象1中的對象14中,如下圖所示。

流對象中的URL

點擊該文件后,受害者連接到URL https://www[.]cttuae[.]com/ems/page[.]html,這是一個偽裝成提供旅游服務的網站。攻擊者在7月12日上傳了一個惡意HTML文件到“ems”路徑,源代碼如下圖所示。

HTML頁面“page. HTML”

攻擊者不是直接下載惡意軟件,而是采用更復雜的方法,利用“search-ms”協議觸發搜索結果。具體來說,他們在由DriveHQ提供的遠程云存儲服務器上搜索“ORDER_SPEC0723”。值得注意的是,文件“ORDER_PSEC0723”偽裝成PDF文件圖標,但仔細檢查后發現,它是在同一文件夾中執行PowerShell腳本的LNK文件,如下圖所示。這種策略允許攻擊者謹慎地啟動他們的惡意活動。

搜索結果和LNK文件“ORDER_PSEC01723”

然后執行PowerShell腳本“pf.ps1”,首先使用“regsvr32”啟動用Rust編寫的注入器“doc.dll”。它打開誘餌PDF文件“T.PDF”并執行“AA.exe”。最后,使用“Stop-Process”關閉所有文件資源管理器窗口。下圖中的PDF文件“T.PDF”看起來很干凈,包含清晰的文本,旨在分散受害者對其他惡意行為的注意力。以下部分將詳細介紹“doc.dll”和“AA.exe”。

PowerShell腳本“pf.ps1”

誘餌文件“T.pdf”

Rust注入器:doc.dll

下圖顯示了基于字符串部分分析,注入器是用Rust編程語言編寫的。

字符串部分

注入過程首先使用CreateProcessA創建一個“notepad.exe”進程。shellcode隨后通過Base64解碼和LZMA解壓縮獲得。然后,注入器直接使用NTAPI庫的函數注入shellcode。以上便是“Freeze.rs”的整個攻擊過程。該網站于今年5月發布,顯示出人們非常喜歡這一新工具,源代碼和注入器的匯編代碼如下圖所示。

Shellcode注入

在過去的一個月里,研究人員編譯了一系列不同的Rust注入器,包括帶有lzma壓縮的shellcode的DLL文件,帶有rc4加密的shellcode的DLL文件,以及包含rc4加密的shellcode的EXE文件。這些注入器中的shellcode數據都使用Base64編碼,有趣的是,文件類型和加密算法似乎是程序中可選擇的選項。這個觀察結果與“Freeze.rs”存儲庫中的選項一致,這表明它們之間存在某種關系。選擇加密方法和文件類型的靈活性增加了這些注入器的復雜性,進一步復雜化了安全研究人員的檢測和分析。

“Freeze.rs”選項

當使用RC4算法變體時,密鑰被擴展到256字節,并用于偽隨機生成算法(PRGA)。該注入器變體的相應源代碼和組件如下圖所示。經過比較,很明顯,此攻擊者使用“Freeze.rs”繞過EDR并利用掛起的進程。解密后的shellcode可以在地址0x650000找到,如下圖所示。

RC4解密

解密后的shellcode

解密的shellcode應用AMSI繞過和WDLP繞過技術,隨后執行.NET有效負載。一旦執行,.NET程序集就可以從內存地址0x1AAB6E70轉儲,如下圖所示,從而可以作為獨立的.NET可執行文件進行分析。

解密的.Net有效負載

在此過程中發現的.NET有效負載被稱為XWorm,根據分析,這是一種在地下論壇交易的RAT工具。XWorm配備了典型的RAT功能,包括收集設備信息、捕捉屏幕截圖、記錄擊鍵以及建立對受攻擊設備的控制。在該示例中,XWorm有效負載版本是v3.1,C2服務器信息仍然隱藏在“pastebin.com”網站上,如下圖所示。

XWorm V3.1和pastebin.com上的C2服務器IP地址

MSIL下載程序:AA.exe

執行文件“AA.exe”作為MSIL下載程序運行,并嵌入了兩個鏈接:

“95[.]214[.]27[.]17/storage/NAR”和“plunder[.]ddnsguru[.]com/storage/NAR”。

MSIL下載程序的鏈接

下載完成后,“AA.exe”使用文件名“760”作為解碼密鑰,并對下載數據中的每個字節執行減法運算。解碼的數據是一個名為“SYKSBIKO”的資源的SYK Crypter,其中包含加密的有效負載。DLL文件進行檢查以確保環境未處于調試模式,然后通過使用密鑰“gOhgyzyDebuggerDisplayAttributei”的RC4解密來繼續處理資源數據。它調用一個小的.NET代碼“Zlas1”以進行進一步的壓縮。

調用.Net代碼進行解壓縮

為了逃避檢測,SYK Crypter對其執行流中使用的字符串進行編碼,解碼函數如下圖所示。此外,它還使用了“GetProcessesByName”“Directory.Exists”和“File.Exists”等函數來評估安全設備在受攻擊環境中是否存在。用于檢查的列表如下圖所示。

字符串轉換器函數

安全設備檢查列表

為了持久性攻擊,惡意軟件將“.exe”擴展名附加到文件“AA”,并將MSIL下載程序復制到“Startup”文件夾。它還在“HCKU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows”中添加了一個注冊表項“Run”,相應的代碼如下圖所示。

自我復制到“Startup”

添加注冊表

在對資源數據“SYKSBIKO.Properties.Resources.resources??.a,”進行RC4解密和壓縮之后,將獲得執行文件,如下圖所示。然后,SYK-Crypter加載一個Base64.NET代碼并調用其“GetDelegateForFunctionPointer”函數,在同一方法中從kernel32或ntdll創建對所有API的委托。下圖顯示了一個加載“kernel32!WriteProcessMemory”的片段,隨后解密的有效負載被注入到進程中。

從SYK Crypter解密資源數據

調用“GetDelegateForFunctionPointer”來獲取API

注入的有效負載是Remcos RAT,最初是作為遠程計算機控制的合法工具設計的。然而,自2016年發布以來,黑客利用它來控制受害者的設備。該配置可以通過RC4解密“SETTINGS”資源獲得,如下圖所示。有趣的是,C2服務器的IP地址與XWorm有效負載的IP地址保持一致。

“SETTINGS”中的加密配置

解密的配置

總結

XWorm和Remcos的結合創建了一個具有一系列惡意功能的強大木馬。C2服務器的流量顯示,歐洲和北美是此惡意活動的主要目標。作為攻擊策略的一部分,網絡釣魚活動利用PDF流對象并利用"search-ms" 功能來誘導毫無戒心的受害者。為了進一步逃避檢測,攻擊者熟練地使用Rust注入器"Freeze.rs"和MSIL文件“SYK Crypter”。在本文中,我們深入研究了通過網絡釣魚郵件所采用的攻擊方法,并檢查了欺騙受害者所涉及的各種文件。此外,我們還提供了Freeze功能的全面概述。詳細介紹SYK Crypter的工作原理。

參考及來源:https://www.fortinet.com/blog/threat-research/malware-distributed-via-freezers-and-syk-crypter