Gootkit Loader 的更新策略和 Cobalt Strike 的無文件交付
Gootkit Loader 的更新策略和 Cobalt Strike 的無文件交付
我們對異常 PowerShell 腳本的深入分析揭示了與 Gootkit 加載程序相關的入侵集。過去,Gootkit 使用免費軟件安裝程序來屏蔽惡意文件;現在它使用法律文件來誘騙用戶下載這些文件。我們通過托管擴展檢測和響應 (MxDR)以及調查 PowerShell 腳本的標志來發現這種策略,該標志使我們能夠阻止它造成任何損壞并丟棄其有效負載。
眾所周知,Gootkit 使用無文件技術來傳遞值得注意的威脅,例如 SunCrypt 和 REvil (Sodinokibi) 勒索軟件、Kronos 特洛伊木馬和 Cobalt Strike。2020 年,我們報道了 Gootkit 的能力。雖然它的行為與我們之前的報告中的行為大致相同,但更新揭示了它在近兩年后的持續活動和發展。
攻擊概述
與各種有效負載相關聯后,我們可以假設 Gootkit 在訪問即服務模型上運行。因此,不同的團體可以使用它來進行攻擊,因此值得對其進行監控,以防止更大的威脅成功進入系統。
圖 1 說明了其感染程序。它從用戶在搜索引擎中搜索特定信息開始。在這種情況下,用戶搜索了關鍵詞“披露協議房地產交易”。結果中有一個被 Gootkit 運營商入侵的網站,這意味著用戶打開這個被入侵的網站并不是偶然的。事實上,運營商通過使用搜索引擎優化 (SEO) 中毒來調整對他們有利的幾率,使該網站在搜索結果中排名靠前,從而導致用戶訪問受感染的網站。這也意味著網站的 URL 將不會長時間可用,如果不立即進行全面分析將難以進行。
圖 1. MxDR 看到的 Gootkit Loader 感染鏈
打開該網站后,我們發現它以在線論壇的形式出現,直接回答受害者的問題。該論壇包含一個包含惡意 .js 文件的 ZIP 存檔。當用戶下載并打開此文件時,它會生成一個混淆腳本,該腳本通過注冊表填充,在注冊表中安裝了一大塊加密代碼,并添加了計劃任務以實現持久性。然后通過 PowerShell 反射加載注冊表中的加密代碼,以重建 Cobalt Strike 二進制文件,該二進制文件直接在內存中無文件運行。
我們剛剛描述的大部分內容仍然與我們在 2020 年報告的行為一致,但有一些小的更新。這表明 Gootkit Loader 仍在積極開發中,并且已證明成功地破壞了毫無戒心的受害者。
有兩個明顯的變化:
- 搜索詞現在利用法律文檔模板而不是免費軟件安裝程序。
- 加密注冊表現在使用自定義文本替換算法而不是 base64 編碼。
被入侵的網站
跟蹤用戶的行為,我們現在可以查看攻擊中訪問的網站。眾所周知,威脅參與者只是破壞易受攻擊或配置錯誤的網站來植入他們的惡意軟件或工具,而不是為他們的惡意操作創建或注冊一個新的。在 Gootkit 的案例中,由于它破壞了合法域,所使用的網站很可能通過信譽服務。對于毫無戒心的用戶來說,訪問該網站不會引起懷疑,因為它對于歌唱和語音教練來說似乎是一個無害的網站。
圖 2. 合法受感染網站的主頁
專門對下載的文件執行谷歌搜索(“披露協議房地產交易”)表明該網站的內容與其所有者及其目的無關。此外,瀏覽網站的主頁本身也找不到這些搜索結果鏈接。這是該網站已被入侵的證據,因為它允許攻擊者注入或創建新的不相關的 Web 內容。當我們通過托管網站的Shodan查詢 IP 地址時,我們還發現了更多漏洞證據。

圖 3. 谷歌搜索顯示網站中不需要的內容
這種策略對 Gootkit 來說并不是什么新鮮事。再加上 SEO 中毒,Gootkit 運營商可以將受害者聚集到一個受感染的網站,并誘使他們下載他們正在尋找的文件。對于這次事件,我們能夠在 Gootkit 加載程序掉落其有效載荷之前停止其軌道。然而,用戶已經訪問了該網站,下載了惡意 ZIP 文件并打開了它。這些操作導致的異常 PowerShell 腳本提醒我們注意可能的惡意活動。在本次調查中,我們嘗試拼湊如果 PowerShell 腳本沒有被標記并被允許運行會發生什么。
調查分析
如前所述,用戶訪問了受感染的網站并使用 Google Chrome 下載了 ZIP 存檔。根據 Trend Micro Vision OneTM 的記錄,他們訪問的確切 URL 如下:
hxxps://www[.]{域名}[.]co[.]uk/forum[.]php?uktoz=znbrmkp&iepdpjkwxusknzkq=3147417f829ff54ffe9acd67bbf216c217b16d47ac6a2e02c1b42f603121c9ad4b18757818e094bdd5aaaa54577
在撰寫本文時,該 URL 不再可訪問。但是,我們能夠分析用戶下載的 ZIP 存檔。如前所述,它被命名為披露協議房地產交易(8321).zip。在另一個例子中,JavaScript 文件被命名為家庭成員之間的租賃協議 template(98539).zip。這兩個文件名都強烈表明 Gootkit 使用了引用法律文檔模板的關鍵字,可能會引誘用戶下載文件。需要注意的是,這個選擇的搜索詞和主題是過去廣告系列的顯著變化之一。

圖 4. Vision One 界面顯示用戶訪問受感染網站并下載 ZIP 存檔的證據
ZIP 存檔已成功保存在下載文件夾C:\Users\{username}\Downloads\disclosure agreement real estate transaction (8321).zip 中。

圖 5. ZIP 存檔成功保存在用戶的 Downloads 文件夾中
然后,用戶打開了 ZIP 存檔中的 .js 文件,該文件生成了一個混淆的 PowerShell 腳本。檢測到的命令行包括 wscript.exe,Windows 操作系統的默認腳本解釋器。此命令行運行惡意 JavaScript 文件。文件夾文件路徑和文件名可以在這里看到:
C:\Windows\System32\WScript.exe
C:\Users\{username}AppData\Local\Temp\Temp1_disclosure 協議房產交易(8321).zip\disclosure_agreement_real_estate_transaction 3994.js

圖 6. 通過 .js 文件生成的混淆 PowerShell 腳本
通過使用 Vision One 的 AMSI Telemetry,團隊能夠在運行時查看解碼的腳本并構建它生成的事件順序。在解碼的腳本中,列出了三個可能受到威脅的域。域本身是合法網站。Gootkit 只選擇一個并構造完整的 URL 以獲取下一階段的腳本執行。這里列出了三個域:
- learn[.]openschool.ua – 教育
- Lakeside-fishandchips[.]com – 餐廳和美食
- kristinee[.]com – 個人網站
圖 7. Vision One 的 AMSI 遙測記錄的解碼腳本
對腳本進行解碼也讓我們發現,為了完成操作需要兩個階段的腳本。第一階段腳本執行以下操作:
- 它檢查注冊表 HKCU\PJZTLE,如果找不到則創建它。正如我們在之前的博客中討論的那樣,這可以作為感染標記。
- 然后它會檢查當前用戶是否登錄到可能用于繞過沙盒工具的域。
- 接下來,它連接到構造的 URL 以獲取下一個要執行的腳本。對于這種情況,它從hxxps://learn[.]openschool[.]ua/test.php?mthqpllauigylit=738078785565141檢索第二階段腳本。
- 然后它會在運行獲取的代碼之前休眠 10 秒。
圖 8. Vision One 的 AMSI 遙測記錄的第一階段腳本執行流程
從上述受感染網站檢索到的第二階段腳本完成了此處列出的信息:
- 它通過環境字符串獲取當前用戶名。
- 它檢查目標注冊表并在它不存在時創建它。它為持久性執行注冊表填充,其中創建了兩組注冊表,每組都包含要在以后解碼和執行的加密二進制文件:
- HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Phone\\{loggedOnUser}\\{consecutive numbers},其中包含使用自定義文本替換加密的二進制有效負載
- HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Phone\\{loggedOnUser}0\\{consecutive numbers},其中包含用于解碼和執行第一個注冊表的十六進制編碼二進制文件
9. Vision One 的 AMSI 遙測記錄的 \\Phone\\{loggedOnUser}\\ 上的注冊表填充
圖 10. Vision One 的 AMSI 遙測記錄的 \\Phone\\{loggedOnUser}0\\ 上的注冊表填充
在這兩個階段之后,它最終執行了兩個同樣由 AMSI Telemetry 記錄的加密 PowerShell 腳本。第一個解密注冊表\\Phone\\{loggedOnUser}0\\的二進制文件,并用于啟動名為“Test”的函數。
圖 11. Vision One 的 AMSI 遙測記錄的解碼的第一個 PowerShell 腳本
第二個 PowerShell 腳本通過計劃任務安裝持久性機制,將用戶名分配為其任務名稱。
圖 12. Vision One 的 AMSI 遙測記錄的解碼后的第二個 PowerShell 腳本
計劃任務在\Phone\{loggedOnUser}0注冊表中加載二進制文件,然后使用相同的反射代碼加載技術 解密并執行在\Phone\{loggedOnUser}注冊表中找到的最終有效負載。
發現此實例的最終有效負載是 Cobalt Strike 二進制文件,該二進制文件也被發現連接到 Cobalt Strike 的命令和控制 (C&C) 服務器。
Cobalt Strike 有效載荷
Cobalt Strike 二進制文件以反射方式直接加載到內存中,已連接到 IP 地址 89[.]238[.]185[.]13。使用內部和外部威脅情報,團隊驗證 IP 地址是 Cobalt Strike C&C。Cobalt Strike 是一種用于后期開發活動的工具,它使用信標組件作為主要有效負載,允許執行 PowerShell 腳本、記錄擊鍵、截屏、下載文件和生成其他有效負載。
圖 13. Cobalt Strike C&C 基于來自 Virus Total 的圖表
安全建議
從這個案例中得到的一個關鍵結論是,Gootkit 仍然很活躍,并且正在改進其技術。這意味著該操作已被證明是有效的,因為其他威脅參與者似乎繼續使用它。用戶未來可能會在其他活動中遇到 Gootkit,并且它很可能會使用新的手段來誘捕受害者。
這種威脅還表明,SEO 中毒仍然是吸引毫無戒心的用戶的有效策略。SEO 中毒和合法網站受損的結合可以掩蓋惡意活動的跡象,這些跡象通常會讓用戶保持警惕。這種策略突出了用戶意識的重要性以及網站所有者在確保其網絡空間安全方面的責任。
組織可以通過對其員工進行用戶安全意識培訓來提供幫助,該培訓旨在使人們能夠識別并保護自己免受最新威脅的侵害。例如,在這種情況下,如果用戶對下載 JavaScript 文件更加謹慎,則可以更早地避免威脅。另一方面,網站所有者必須通過選擇強調自己服務器安全性的網絡托管服務提供商來做出更好的網絡托管選擇。
這個案例凸顯了 24/7 監控的重要性。值得注意的是,跨平臺 XDR 阻止了這種攻擊升級,因為我們能夠迅速隔離受影響的機器,阻止威脅對網絡造成進一步的損害。例如,Cobalt Strike 有效載荷可能會導致更嚴重的問題,例如勒索軟件的部署、橫向移動的憑證轉儲和數據泄露。托管 XDR 服務阻止了這一切的實現。
組織可以考慮使用Trend Micro Vision One,它提供了跨多個安全層檢測和響應威脅的能力。它可以隔離通常是感染源的端點,直到它們被完全清潔或完成調查。