C2 理論篇

NPCMike Lv.99

這篇是 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.
Comments