← 回到筆記

FIELD NOTES /

C2 理論篇

以 MITRE ATT&CK TA0011 為主軸,整理 C2 的定義、通訊模型、常見行為與各架構優缺點。

#C2#Research

這篇是 C2 理論筆記,從 MITRE ATT&CK TA0011 出發,整理 Command and Control 的定義、Client-Server、P2P、Multi-Stage 架構,以及常見通訊行為的優缺點。

前言

撰寫本篇的契機,源於對資安研究的興趣,尤其未來實習工作中有可能接觸 C2 技術與紅隊攻擊鏈,因此特此整理與紀錄所學,作為學習筆記與知識累積的一部分。

本篇將依據 MITRE ATT&CK TA0011 Command and Control 進行技術定義與實務研究,內容涵蓋常見技術、架構類型與攻防觀點。

所有實作或流程圖將會於實戰篇內撰寫,本文只簡介原理與優缺點。

定義

根據 MITRE ATT&CK TA0011 定義,Command and Control,又稱 C2 或 C&C,是攻擊者與已被控制的系統或裝置進行溝通的一系列技術。

攻擊者會透過 C2 Server 下達指令、回傳資料,或下載惡意軟體以執行惡意行為。為了因應各種不同的網路架構與防禦強度,攻擊者可選擇不同的 C2 技術,以達到隱蔽性、快速控制或高韌性等目的。

C2 通訊模型

C2 通訊模型可分為三大類:

  • Client - Server
  • Peer to Peer
  • Multi-Stage

Client - Server

攻擊者控制一台中央伺服器,也就是 C2 Server。受害端 Client 會連線至該伺服器取得指令並回傳結果。

特點:

  • 架構簡單,容易實作。
  • 管理集中,操作方便。
  • 中央 C2 Server 容易成為明顯攻擊點。

Peer to Peer

每個感染主機既是 Client,也是中繼 Server。

特點:

  • 無需中央 C2 Server。
  • 節點彼此分享 C2 指令,通常會搭配加密和簽章驗證。
  • 通常會有 egress 節點作為輸出結果回傳的出口。
  • 拓樸類似區塊鏈或 BitTorrent。

Multi-Stage

Multi-Stage 會分為多個階段執行。

階段說明
Stage 1使用簡單協定與偽裝,例如 HTTPS beacon
Stage 2載入更強的 C2 模組,例如 SOCKS proxy、P2P、Domain Fronting

特點:

  • 可整合 fallback 通道。
  • 可支援模組熱切換。
  • 隱蔽性與彈性較高。

C2 通訊行為

以下介紹常見或重要的 C2 通訊行為。

Client - Server 類型

Beacon

Beacon 是最常見的 C2 模式。

原理:

  • 被感染的裝置 Victim / Client 定時向 C2 Server 發送 check-in 封包。
  • 通常使用 HTTP POST 或 DNS Query。
  • Client 詢問是否有任務。
  • 有任務則執行,並於下次連線時回傳結果。
  • 無任務則繼續等待下次詢問。

封包內通常包含:

  • timestamp
  • host info
  • execute result

特點:

  • 容易實作。
  • 行為可用模型預測。
  • 可加上 Jitter 隨機時間進行規避。
  • 但研究指出,就算加入 Jitter,仍可能被預測出來。

常用工具:

  • Cobalt Strike Beacon

Reverse Shell

Reverse Shell 用於初期快速控制,具有即時性,但也容易被發現。

原理:

  • C2 Server 開啟 Listener。
  • Client 對 C2 Server 的 IP 與 port 進行 outbound TCP 連線。
  • 建立互動式 Shell 通道,類似 SSH。
  • 封包傳輸為雙向、持續性,與 Beacon 不同。

常用工具:

  • Metasploit Reverse TCP/HTTPS
  • Cobalt Strike Reverse Shell Listener
  • Sliver Reverse Session

WebSocket / HTTP2

WebSocket / HTTP2 可視為改良版 Reverse Shell,使用現代協議建立持久化雙向連線。

特點:

  • HTTP Upgrade 建立 WebSocket 連線後可持續雙向通訊。
  • HTTP/2 使用 multiplexing 與 HPACK,更難被傳統 WAF 檢測。
  • 通常使用 443 port,與正常 HTTPS 混用,加大檢測難度。

常用工具:

  • Mythic WebSocket C2
  • Sliver HTTP/2 Mode
  • Merlin C2

Peer to Peer 類型

Full Mesh

每個 node 都與其他 node 相連。

特點:

  • 去中心化。
  • 高容錯性與路由彈性。
  • 適合小規模 C2。
  • 節點增加時連線數會依 n(n-1)/2 成長。

Supernode + Leaf

節點分為兩類:

  • Supernode:具備較強資源,例如 CPU、頻寬,負責管理多個下層葉節點。
  • Leaf Node:只連到 Supernode,不彼此通信。

特點:

  • 資源索引、搜尋、轉發皆由 Supernode 控制。
  • 管理性比 Full Mesh 好。

Hybrid P2P + Centralized

在 P2P 架構中加入中心節點。

中心節點負責:

  • 登入
  • 節點分發
  • 任務通知

實際資料交換仍走 P2P。

特點:

  • 結合中央管理的可靠性與 P2P 的高效率。
  • 中心節點可作為 C2 Coordinator / Tracker。
  • 搜尋與維運性強。
  • 中心節點仍是明顯攻擊點。

Layered Peer Tree

Layered Peer Tree 是多層式分級架構,類似企業組織樹狀圖。

特點:

  • 上層節點可控制下層多個節點。
  • 下層節點可再控制下一層節點。
  • 支援更大規模且階層式的任務傳遞與資料擴散。
  • 適合大型 Botnet / C2。
  • 可降低節點曝光風險。
  • 若中層節點失效,可能中斷整層資料傳遞。

Multi-Stage 類型

Multi-Stage 是較特殊的多段式部署。

Stage 0 - Initial Dropper

初始投遞階段。

方法:

  • 使用簡便的下載器,例如 bash script。
  • 建立 foothold。

Stage 1 - Downloader / Loader

下載器階段。

方法:

  • 使用 HTTP/S 搭配強混淆。
  • 從遠端伺服器下載並載入更複雜的 payload。
  • 用於規避靜態檢測。

Stage 2 - Main Payload / RAT

主要負載階段。

方法:

  • 使用 WebSocket、HTTP/S 或自定義加密協議。
  • 部署 C2 proxy 或 Remote Access Trojan。

Stage 3 - Optional Plugins / Lateral Movement

自定義階段。

方法:

  • 根據目標動態載入需要的模組。
  • 可能包含橫向移動工具、憑證收集器、資料外洩模組等。

優缺點比較

項目BeaconReverse ShellWebSocket/HTTP2P2PMulti-Stage
通訊方式單向、階段性雙向、即時雙向、即時多向、分散式混合、分階段
封包協議HTTP/DNSTCP/HTTPSWebSocket/HTTP2自定義/混合多協議組合
偽裝性高低很高中等極高
傳輸模式輪詢持續連線持續連線分散式路由分階段傳輸
檢測難度中等低高高極高
技術複雜度低低中等高極高
韌性低低中等高極高
延遲性高低低中等視階段而定

小結論

C2 技術作為現代網路攻擊的核心組成部分,其技術複雜性和檢測難度持續增加。本篇透過系統性分析 C2 的技術定義、架構模型、通訊行為,快速說明 C2 技術的框架。

從技術架構角度來看,C2 系統正在從傳統 Client-Server 星型架構,向更加複雜的 P2P 網狀架構和 Multi-Stage 分層架構演進。這種演進不僅提高了攻擊的隱蔽性和韌性,也為防禦者帶來挑戰。

原本會在此加入真實案例分析,但因篇幅修訂問題,改成於實戰篇分析實際案例。

最後強調,C2 技術的研究和應用必須在合法合規的框架內進行。無論是紅隊演練還是藍隊防禦,都應以提升整體網路安全水準為目標。

參考資料

  • Fortinet
  • C2 複刻
  • Medium APT28
  • FireEye APT28
  • Cobalt Strike