C2 理論篇
這篇是 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
自定義階段。
方法:
- 根據目標動態載入需要的模組。
- 可能包含橫向移動工具、憑證收集器、資料外洩模組等。
優缺點比較
| 項目 | Beacon | Reverse Shell | WebSocket/HTTP2 | P2P | Multi-Stage |
|---|---|---|---|---|---|
| 通訊方式 | 單向、階段性 | 雙向、即時 | 雙向、即時 | 多向、分散式 | 混合、分階段 |
| 封包協議 | HTTP/DNS | TCP/HTTPS | WebSocket/HTTP2 | 自定義/混合 | 多協議組合 |
| 偽裝性 | 高 | 低 | 很高 | 中等 | 極高 |
| 傳輸模式 | 輪詢 | 持續連線 | 持續連線 | 分散式路由 | 分階段傳輸 |
| 檢測難度 | 中等 | 低 | 高 | 高 | 極高 |
| 技術複雜度 | 低 | 低 | 中等 | 高 | 極高 |
| 韌性 | 低 | 低 | 中等 | 高 | 極高 |
| 延遲性 | 高 | 低 | 低 | 中等 | 視階段而定 |
小結論
C2 技術作為現代網路攻擊的核心組成部分,其技術複雜性和檢測難度持續增加。本篇透過系統性分析 C2 的技術定義、架構模型、通訊行為,快速說明 C2 技術的框架。
從技術架構角度來看,C2 系統正在從傳統 Client-Server 星型架構,向更加複雜的 P2P 網狀架構和 Multi-Stage 分層架構演進。這種演進不僅提高了攻擊的隱蔽性和韌性,也為防禦者帶來挑戰。
原本會在此加入真實案例分析,但因篇幅修訂問題,改成於實戰篇分析實際案例。
最後強調,C2 技術的研究和應用必須在合法合規的框架內進行。無論是紅隊演練還是藍隊防禦,都應以提升整體網路安全水準為目標。
參考資料
- Fortinet
- C2 複刻
- Medium APT28
- FireEye APT28
- Cobalt Strike
- Title: C2 理論篇
- Author: NPCMike
- Created at : 2025-07-04 00:00:00
- Updated at : 2026-05-13 16:49:36
- Link: https://npcmike.github.io/2025/07/04/C2-理論篇/
- License: This work is licensed under CC BY-NC-SA 4.0.