駭客利用 Excel 文件針對烏克蘭部署 Cobalt Strike
受影響平台:Microsoft Windows
受影響群體:Microsoft Windows
影響範圍:受感染的機器將被攻擊者控制
嚴重等級:高風險
FortiGuard Labs 最近發現了一起複雜的網路攻擊事件,其中涉及一份嵌入 VBA 巨集的 Excel 文件,該文件被設計用來部署 DLL 檔案。攻擊者採用多階段的惡意軟體來執行”Cobalt Strike”,並與控制伺服器(C2)建立連線來接收指令。這次攻擊中,駭客利用了多種規避技術,以確保最終惡意程式能夠成功執行。
在過去的幾年中,由於地緣政治情勢,烏克蘭成為了主要的攻擊目標。這些攻擊的歷史顯示出一個趨勢,即隨著緊張局勢的加劇,網路攻擊的複雜性和頻率也在增加。例如,2022 年,FortiGuard Labs 報告了一件同樣利用惡意 Excel 檔案的攻擊活動,該文件內包含與烏克蘭軍隊相關的主題,用於加載 Cobalt Strike。2023 年,烏克蘭電腦緊急應變小組 (CERT-UA) 則揭露了 UAC-0057 的攻擊,使用包含巨集和誘餌圖片的惡意 XLS 檔案,在受感染的系統上部署了 PicassoLoader 和 Cobalt Strike。
在本文中,我們將探討這次各階段的攻擊技術細節。
圖1: 攻擊流程
Excel 文件
攻擊者採用的惡意 Excel 文件包含用烏克蘭語所撰寫的內容,旨在引誘用戶啟用其巨集功能。
圖2: 啟用巨集前的 Excel 文件內容
一旦啟用了 VBA 巨集,文件會切換到與預算相關的工作表,標題包含『分配給軍事單位的預算資金數量』 (翻譯自烏克蘭語 ”обсягу бюджетних коштів, що спрямовуються до військових частин”)。
圖 3: 啟用 VBA後的 Excel 文件
VBA 巨集的主要功能是解碼並結合多段以 HEX(十六進制)編碼的內容來佈署一份 DLL 檔案至受感染的系統中。此外,VBA 程式碼中大部分的字串也被以HEX編碼,以規避基本的字串偵測機制。
圖4: “workbook_open()”函式
在將名為 “Ac83faafb23919Ae9.DLl” 的 DLL 文件放置到 “%APPDATA%\VIBErpc\bIn\biN”資料夾中後,VBA程式會在 “%APPDATA%\Microsoft” 路徑中建立一個檔案名為 “ACtIVePRObE” 的 LNK 文件。接著,使用 “Shell” 執行指令 “RunDLL32.EXE shell32.dll,ShellExec_RunDLL ‘%APPDATA%\Microsoft\ACtIVePRObE.lnk’, 0”。而這份 LNK 檔案則是會使用 regsvr32 來執行 DLL 文件 “Ac83faafb23919Ae9.DLl”。
圖5: 建立LNK檔
圖6: LNK檔的內容
DLL 下載器
此階段負責下載檔案的 “Ac83faafb23919Ae9.DLl” 文件經過 ConfuserEx 混淆處理。
圖7: Ac83faafb23919Ae9.DLl
首先,它會檢查當前系統的處理序中是否包含以下特定字串:“processhacker“、“avastui“、“aswtoolssvc“、“wsc_proxy“、’procexp’、“overseer“以及“avastsvc“。如果查找到與分析工具或防毒軟體服務相關的字串,將會直接結束程式。
圖8: 檢查處理序名稱
通過環境檢查後,它會定義一個網路封包,從 “hxxps://goudieelectric[.]shop/cms/svg/6364.2809640e[.]chunk.svg” 下載所需要的資料。此網站也包含地域檢查機制,只有當受感染設備位於烏克蘭時,才能載到正確的文件。接著,藉由提取以 “href=” 開頭的 Base64 編碼資料,並將其與事先定義在程式中的陣列進行 XOR 運算,可以取得下一階段的檔案。最後,它會隨機生成一個文件名稱,將檔案存到 TEMP資料夾中。
圖9: 傳送網路封包
圖10:未成功通過地域檢查所下載的SVG檔案
圖 11:成功通過地域檢查所下載的 SVG 檔案
接著使用 “rundll32.exe“ 執行解碼後的檔案,然後使用 sleep 指令來等待執行完成。完成後會刪除檔案以清除痕跡。
圖12: 執行解碼後的檔案
解碼後的檔案是一個 .NET DLL 文件,將負責解密下一階段的文件並建立持續自動執行的設定。
圖 13: 解密後的文件仍經過 ConfuserEx 混淆
它先檢查目標文件是否存在。如果不存在,則建立“C:\ProgramData\Windows\Containers\BaseImages\9cb03978-56d9-4f38-8f05-d1fdf135f0ab\Files\Windows\System32\ResetEngine.dll“。然後,使用在程式中定義的密鑰執行RC4 演算法解密,並將解完的資料寫入剛建立的文件中。
圖 14: 將 RC4 解密後的內容寫進新建的文件中
接著,它將指令 “C:\Windows\System32\regsvr32.exe /s C:\ProgramData\Windows\Containers\BaseImages\9cb03978-56d9-4f38-8f05-d1fdf135f0ab\Files\Windows\System32\ResetEngine.dll“ 加到“SOFTWARE\Microsoft\Widows\CurrentVersion\Run“ 註冊表中,建立未來自動執行檔案的設定。最後,使用“InvokeMethod“ 執行“Create“ 並帶入剛剛加入註冊表的指令。
圖15:新增註冊表
圖16: 執行解密的檔案“ResetEngine.dll”
DLL 注入器
“ResetEngine.dll“ 是解密和注入最終程式的重要元件。它使用“NtDelayExecution“ 來逃避沙箱中的惡意活動偵測。同時檢查所有處理序,並嘗試終止父處理序,以達到anti-debugging的目的。
圖17: 延遲執行和anti-debugging
接著,使用 AES 演算法解出最終檔案。
圖18: 解密檔案
最後,它將解密的資料注入到自身處理序中,使用數個 API,包括“GetCurrentProcessId“、“OpenProcess“、“VirtualAllocEx“、“WriteProcessMemory“、“CreateRemoteThread“和“WaitForSingleObject“ 來執行最終的 Cobalt Strike。
圖19: 將 Cobat Strkie 寫入記憶體中
Cobalt Strike
此版本的 Cobalt Strike 中,可以使用 0x2E 進行 XOR 運算解析出設定資料,包括此次攻擊使用的伺服器(C2):“hxxps://simonandschuster[.]shop/the-zero-residual-concept/products”和“hxxps://simonandschuster[.]shop/the-zero-residual-concept/sjj-solutions。
圖20: 解析後的設定
圖21: Cobalt Strike的 POST 資料
結論
在這次複雜的攻擊事件中,駭客採用了多階段惡意軟體策略以防止偵測,同時確保運行的穩定性。通過在資料下載期間實施地理位置的檢查,駭客意圖隱藏可疑資料,以躲避資安人員的分析和檢測。過程中利用將字串進行編碼,VBA 藏匿了許多關鍵的字串,促使了 DLL 文件能夠順利地在感染環境中部署和解密後續資料。此外,刪除自我的功能有助於逃避鑑識,而 DLL 注入器則採用延遲執行,並終止父處理序以分別逃避沙箱檢查和反除錯分析。
此次精心策劃的攻擊手法特別針對具有重要地緣政治的烏克蘭部署 Cobalt Strike。由於 Office 文件提供了大量的功能,包括眾多的套件和巨集,因此使用者在處理來自不信任來源的文件時必須特別小心。保有警覺心是至關重要,尤其是對於可疑文件的下載或在註冊表中任何陌生程式的設定。
Fortinet 解決方案:
FortiGuard防病毒服務成功檢測並攔截本篇文章提及的惡意軟體活動:
W32/Stealer.QLD!tr
MSIL/Agent.WML!tr
MSIL/Kryptik.BJF!tr
LNK/Agent.WML!tr
FortiGate、FortiMail、FortiClient 和 FortiEDR 皆支援 FortiGuard 防病毒服務。因此,若您的網路架構中部署上述產品和最新版本防護即擁有 FortiGuard 防病毒服務。
這些網址被 FortiGuard 網頁過濾服務評為「惡意網站」。
企業組織亦可透過免費的 Fortinet Certified Fundamentals (FCF) in Cybersecurity培訓或是報名全中文的線上快速充電學習營,了解當今的威脅環境和基本的網路安全概念和技術。
FortiGuard IP 信譽和 Anti-botnet 安全防護服務透過匯整來自 Fortinet 分佈式威脅感應器、CERT、MITRE、合作競爭對手和其他全球合作夥伴的惡意源IP數據,積極阻止這些攻擊,提供最新威脅情報。
IOCs
網址
goudieelectric[.]shop
simonandschuster[.]shop
SHA256
88c97af92688d03601e4687b290d4d7f9f29492612e29f714f26a9278c6eda5b 815c1571356cf328a18e0b1f3779d52e5ba11e5e4aac2d216b79bb387963c2be 9649d58a220ed2b4474a37d6eac5f055e696769f87baf58b1d3d0b5da69cbce5 af8104e567c6d614547acb36322ad2ed6469537cd1d78ae1be65fbde1d578abc de1bceb00c23e468f4f49a79ec69ec8ad3ed622a3ffc08f84c0481ad0f6f592b 6f4642a203541426d504608eed7927718207f29be2922a4c9aa7e022f22e0deb d90f6e12a917ba42f7604362fafc4e74ed3ce3ffca41ed5d3456de28b2d144bf d9b16f077cd6e00137ba208031d22fd6423d0ef303883ad4b6f78638693f2044