摘要

這份報告針對一個先進威脅族群所採用的運作框架進行技術分析,重點在於其創新地使用以受害者為基礎的命令與控制 (C2) 中繼網路,以及其對行之有年的 Web 應用程式漏洞的依賴以取得初始存取。分析的核心在於部署客製化的 ShadowPad IIS Listener module ,將受駭伺服器轉化為主動的網狀節點,有效地隱匿真實的 C2 基礎設施。此外,報告詳細介紹了初始存取向量,該向量利用可預測或管理不當的 ASP.NET machineKey 數值,透過 ViewState 反序列化達成遠端程式碼執行 (RCE)。研究結果強調了一種成熟、模組化的開發模型,其特點是嚴謹的運作劇本以及對隱蔽橫向移動的專注。

為何你的防火牆沒反應?當受駭伺服器轉型為合法外殼下的分散式 C2 節點 | 資訊安全新聞

1. 初始存取向量:利用 ViewState 反序列化

在這些行動中觀察到的主要初始存取向量是利用 ASP.NET ViewState 反序列化 [1] 。ViewState 是 ASP.NET Web Forms 中的關鍵組件,用於在無狀態的 HTTP Request 之間維持伺服器端控制項的狀態。為了確保這些資料的完整性與機密性,ViewState 通常受到訊息鑑別碼 (Message Authentication Code, MAC) 的保護,而該 MAC 是使用應用程式的 machineKey 產生的 [1]

此漏洞不在於 ViewState 機制本身,而在於伺服器的設定。當伺服器的 machineKey 為公開已知、可預測(例如:預設值)或管理不當的時候,攻擊者就可以繞過加密保護。攻擊者隨後可以偽造一個包含序列化物件的有效 ViewState malicious payload。在收到 Request 後,具備漏洞的 IIS 伺服器會嘗試反序列化此物件,如果該物件是使用 gadget chain 構建的,則會執行攻擊者的程式碼,導致在 IIS 工作程序 ( w3wp.exe ) 的環境中達成 RCE [1]

1.1. MachineKey 的角色與攻擊程序

MachineKey 是定義在 web.config machine.config 檔案中的設定元素,包含兩個主要屬性: validationKey decryptionKey validationKey 用於產生完整性檢查的 MAC,而 decryptionKey 則在啟用加密時用於解密 ViewState payload。為了透過反序列化成功達成 RCE,攻擊者主要需要知道 validationKey 以產生有效的 MAC,從而讓伺服器信任該 malicious payload。

攻擊程序包括:

  1. 金鑰取得: 取得目標伺服器的 machineKey (例如:從公開披露、設定錯誤的原始碼儲存庫或暴力破解 weak keys)。
  2. Payload 產生: 使用 YSoSerial.NET 之類的工具產生一個惡意的序列化物件 Payload(例如:執行 Reverse shell 的指令),並將其包裝在 ViewState 結構中。
  3. MAC 計算: 使用取得的 validationKey 計算正確的 MAC,並將其附加到惡意的 ViewState 中。
  4. 遞送: 在傳送到具漏洞 ASP.NET 應用程式的 POST Request 中 submit 偽造的 ViewState payload。

以下概念性設定突顯了這些金鑰的敏感性質:

<system.web>
<!-- Detailed comment: The validationKey and decryptionKey MUST be strong,
randomly generated, and kept secret. Reusing keys across servers
significantly increases the attack surface. -->
<machinekey decryption="AES" decryptionkey="B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5" validation="SHA1" validationkey="A0B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5A0B1C2D3E4F5"></machinekey>
</system.web>

2. 分散式 C2 中繼網路架構

此運作族群的一個定義性特徵是建構以受害者為基礎的中繼網路 [1] 。此架構利用部署在受駭且對外公開伺服器上的客製化 ShadowPad IIS Listener module 。此模組有效地將受害者伺服器轉換為分散式網狀網路中的一個主動節點,作為 C2 流量的代理。這種方法對於防禦規避非常有效,因為它透過合法的受駭基礎設施路由惡意流量,使其難以與正常的 Web 流量區分,並增加了識別真實 C2 伺服器的難度。

2.1. ShadowPad IIS Listener Module 實作

ShadowPad IIS Listener module 是專為 Windows Internet Information Services (IIS) 環境設計的高度專業化植入程式。它可能實作為 HTTP Module ISAPI Filter 。HTTP Module 是插入 ASP.NET Request pipeline 的 Managed code (C#) 組件,允許其檢查、修改或中斷任何 Request。ISAPI Filter 是在較底層運作的原生程式碼 (C++) 組件,提供更高的效能與隱蔽性。無論實作方式為何,該模組的核心功能是攔截傳入的 HTTP Request,套用特定的過濾器(例如:檢查唯一的 URL 路徑、客製化 HTTP header 或特定的 payload 特徵),如果過濾器匹配,則將該 Request 視為 C2 指令。隨後,該模組會在本機端執行指令,或者將其轉發到中繼鏈中的下一個節點。

C2 流量通常被偽裝成模仿合法的應用程式流量。例如,C2 指令可能會經過 base64 編碼,並嵌入在常見的 HTTP header 或通常被 Web 應用程式忽略的 POST Request Body 參數中。

2.2. 中繼網路視覺化與流量流程

分散式網狀網路提供了顯著的運作安全 (OPerational SECurity, OPSEC) 優勢,主要體現在韌性和規避歸因方面 [1] 。初始 C2 指令在到達最終目標(受害者 D,通常是內部主機)之前,會經過多台受駭伺服器(受害者 A、B、C)路由。這種 Multi-hop path 確保了追蹤來自最終目標流量的網路防禦者只會觸及另一個受駭受害者,而不是攻擊者的基礎設施。

graph TD A[Attacker C2 Server] -->|Encrypted Command| B{Victim A -
IIS Listener}; B -->|Relay Command| C{Victim B -
IIS Listener}; C -->|Relay Command| D{Victim C -
IIS Listener}; D -->|Final Command| E[Victim D -
Internal Target]; E -->|Data Exfiltration| D; D -->|Relay Data| C; C -->|Relay Data| B; B -->|Encrypted Data| A; subgraph Distributed Relay Network B C D end style B fill:#f9f,stroke:#333,stroke-width:2px style C fill:#f9f,stroke:#333,stroke-width:2px style D fill:#f9f,stroke:#333,stroke-width:2px style E fill:#ccf,stroke:#333,stroke-width:2px style A fill:#faa,stroke:#333,stroke-width:2px

3. 滲透後攻擊與橫向移動

一旦達成 RCE,該威脅族群會迅速行動以建立持久性並進行橫向移動。對 IIS 工作程序的初始入侵提供了存取具特權的本機端 Artifact 的權限,特別是 IIS 應用程式/服務認證與設定 [1]

3.1. 從 IIS 收集認證

橫向移動階段的一個關鍵步驟是收集認證。IIS 工作程序通常在具有較高權限的服務帳戶下執行,或者它可以存取包含加密認證的設定檔案。藉由取得 IIS machineKey DecryptionKey ,攻擊者可以解密本機端存取的設定 blob 與認證,例如在 applicationHost.config 或特定的 web.config 檔案中發現的內容。這通常會產生 IIS 工作程序或應用程式集區帳戶的密碼。

以下概念性 pseudocode 說明了攻擊者可能用來從受駭環境中提取認證的邏輯:

  1. // Conceptual Pseudocode for Credential Harvesting
  2. // This logic simulates the steps an attacker might take to extract credentials
  3. // from the compromised IIS environment.
  4. function Decrypt_IIS_Credentials(machineKey, encryptedBlob) {
  5. // Detailed comment: The attacker first locates the encrypted configuration
  6. // data, often in files like applicationHost.config or connectionStrings.config.
  7. encryptedBlob = Read_Config_File("C:\Windows\System32\inetsrv\config\applicationHost.config");
  8. // Detailed comment: The decryption process requires the correct machineKey
  9. // and decryption algorithm (e.g., AES) as configured in web.config.
  10. // The attacker may use a custom decryption routine or leverage built-in
  11. // .NET functions if operating within the w3wp.exe context.
  12. decryptedData = Decrypt(encryptedBlob, machineKey, "AES");
  13. // Detailed comment: The decrypted data is parsed to find the plaintext
  14. // password for the application pool identity or database connection strings.
  15. plaintextPassword = Extract_Password(decryptedData);
  16. return plaintextPassword;
  17. }
  18. // Detailed comment: The reuse of service credentials across a web farm is a
  19. // critical security weakness that allows the actor to authenticate to sibling
  20. // IIS hosts and pivot laterally with minimal network noise.

在網頁伺服器農場 (web farm) 中重複使用服務認證是該威脅族群所利用的一個關鍵安全弱點。單一受駭認證即可授予存取多個同級 IIS 主機的權限,從而實現快速且隱蔽的橫向移動 [1]

3.2. RDP tunnel與互動式 Session

在取得認證後,攻擊者會建立一個持久的遠端存取通道(通常是 RDP tunnel),以便從遠端工作站連接內部主機。這通常透過部署輕量級隧道工具並設定排程工作以確保持久性來實現。使用 RDP tunnel 為操作員提供了高保真度、手動操作的體驗,允許他們像合法用戶一樣與受駭系統進行互動。這項活動旨在表面上看起來合法,因為 RDP 流量通常透過受駭的對外伺服器路由,從而繞過直接的網路隔離控制,並與預期的管理流量混合在一起 [1]

4. FinalDraft Backdoor 變種分析

此活動利用了 FinalDraft 後門的新變種,該後門作為一個具韌性的 Cloud-native C2 平台 [1] 。此變種展示了增強的隱蔽性和更高的外洩吞吐量,反映了該族群工具的不斷演進。

「Cloud-native」的稱號暗示了一種複雜的 C2 通訊設計,利用合法的雲端基礎設施來規避偵測。這通常涉及 Domain Fronting 或利用常見的雲端儲存 API(例如:AWS S3、Microsoft Azure Blob Storage)進行 C2 通訊。藉由使用這些合法服務,C2 流量看起來像是與信任的 Cloud provider 進行的良性通訊,使得邊界防禦極難封鎖或標記。

增強的隱蔽性可能是透過多種技術結合實現的:

  1. 流量混淆: 採用客製化加密與編碼方案,將 C2 payload 隱藏在看似正常的應用程式流量中,通常使用 DNS over HTTPS (DoH) 或 Port 443 上的標準 HTTPS 等協定。
  2. 低速且緩慢的通訊: 實作具備隨機化 (jittered) 的通訊排程,透過長延遲和小規模資料傳輸來避免觸發基於流量體積的安全性警示與行為分析引擎。
  3. Process Hollowing/Injection: 藉由將其 payload 注入合法的、信任的程序(例如: explorer.exe svchost.exe )中運作,以規避監控可疑程序建立的端點偵測與回應 (Endpoint Detection and Response, EDR) 系統。

報告中提到的更高外洩吞吐量指向了資料傳輸機制中的最佳化。這可能涉及在加密前使用高效的壓縮演算法(例如:LZ4 或 Zstandard),並利用對 Cloud-native C2 基礎設施的平行、多執行緒連線,使攻擊者在取得網域主導權後能夠快速提取大量敏感資料。

結論

所分析的運作方法展示了高度的技術複雜性與嚴謹性。將利用已知但經常管理不當的 Web 漏洞 (ViewState 反序列化) 進行初始存取,與部署分散式、以受害者為基礎的 C2 中繼網路 (ShadowPad IIS Listener) 相結合,建立了一個高度韌性且隱蔽的入侵基礎設施。客製化工具(如 FinalDraft 後門)的不斷精進,突顯了一個專注於長期間諜活動且具備持續性的能力威脅族群。防禦策略必須優先考慮 Web 應用程式設定(特別是 machineKey 數值)的嚴格管理,並實作能夠偵測與合法 Web 流量混合的細微、Multi-hop C2 通訊的進階網路流量分析。


參考文獻

  1. Ink Dragon's Relay Network and Stealthy Offensive Operation