原文鏈接:Fake Update Utilizes New IDAT Loader To Execute StealC and Lumma Infostealers
譯者:知道創宇404實驗室翻譯組

最近,我們觀察到了一種名為"Fake Browser Update"的誘騙策略,讓用戶執行惡意二進制文件。在分析這些二進制文件時,我們確定使用了一個新的加載程序,用于在受感染的系統上執行信息竊取程序,其中包括StealC和Lumma。

IDAT 加載程序是我們于2023 年 7 月首次發現的一種新型、復雜的加載程序。在較早版本的加載器中,它被偽裝成一個7-zip安裝程序,傳送SecTop RAT。現在,我們觀察到該加載器被用來傳送Stealc、Lumma和Amadey等信息竊取程序。它采用了幾種逃避技術,包括 Process Doppelgnging、DLL Search Order Hijacking和Heaven's Gate。IDAT加載器得名于威脅行為者將惡意載荷存儲在PNG文件格式的IDAT塊中。

在采用這種技術之前,我們觀察到背后的黑客利用惡意JavaScript文件來與命令和控制(C2)服務器建立聯系,或者傳送Net Support遠程訪問木馬(RAT)。

從SocGholish惡意軟件,到黑客手中的竊取信息,下面的分析涵蓋了整個攻擊流程。

技術分析

黑客經常通過安全工具無法檢測到的方式發起攻擊,而安全研究人員也很難對其進行調查。

img

圖片1:攻擊流程

第一階段:ClearFake

ClearFake是一種近期才被發現的新型惡意軟件。其攻擊活動始于2023年7月19日,這與我們發現新的IDAT加載器分發時間吻合。最初我們將這個攻擊流程歸因于SocGolish惡意軟件,但ClearFake似乎不太復雜。

在此次攻擊活動中,ClearFake惡意軟件使用base64對惡意JavaScript進行混淆,通過CyberChef輕松解密。正如Randy McEoin所提到的:與SocGholish的一個明顯區別是,沒有對IP或Cookie的訪問進行跟蹤。分析者可以反復從同一IP地址訪問被攻擊的網站,且可以不清除瀏覽器緩存,這也意味著網站所有者更有可能察覺到感染。

圖片2:受感染域中嵌入的混淆 JavaScript

這個提示冒充瀏覽器更新,但由于它看上去源自于預期域名,也增加了其可信度。

圖3 :彈窗提示用戶更新瀏覽器

一旦用戶點擊“更新Chrome”按鈕,瀏覽器將重定向到另一個URL,其中一個二進制文件會自動下載到用戶的默認下載文件夾中。用戶雙擊假更新的二進制文件后,它將繼續下載下一個階段的有效負載。在這項調查中,發現了一個名為ChromeSetup.exe的二進制文件,該文件名在先前的SocGholish攻擊中被廣泛使用。

第二階段:MSI下載器

ChromeSetup.exe從hxxps://ocmtancmi2c5t[.]xyz/82z2fn2afo/b3/update[.]msi 下載并執行Microsoft Software Installer (MSI)包。

在類似的調查中,我們觀察到當用戶訪問受損網頁時,初始的加載程序可執行文件的外觀和文件名可能會根據用戶訪問受感染網頁時的瀏覽器而有所不同。在所有情況下,可執行文件都包含無效簽名,并試圖下載和安裝一個MSI包。

執行MSI包所需的幾個開關,旨在避免被檢測:

  • /qn:避免安裝 UI
  • /quiet:防止用戶交互
  • /norestart:在感染過程中防止系統重新啟動

當執行時,MSI下載器將寫入一個合法的VMwareHostOpen.exe可執行文件、多個合法的依賴文件、以及惡意的動態鏈接庫(DLL)文件vmtools.dll。它還會刪除一個加密的vmo.log文件,該文件具有PNG文件結構,并且稍后會被惡意的DLL解密。

我們發現了攻擊的另一個版本,其中MSI刪除了一個合法的pythonw.exe、合法的依賴文件,以及惡意的DLL文件python311.dll。在這種情況下,加密文件的被命名為pz.log,執行流程保持不變。

圖片4:vmo.log 的內容

第三階段:解密器

執行時,合法的VMWareHostOpen.exe會從執行VMWareHostOpen.exe的同一目錄加載惡意vmtools.dll 。這種技術被稱為DLL搜索順序劫持

在執行vmtools.dll期間,我們觀察到該DLL使用API哈希從kernel32.dll和ntdll.dll加載API庫,并將它們映射到內存中。在將API函數映射到內存后,DLL讀取十六進制字符串83 59 EB ED 50 60 E8并使用秘鑰F5 34 84 C3 3C 0F 8F進行按位異或運算解密,從而顯示字符串vmo.log。該文件類似于存儲虛擬機日志的Vmo\log目錄。

然后,DLL將vmo.log的內容讀入內存,并搜索字符串…IDAT。DLL獲取…IDAT之后的4個字節,并將其與十六進制值C6 A5 79 EA進行比較。如果…IDAT后面的4個字節等于十六進制值C6 A5 79 EA,DLL將繼續將…IDAT之后的所有內容復制到內存中。

圖 5:搜索十六進制值C6 A5 79 EA的函數

一旦所有數據都被復制到內存中,DLL將嘗試使用關鍵字F4 B4 07 9A進行按位 XOR 運算來解密復制的數據。在對其他樣本進行進一步分析后,我們確定了XOR密鑰始終存儲在十六進制字符串C6 A5 79 EA之后的4個字節中。

圖6 :在PNG文件pz.log和vmo.log中找到的XOR密鑰

DLL在內存中解密數據后,使用RTLDecompressBuffer函數對其進行解壓縮。傳遞給該函數的參數包括:

  • 壓縮格式
  • 壓縮數據的大小
  • 壓縮緩沖區的大小
  • 未壓縮數據的大小
  • 未壓縮緩沖區的大小

圖7:傳遞給RTLDecompressBuffer函數的參數

vmtools.dll 利用LZNT1壓縮算法對vmo.log文件中的解密數據進行解壓縮。

數據解壓縮后,DLL將mshtml.dll加載到內存中,并用解壓縮的代碼覆蓋其.text節。在覆蓋完成后,vmtools.dll調用解壓縮的代碼。

第四階段:IDAT注入器

與vmtools.dll類似,IDAT加載器使用動態導入。然后,IDAT注入器通過使用ExpandEnvironmentStringsW API調用來擴展%APPDATA%環境變量。它在%APPDATA%下創建一個新文件夾,并根據QueryPerformanceCounter API調用的輸出命名,并隨機化其值。

MSI刪除的所有文件都被復制到新創建的文件夾中。然后,IDAT使用CreateProcessW從%APPDATA%創建VMWareHostOpen.exe的新實例并退出。

第二個VMWareHostOpen.exe實例的行為與之前相同,直到從mshtml.dll內存空間調用IDAT注入器代碼的階段。IDAT立即開始實現Heaven's Gate逃避技術,該技術用于大多數 API 調用,直到信息竊取程序加載完成。

Heaven's Gate廣泛用于威脅行為者逃避安全工具。它指的是在32位進程中執行64位進程,或者反之亦然,允許32位進程在64位進程中運行。這是通過使用保留選擇器發起調用或跳轉指令來實現的。在我們的案例中,分析這種技術的關鍵點是將進程模式從32位更改為64位,需要指定選擇器“0x0033”,并在執行遠程調用或遠程跳轉之后進行操作,如圖8所示。

圖8:Heaven's Gate技術的實現

接下來,IDAT注入器使用ExpandEnvironmentStringsWAPI調用擴展了%TEMP%環境變量。它根據QueryPerformanceCounter API調用的輸出創建一個字符串,并隨機化其值。

然后,IDAT加載器通過調用GetComputerNameW API獲取計算機名稱,并使用rand和srand API調用對輸出進行隨機化處理。它使用該隨機化值通過SetEnvironmentVariableW設置一個新的環境變量。該變量被設置為之前創建的隨機化字符串與%TEMP%路徑的組合。

圖9 :新的環境變量設置為%TEMP%\89680228

現在,加載器執行了新的cmd.exe進程,然后創建并寫入%TEMP%\89680228文件。

接下來,IDAT使用NtCreateSection + NtMapViewOfSection Code Injection技術將代碼注入到cmd.exe進程中。使用此技術,惡意軟件執行以下操作:

  • 通過使用NtCreateSection API調用,在遠程進程內部創建一個新的內存段

  • 通過使用NtMapViewOfSection API調用,將新創建的部分視圖映射到具有 RW 保護的本地惡意進程上

  • 通過使用NtMapViewOfSection API調用,將先前創建的部分的視圖映射到具有 RX 保護的遠程目標進程

  • 通過使用NtWriteVirtualMemory API調用,使用 shellcode 填充本地進程中映射的視圖

在我們的案例中,IDAT加載器使用NtSuspendThread API調用掛起了cmd.exe進程上的主線程,然后使用NtResumeThread API調用恢復線程。 完成注入后,第二個VMWareHostOpen.exe實例退出。

第五階段:IDAT加載器

注入的加載器代碼以與IDAT注入器完全相同的方式實現了Heaven's Gate逃逸技術。它檢索了TCBEDOPKVDTUFUSOCPTRQFD環境變量,并將%TEMP%\89680228文件中的數據讀入內存,然后將數據與3D ED C0 D3密鑰進行遞歸異或運算。

解密后的數據包含配置數據,包括應加載信息竊取程序的進程、應該動態檢索哪些API調用、附加代碼等。然后,加載器使用DeleteFileW刪除初始惡意DLL(vmtools.dll)。最后,加載器使用Process Doppelgnging注入技術將infostealer注入到explorer.exe進程中。

Process Doppelgnging方法利用了Windows操作系統中的事務性NTFS功能。該功能旨在確保在出現意外錯誤時的數據完整性。例如,當應用程序需要寫入或修改文件時,如果在寫入過程中發生錯誤,則存在數據損壞的風險。為了防止此類問題,應用程序可以以事務模式打開文件進行修改,然后提交修改,從而防止任何潛在的損壞。

Process Doppelgnging利用這一特性來將合法文件替換為惡意文件,從而進行進程注入。惡意文件在事務中創建,然后提交到合法文件,并隨后執行。在我們的樣本中,Process Doppelg?nging的執行步驟包括:

  • 使用NtCreateTransactionAPI調用啟動一個事務

  • 使用NtCreateFileAPI調用創建一個新文件

  • 使用NtWriteFileAPI調用寫入新文件

  • 使用NtCreateSectionAPI調用向本地進程的某個節寫入惡意代碼

  • 使用NtRollbackTransactionAPI調用放棄事務

  • 使用NtCreateProcessExAPI調用運行explorer.exe進程的新實例

  • 使用NtCreateThreadExAPI調用在explorer.exe進程中運行惡意代碼

如果在事務中創建的文件被回滾(而不是提交),但文件的部分已經映射到進程內存中,則仍將執行進程注入。

最終注入到explorer.exe進程中的有效負載被識別為Lumma Stealer。

圖片10:進程樹

在整個攻擊流程中,惡意軟件通過使用NtDelayExecution延遲執行,這是一種通常用于逃避沙箱的技術。

正如前面提到的,我們調查了幾個IDAT加載器樣本。主要區別包括:

  1. 加載惡意DLL的合法軟件

  2. 在%APPDATA%中創建的分段目錄名稱。

  3. IDAT注入器注入加載器代碼的進程。

  4. 將信息竊取工具/遠程訪問工具(RAT)加載到的進程。

  5. 我們觀察到IDAT加載器已被用于加載以下信息竊取工具和RAT:Stealc、Lumma和Amadey信息竊取工具以及SecTop RAT。

圖片11 :對StealC C2域的部分HTTP POST請求

圖片12:對Lumma Stealer C2域的HTTP POST請求

結論

IDAT加載器是一種新的復雜加載器,利用多種逃避技術來執行各種通用惡意軟件,包括InfoStealers和RAT。虛假更新活動背后的黑客將IDAT加載器打包到由諸如VMWarehost、Python和Windows Defender等合法程序加載的DLL中。

MITRE ATT&CK Techniques

Initial Access Drive-by Compromise (T1189) The SocGholish Uses Drive-by Compromise technique to target user’s web browser
Defense Evasion System Binary Proxy Execution: Msiexec (T1218.007) The ChromeSetup.exe downloader (C9094685AE4851FD5A5B886B73C7B07EFD9B47EA0BDAE3F823D035CF1B3B9E48) downloads and executes .msi file
Execution User Execution: Malicious File (T1204.002) Update.msi (53C3982F452E570DB6599E004D196A8A3B8399C9D484F78CDB481C2703138D47) drops and executes VMWareHostOpen.exe
Defense Evasion Hijack Execution Flow: DLL Search Order Hijacking (T1574.001) VMWareHostOpen.exe loads a malicious vmtools.dll (931D78C733C6287CEC991659ED16513862BFC6F5E42B74A8A82E4FA6C8A3FE06)
Defense Evasion Deobfuscate/Decode Files or Information (T1140) vmtools.dll (931D78C733C6287CEC991659ED16513862BFC6F5E42B74A8A82E4FA6C8A3FE06) decrypts vmo.log(51CEE2DE0EBE01E75AFDEFFE29D48CB4D413D471766420C8B8F9AB08C59977D7) file
Defense Evasion Masquerading (T1036) vmo.log(51CEE2DE0EBE01E75AFDEFFE29D48CB4D413D471766420C8B8F9AB08C59977D7) file masqueraded to .png file
Execution Native API (T1106) The IDAT injector and IDAT loader are using Heaven’s Gate technique to evade detection
Defense Evasion Process Injection (T1055) IDAT injector implements NtCreateSection + NtMapViewOfSection Code Injection technique to inject into cmd.exe process
Defense Evasion Process Injection: Process Doppelg?nging (T1055.013) IDAT loader implements Process Doppelg?nging technique to load the InfoStealer
Defense Evasion Virtualization/Sandbox Evasion: Time Based Evasion (T1497.003) Execution delays are performed by several stages throughout the attack flow

IoCs

IOC SHA-256 Notes
InstaIIer.exe A0319E612DE3B7E6FBB4B71AA7398266791E50DA0AE373C5870C3DCAA51ABCCF MSI downloader
ChromeSetup.exe C9094685AE4851FD5A5B886B73C7B07EFD9B47EA0BDAE3F823D035CF1B3B9E48 MSI downloader
MlcrоsоftЕdgеSеtuр.exe 3BF4B365D61C1E9807D20E71375627450B8FEA1635CB6DDB85F2956E8F6B3EC3 MSI downloader
update.msi 53C3982F452E570DB6599E004D196A8A3B8399C9D484F78CDB481C2703138D47 MSI dropper, dropped pythonw.exe, python311.dll and pz.log files
update.msi D19C166D0846DDAF1A6D5DBD62C93ACB91956627E47E4E3CBD79F3DFB3E0F002 MSI dropper, dropped VMWareHostOpen.exe, vmtools.dll and vmo.log files
DirectX12AdvancedSupport.msi B287C0BC239B434B90EEF01BCBD00FF48192B7CBEB540E568B8CDCDC26F90959 MSI dropper, dropped MpCopyAccelerator.exe, MpClient.dll, and virginium.flac file
python311.dll BE8EB5359185BAA8E456A554A091EC54C8828BB2499FE332E9ECD65639C9A75B Malicious dll loaded by pythonw.exe
vmtools.dll 931D78C733C6287CEC991659ED16513862BFC6F5E42B74A8A82E4FA6C8A3FE06 Malicious dll loaded by VMWareHostOpen.exe
MpClient.dll 5F57537D18ADCC1142294D7C469F565F359D5FF148E93A15CCBCEB5CA3390DBD Malicious dll loaded by MpCopyAccelerator.exe
vmo.log 51CEE2DE0EBE01E75AFDEFFE29D48CB4D413D471766420C8B8F9AB08C59977D7 Encrypted payload decrypted by vmtools.dll
pz.log 8CE0901A5CF2D3014AAA89D5B5B68666DA0D42D2294A2F2B7E3A275025B35B79 Encrypted payload decrypted by python311.dll
virginium.flac B3D8BC93A96C992099D768BEB42202B48A7FE4C9A1E3B391EFBEEB1549EF5039 Encrypted payload decrypted by MpClient.dll
ocmtancmi2c5t[.]xyz Host of the MSI package
lazagrc3cnk[.]xyz Host of the MSI package
omdowqind[.]site Domain that facilitated download of the MSI downloader
weomfewnfnu[.]site Domain that facilitated download of the MSI downloader
winextrabonus[.]life Domain that facilitated download of the MSI downloader
bgobgogimrihehmxerreg[.]site Domain that facilitated download of the MSI downloader
pshkjg[.]db[.]files[.]1drv[.]com Domain that facilitated download of the MSI downloader
ooinonqnbdqnjdnqwqkdn[.]space Domain that facilitated download of the MSI downloader
hello-world-broken-dust-1f1c[.]brewasigfi1978[.]workers[.]dev Domain that facilitated download of the MSI downloader
doorblu[.]xyz C&C server
costexcise[.]xyz C&C server
buyerbrand[.]xyz C&C server
94.228.169[.]55 C&C server
gapi-node[.]io C&C server
gstatic-node[.]io C&C server

References

  1. https://zeltser.com/media/docs/malware-analysis-lab.pdf

Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/3027/