針對烏克蘭政府單位的網路攻擊再次升溫。根據烏克蘭電腦緊急應變小組(CERT-UA)的報告,一個與白俄羅斯關聯的威脅組織 Ghostwriter(亦稱為 UAC-0057 或 UNC1151)近期發起了一場精密且具備多階段特徵的釣魚攻擊。這次攻擊的核心在於利用社會工程學,將目標鎖定在政府機關,並透過偽裝成在線學習平台 Prometheus 的相關資訊來誘導使用者。
對於初入職場的工程師來說,理解這種攻擊至關重要,因為它展示了現代惡意軟體如何透過多層封裝來規避防禦系統。
攻擊鏈的起始與初步滲透
這次攻擊採取的是典型的社交工程(Social Engineering)手法,即利用心理操縱誘導目標執行特定操作。攻擊者首先奪取合法帳號,發送包含 PDF 附件的釣魚郵件。當使用者點擊 PDF 中的連結後,會下載一個 ZIP 壓縮檔,其中包含一個名為 OYSTERFRESH 的 JavaScript 檔案。
這裡需要注意一個技術細節:攻擊者使用 JavaScript 作為載體,是因為許多企業環境對執行檔(EXE)有嚴格限制,但對腳本文件的審查相對寬鬆。為了掩蓋真實目的,OYSTERFRESH 會在前端顯示一份偽裝文件,讓使用者以為自己打開了正常的學習資料,而後端則在悄悄執行惡意操作。
多階段載荷的執行與隱匿
為了避開防禦軟體的偵測,Ghostwriter 採用了分層載入的策略。OYSTERFRESH 並非直接執行最終攻擊,而是執行以下兩個動作。
首先,它將一個經過混淆與加密的載荷 OYSTERBLUES 寫入 Windows 登錄檔(Registry)。將資料儲存在登錄檔中是一種常見的隱匿技巧,因為很多掃描工具主要檢查檔案系統而非登錄檔鍵值。
其次,它下載並啟動 OYSTERSHUCK,這個組件的作用是解碼並執行儲存在登錄檔中的 OYSTERBLUES。這種將解碼器與加密數據分開存放的做法,能有效降低被靜態分析工具直接識別出惡意特徵的機率。
一旦 OYSTERBLUES 運行,它會開始收集系統資訊,包括電腦名稱、使用者帳號、作業系統版本、最後一次開機時間以及目前運行的進程列表。這些資訊透過 HTTP POST 請求發送到指令與控制伺服器(C2 Server),C2 伺服器隨後會回傳下一階段的 JavaScript 代碼,並利用 eval() 函數在記憶體中直接執行。
最終目標:Cobalt Strike 的部署
這場攻擊的最終目的在於部署 Cobalt Strike。Cobalt Strike 原本是一個用於合法滲透測試的對抗模擬框架,但因其強大的後滲透(Post-Exploitation)功能,被大量駭客組織濫用。一旦 Cobalt Strike 在目標主機上運行,攻擊者就獲得了對該機器的遠端控制權,可以進一步地橫向移動、竊取敏感資料或在網路中建立長期潛伏的後門。
AI 在現代網路攻擊中的角色
值得關注的是,烏克蘭國家安全與國防委員會指出,俄羅斯支持的駭客組織已開始將 AI 工具(如 ChatGPT 和 Gemini)整合進攻擊流程。AI 的應用主要體現在兩個方面。
第一是目標偵察(Reconnaissance),利用 AI 快速分析大量公開資訊,找出最容易被攻破的目標或撰寫更具欺騙性的釣魚郵件。
第二是在運行時(Runtime)生成惡意指令,這讓惡意軟體能根據環境動態調整行為,增加分析人員反向工程的難度。
實務防禦建議與反思
面對這類攻擊,單靠防毒軟體是不夠的。CERT-UA 提出了一個非常實務的建議:限制標準使用者帳號執行 wscript.exe。
wscript.exe 是 Windows 執行 VBScript 或 JScript 的主機。在大多數辦公室環境中,一般員工根本不需要執行這些腳本。透過群組原則(GPO)禁用該執行檔,可以直接切斷這次攻擊鏈中 OYSTERFRESH 的執行路徑,讓整個攻擊在第一步就失效。
總結來說,這次事件提醒我們,攻擊者會不斷利用信任鏈(如學習平台、合法帳號)與系統內建工具(如登錄檔、腳本主機)來達成目的。對於開發者與維運人員而言,採取最小權限原則(Principle of Least Privilege)並減少攻擊面(Attack Surface Reduction)才是最根本的防禦手段。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。