C2 理論篇
目錄
前言
撰寫本篇的契機,源於對資安研究的興趣,尤其是未來實習工作中有可能接觸 C2 技術與紅隊攻擊鏈,特此整理與紀錄所學,作為學習筆記與知識累積的一部分。
會本篇將會依據 Mitre ATT&CK TA0011 Command and Control 進行技術定義與實務研究,內容涵蓋其常見技術、架構類型與攻防觀點。
且本篇所有實作或是流程圖將會於實戰篇內進行撰寫,在此只會簡介原理與優缺點。
定義
根據 MITRE ATT&CK TA0011 定義可知,Command and Control ( 又名 C2 C&C attack ),是在已被控制的系統或裝置進行溝通的一系列技術,攻擊者會透過它們下達指令 ( C2 Server )、回傳資料 ( 資料外洩 ),或下載惡意軟體以執行惡意行為,同時為了因應各種不同的網路架構與防禦強度,攻擊者可選擇不同的C2技術以達到隱蔽性或是快速等等多種目的達成目標。
C2 通訊模型
分為三大類
Client - Server
- 攻擊者控制一台中央伺服器 ( C2 Server ) ,受害端們(Client)會連線至該伺服器取得指令、回傳結果。
Peer to Peer ( P2P )
- 每個感染主機既是 Client 也是 中繼 Server
- 無需中央 C2 Server,彼此分享 C2 指令(通常有加密和簽章驗證)
- 通常有
egrass作為輸出結果回傳的出口 - 拓樸類似區塊鏈或 BitTorrent
Multi-Stage
- 分為多個階段執行:
- 第一階段(Stage 1):使用簡單協定與偽裝,例如 HTTPS beacon
- 第二階段(Stage 2):載入更強的 C2 模組(如 SOCKS proxy、P2P、Domain Fronting)
- 可整合 fallback 通道與模組熱切換
- 分為多個階段執行:
C2 通訊行為
以下將會介紹常見或是較為重要的通訊行為種類
Client - Server
Beacon
- 原理
- 被感染的裝置 ( Victim, Client ) 定時向 C2 Server 發送
check-in( 詢問 ) 封包- 通常是
HTTP POST、DNS Query - 詢問是否有任務
- 通常是
- 有則將結果於下次時間回傳
- 封包內通常包含
- timestamp
- host info
- execute result ( 加密 )
- 封包內通常包含
- 無則繼續等待下次詢問
- 被感染的裝置 ( Victim, Client ) 定時向 C2 Server 發送
- 最常見的 C2 模式,因其容易實作
- 行為可用模型預測,可加上
Jitter( 隨機時間 ) 進行規避- 但有研究指出就算加上了,還是可以被預測出( The Jitter-Trap: How Randomness Betrays the Evasive )
- 常用工具為
Cobalt Strike Beacon
- 原理
Reverse Shell
- 原理
C2 Server開啟ListenerClient對C2 Server開的ip:port進行Outbound TCP連線 ( 通常 )- 即開啟互動式 Shell 通道,類
ssh - 其封包傳輸為雙向、持續性 ( 與 Beacon 不同 )
- 用於初期快速控制具有即時性,但容易被發現
- 常用工具
Metasploit Reverse TCP/HTTPSCobalt Strike Reverse Shell ListenerSliver Reverse Session
- 原理
WebSocket / HTTP2
- 可看成改良版的
Reverse Shell,但使用現代協議 ( WebSocket 或 HTTP/2 ) 建立持久化的雙向連線 HTTP Upgrade建立WebSocket連線後可持續雙向通訊- 使用
moultiplexingand header pack (HPACK) 更難被傳統的WAF檢測到 - 使用 port 號於 443 port ( 與正常的HTTPS混用,加大檢測難度 )
- 常用工具
Mythic (WebSocket C2)Sliver HTTP/2 ModeMerlin C2
- 可看成改良版的
Peer to Peer
- Full Mesh
- 每個node 都與其他node相連
- 去中心化
- 具高容錯性與路由彈性
- 實際應用於小規模的 C2 中,因節點指數增加幅度呈 n(n-1)/2 成長

- Supernode + Leaf
- 節點分為:
- Supernode:具備較強資源(CPU、頻寬),負責管理多個下層葉節點
- Leaf Node:只連到 Supernode,不彼此通信
- 資源索引、搜尋、轉發皆由 Supernode 控制

- 節點分為:
- Hybrid P2P + Cenralized
- P2P 架構中加入「中心節點」
- 中心節點僅負責登入、節點分發、任務通知
- 實際資料交換仍走 P2P
- 結合了中央管理的可靠性 + P2P 的高效率
- 中心節點為 C2 Coordinator / Tracker
- 好搜尋、維運性強
- 中心節點為明顯攻擊點

- P2P 架構中加入「中心節點」
- Layered Peer Tree
- 多層式的分級架構,類似企業組織樹狀圖:
- 上層節點可控制下層多個節點(但非全功能超節點)
- 下層節點可再控制下一層節點
- 支援更大規模且階層式的任務傳遞與資料擴散
- 支援多層部署、分層管理
- 適合大型 Botnet / C2,降低節點曝光風險
- 若中層節點失效,會中斷整層資料傳遞

Multi-Stage
較為特殊的多段式的部署
- Stage 0 - Initial Dropper
- 初始投遞階段
- 方法:
- 利用最簡便的下載器 (
bash script),建立foothold( 立足點 )
- 利用最簡便的下載器 (
- Stage 1 - Downloader / loader
- 下載器階段
- 方法:
- 像是使用
HTTP/S+ 強混淆從遠端的伺服器下載並載入更複雜的payload,以規避靜態檢測使用
- 像是使用
- Stage 2 - Main payload / RAT
- 主要負載階段
- 方法:
- 使用
WebSocketORHTTAP/SOR 自定義的加密協議,去部屬C2 proxy或是遠端存取木馬 (Remote Access Trojan)
- 使用
- Stage 3 - Option Plugins / Lateral Movement
- 自訂義階段
- 根據目標動態載入需要的模組,移動工具、憑證收集器、資料外洩模組等
優缺點比較
| 項目 | Beacon | Reverse Shell | WebSocket/HTTP2 | P2P | Multi-Stage |
|---|---|---|---|---|---|
| 通訊方式 | 單向、階段性 | 雙向、即時 | 雙向、即時 | 多向、分散式 | 混合、分階段 |
| 封包協議 | HTTP/DNS | TCP/HTTPS | WebSocket/HTTP2 | 自定義/混合 | 多協議組合 |
| 偽裝性 | 高 | 低 | 很高 | 中等 | 極高 |
| 傳輸模式 | 輪詢 | 持續連線 | 持續連線 | 分散式路由 | 分階段傳輸 |
| 檢測難度 | 中等 | 低 | 高 | 高 | 極高 |
| 技術複雜度 | 低 | 低 | 中等 | 高 | 極高 |
| 韌性 | 低 | 低 | 中等 | 高 | 極高 |
| 延遲性 | 高 | 低 | 低 | 中等 | 視階段而定 |
小結論
C2 ( Command and Control ) 技術作為現代網路攻擊的核心組成部分,其技術複雜性和檢測難度持續增加。本報告通過系統性分析 C2 的技術定義、架構模型、通訊行為,快速的說明 C2 技術的框架,也會有後續說明技術層面的篇幅,可使讀者深入了解 C2 相關技術。
從技術架構角度來看,C2 系統正在從傳統的 Client-Server 星型架構向更加複雜的 P2P 網狀架構和 Multi-Stage 分層架構演進。這種演進不僅提高了攻擊的隱蔽性和韌性,也為防禦者帶來了前所未有的挑戰。
原本會在此加入真實案例分析,但因篇幅修訂問題,改成將於實戰篇進行分析實際案例。
最後強調,C2 技術的研究和應用必須在合法合規的框架內進行。無論是紅隊演練還是藍隊防禦,都應該以提升整體網路安全水準為目標,為構建更加安全的數位世界做出貢獻。
參考資料
- Titre: C2 理論篇
- Auteur: NPCMike
- Créé à : 2025-07-04 20:46:57
- Mis à jour à : 2025-07-17 17:17:22
- Lien: https://npcmike.github.io/2025/07/04/C2-理論篇/
- Licence: Cette œuvre est sous licence CC BY-NC-SA 4.0.



