
摘要
本報告針對 ZipLine 網路釣魚攻擊提供全面的技術分析,詳細說明其精密的社交工程策略、感染鏈,以及其客製化記憶體內植入程式 MixShell 的功能。此攻擊的獨特之處在於反轉了典型的網路釣魚流程,利用合法的聯絡表單來啟動溝通並在長時間內建立信任。本分析深入探討所使用的技術機制,包括 PowerShell 式的載入程式和 C2 通訊方法,以揭示攻擊者的操作複雜性和持久性。

1. 簡介
不斷變化的網路威脅環境需要對新穎的攻擊方法進行持續分析。ZipLine 攻擊代表了傳統網路釣魚策略的重大轉變,採用一種獨特的方法,利用信任和長時間互動來實現其目標。與攻擊者發起不請自來的聯絡的典型網路釣魚嘗試不同,ZipLine 攻擊會操縱受害者發起電子郵件通信,從而為互動賦予即時的合法錯覺 [1]。本報告旨在剖析此攻擊的技術複雜性,重點關注惡意軟體的傳播、執行和命令與控制 (C2) 機制,尤其是客製化的 MixShell 植入程式。
2. 攻擊概述與社交工程策略
ZipLine 攻擊的特點是其高度持久和精密的社交工程策略。攻擊者透過目標公司公開的「聯絡我們」網頁表單發起聯絡 [1]。這種反轉典型網路釣魚路徑的作法至關重要,因為它使得互動從一開始就顯得合法。目標公司在回應一個看似真實的詢問時,無意中開啟了與 threat actor 的溝通管道。這次最初的聯絡之後,是一場精心策劃的電子郵件對話,通常會持續數週,在此期間,攻擊者偽裝成潛在的業務合作夥伴,有時甚至要求簽署保密協議 (Non-Disclosure Agreements, NDAs) [1]。這種長時間的互動有多重目的:它有助於繞過可能標記立即惡意附件的電子郵件防護機制,更重要的是,它與毫無戒心的受害組織建立了顯著的信任。這個建立信任的階段是 ZipLine 攻擊的標誌,使其區別於更具機會主義的網路釣魚嘗試。此攻擊的近期變體甚至採用「AI 轉型」的藉口,將互動包裝成內部「AI 影響評估」,以進一步增強合法性和急迫性 [1]。
3. 感染鏈與 Payload 傳播
圖 1:ZipLine 攻擊感染鏈
ZipLine 攻擊的感染鏈旨在保持隱匿性和持久性。一旦建立信任,攻擊者就會傳播 malicious payload,通常以 ZIP 壓縮檔案的形式。此壓縮檔案通常託管在合法、受信任的平台上,例如 Herokuapp.com,由於該網域的聲譽,這進一步降低了受害者的疑心 [1]。使用此類平台進行 payload 傳播是一種戰略選擇,因為它利用現有基礎設施來繞過可能封鎖已知惡意網域的安全控制。ZIP 壓縮檔案本身經過精心製作,其中包含看似合法的誘餌檔案(例如 PDF 和 DOCX 文件)以及惡意的 `.lnk` 檔案 [1]。
`.lnk` 檔案是初始執行的關鍵。啟動時,它會觸發一個 PowerShell 式的載入程式。此載入程式負責幾個關鍵動作:
- 尋找 ZIP 檔案: PowerShell 腳本旨在跨各種常見目錄搜尋原始 ZIP 壓縮檔案,包括 `Desktop`、`Downloads`、`Documents`、`Temp`、`ProgramData` 和 `Parent of current working dir` [1]。這種廣泛的搜尋能力確保載入程式無論受害者將初始 ZIP 檔案儲存在何處,都能找到 payload。
- 搜尋嵌入式腳本標記: 找到 ZIP 檔案後,腳本會對壓縮檔案進行二進位掃描,以尋找一個 hardcoded 的標記字串,特別是 `xFIQCV` [1]。此標記充當分隔符號,指示 ZIP 壓縮檔案二進位資料中嵌入式 PowerShell payload 的確切起始點。此技術允許攻擊者將惡意腳本隱藏在看似無害的資料中,使偵測更具挑戰性。
- 提取並執行嵌入式腳本: 辨識標記後,PowerShell 腳本直接從 ZIP 壓縮檔案的二進位內容中提取嵌入的惡意 PowerShell payload。至關重要的是,這個提取的腳本隨後在記憶體中執行 [1]。記憶體內執行是一種常見的規避技術,因為它避免將惡意 payload 寫入磁碟,從而減少了依賴於檔案式掃描的傳統端點安全解決方案的偵測機會。
值得注意的是,在此攻擊中觀察到的並非所有 ZIP 檔案都是惡意的;有些只包含無害檔案。這表明存在一種動態提供機制,惡意內容可能會根據背景指標(例如接收者的 IP 位址或 user-agent)進行客製化和傳播 [1]。這種適應環境的傳播方式進一步增強了攻擊的規避性。
4. MixShell:客製化記In-memory植入程式
ZipLine 攻擊後滲透能力的關鍵核心是 MixShell,一個客製化的 In-memory shellcode 植入程式。此植入程式旨在保持隱匿和持久性,為攻擊者提供強大的命令與控制 (C2) 能力 [1]。MixShell 的 In-memory 性質使其特別難以偵測和分析,因為它在受感染系統上留下的鑑識 Artifact 極少。其主要的 C2 通訊方法是 DNS TXT 隧道傳輸,並具有 HTTP 備援機制,即使在具有嚴格網路 egress 政策的環境中也能確保彈性的通訊通道 [1]。
4.1. MixShell 能力
MixShell 是一個多功能植入程式,提供一系列功能,可實現對受感染系統的全面控制。這些能力包括:
- 檔案操作: MixShell 可以執行各種與檔案相關的動作,例如讀取、寫入、上傳和下載檔案。這使得攻擊者能夠竊取敏感資料、部署額外工具或修改系統設定。
- 反向代理: 植入程式支援反向代理,可用於透過受感染主機建立網路流量的隧道。此能力對於繞過網路分段、存取內部網路資源以及隱藏攻擊者流量的真實來源極為寶貴。
- 指令執行: MixShell 提供在受感染系統上執行任意指令的能力。這使得攻擊者能夠執行系統公用程式、執行腳本並執行偵察活動,有效地為他們提供一個遠端 shell。
- 基於 named-pipe 的互動式 Session: 植入程式透過 named-pipe 促進互動式 Session。這使得與受感染系統的互動更具動態性和回應性,允許攻擊者發出指令並立即接收回饋,類似於傳統的命令列介面。
4.2. 命令與控制 (C2) 機制
圖 2:MixShell C2 通訊架構
MixShell 採用的 C2 通訊策略旨在實現彈性和隱匿性。主要方法是 DNS TXT 隧道傳輸 [1]。此技術涉及將 C2 指令與資料編碼在 DNS TXT 記錄中,而這些記錄通常用於合法目的,例如 SPF 記錄或網域驗證。透過利用 DNS,攻擊者通常可以繞過可能封鎖直接 HTTP/S 連線到惡意基礎設施的傳統防火牆規則。DNS 流量通常較少受到審查,這使其成為一個有吸引力的隱蔽通訊管道。
除了 DNS TXT 隧道傳輸外,MixShell 還結合了 HTTP 備援機制 [1]。這確保如果基於 DNS 的通訊中斷或被封鎖,植入程式仍可以透過標準 HTTP/S 協定與 C2 伺服器建立聯絡。這種雙通道方法顯著增強了植入程式維持持久性並接收指令的能力,即使面對不斷演變的防禦措施也是如此。
4.3. PowerShell 載入程式分析
ZipLine 攻擊中使用的 PowerShell 載入程式展示了用於 payload 提取和執行的精密技術。雖然完整的原始碼未公開,但所記錄的行為表明腳本結構類似於以下 pseudocode:
- # PowerShell Loader Pseudocode
- $searchPaths = @("Desktop", "Downloads", "Documents", "Temp", "ProgramData", "Parent Directory")
- $markerString = "xFIQCV"
- # Search for ZIP file in common directories
- foreach ($path in $searchPaths) {
- $zipFile = Get-ChildItem -Path $path -Filter "*.zip" | Select-Object -First 1
- if ($zipFile) {
- # Read ZIP file as binary data
- $binaryData = [System.IO.File]::ReadAllBytes($zipFile.FullName)
- # Search for marker string in binary data
- $markerBytes = [System.Text.Encoding]::ASCII.GetBytes($markerString)
- $markerIndex = Find-BytePattern -Data $binaryData -Pattern $markerBytes
- if ($markerIndex -ne -1) {
- # Extract embedded PowerShell script after marker
- $scriptBytes = $binaryData[($markerIndex + $markerBytes.Length)..$binaryData.Length]
- $scriptContent = [System.Text.Encoding]::UTF8.GetString($scriptBytes)
- # Execute extracted script in memory
- Invoke-Expression $scriptContent
- break
- }
- }
- }
此 pseudocode 說明了載入程式的關鍵組成部分:系統化的檔案搜尋、用於標記字串的二進位模式匹配,以及記憶體內腳本執行。使用 hardcoded 標記 `xFIQCV` 是一個獨特的識別符,它允許載入程式精確定位 ZIP 壓縮檔案二進位結構中嵌入的 payload [1]。
5. 技術型規避技術
ZipLine 攻擊及其相關惡意軟體 MixShell 採用了幾種技術型規避技術,以避免偵測和分析:
- 記憶體內執行: 如前所述,PowerShell 載入程式直接在記憶體中提取並執行 MixShell 植入程式。這避免了將惡意 payload 寫入磁碟,使得基於檔案的防毒軟體和端點偵測與回應 (Endpoint Detection and Response, EDR) 解決方案更難偵測到威脅。
- PowerShell 腳本混淆: 雖然文章沒有提供 PowerShell 腳本混淆的具體範例,但此類載入程式通常會採用諸如編碼、變數重新命名和字串操作等技術來規避基於簽章的偵測,並使分析更具挑戰性。
- 嵌入式腳本的 hardcoded 標記: 使用 hardcoded 標記 (`xFIQCV`) 來定位 ZIP 壓縮檔案二進位資料中嵌入的 PowerShell payload 是一種混淆形式,需要對該標記有特定了解才能提取惡意組件。
- 利用受信任平台: 將惡意 ZIP 壓縮檔案託管在像 Herokuapp.com 這樣的合法平台上,有助於攻擊者繞過基於聲譽的篩選,並降低受害者的疑心。
- 動態 payload 提供: 惡意內容可能根據背景指標(例如 IP 位址、user-agent)動態提供的建議,表明存在一種適應環境的傳播機制,旨在規避靜態分析和針對性偵測。
- DNS TXT 隧道傳輸: 這種 C2 通訊方法本質上是隱蔽的,因為 DNS 流量通常允許通過防火牆,並且與其他協定相比,其惡意內容檢查頻率較低。
6. 結論
ZipLine 網路釣魚攻擊證明了網路威脅日益增長的複雜性。透過精心策劃社交工程敘事並採用先進的技術規避技術,攻擊者已開發出一種高效的方法來危害目標組織。該攻擊獨特的反轉了典型的網路釣魚流程,再加上使用像 MixShell 這樣隱蔽的記憶體內植入程式和彈性的 C2 通訊通道,突顯了建立強大、多層次安全防禦的必要性。組織不僅必須專注於技術控制,還必須增強員工對精密社交工程策略的意識。持續監控網路流量,尤其是 DNS 查詢,以及先進的端點偵測能力,對於識別和緩解像 ZipLine 這樣的威脅至關重要。