C2 理論篇

NPCMike Lv.99

目錄

前言

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

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

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

定義

根據 MITRE ATT&CK TA0011 定義可知,Command and Control ( 又名 C2 C&C attack ),是在已被控制的系統或裝置進行溝通的一系列技術,攻擊者會透過它們下達指令 ( C2 Server )、回傳資料 ( 資料外洩 ),或下載惡意軟體以執行惡意行為,同時為了因應各種不同的網路架構與防禦強度,攻擊者可選擇不同的C2技術以達到隱蔽性或是快速等等多種目的達成目標。

C2 通訊模型

分為三大類

  1. Client - Server

    • 攻擊者控制一台中央伺服器 ( C2 Server ) ,受害端們(Client)會連線至該伺服器取得指令、回傳結果。
  2. Peer to Peer ( P2P )

    • 每個感染主機既是 Client 也是 中繼 Server
    • 無需中央 C2 Server,彼此分享 C2 指令(通常有加密和簽章驗證)
    • 通常有 egrass 作為輸出結果回傳的出口
    • 拓樸類似區塊鏈或 BitTorrent
  3. Multi-Stage

    • 分為多個階段執行:
      • 第一階段(Stage 1):使用簡單協定與偽裝,例如 HTTPS beacon
      • 第二階段(Stage 2):載入更強的 C2 模組(如 SOCKS proxy、P2P、Domain Fronting)
    • 可整合 fallback 通道與模組熱切換

C2 通訊行為

以下將會介紹常見或是較為重要的通訊行為種類

Client - Server

  1. Beacon

    • 原理
      • 被感染的裝置 ( Victim, Client ) 定時向 C2 Server 發送 check-in ( 詢問 ) 封包
        • 通常是 HTTP POSTDNS Query
        • 詢問是否有任務
      • 有則將結果於下次時間回傳
        • 封包內通常包含
          • timestamp
          • host info
          • execute result ( 加密 )
      • 無則繼續等待下次詢問
    • 最常見的 C2 模式,因其容易實作
    • 行為可用模型預測,可加上 Jitter ( 隨機時間 ) 進行規避
    • 常用工具為 Cobalt Strike Beacon
  2. Reverse Shell

    • 原理
      • C2 Server 開啟 Listener
      • ClientC2 Server 開的 ip:port 進行 Outbound TCP 連線 ( 通常 )
      • 即開啟互動式 Shell 通道,類 ssh
      • 其封包傳輸為雙向持續性 ( 與 Beacon 不同 )
    • 用於初期快速控制具有即時性,但容易被發現
    • 常用工具
      • Metasploit Reverse TCP/HTTPS
      • Cobalt Strike Reverse Shell Listener
      • Sliver Reverse Session
  3. WebSocket / HTTP2

    • 可看成改良版的 Reverse Shell,但使用現代協議 ( WebSocket 或 HTTP/2 ) 建立持久化的雙向連線
    • HTTP Upgrade 建立 WebSocket 連線後可持續雙向通訊
    • 使用 moultiplexing and header pack (HPACK) 更難被傳統的 WAF 檢測到
    • 使用 port 號於 443 port ( 與正常的HTTPS混用,加大檢測難度 )
    • 常用工具
      • Mythic (WebSocket C2)
      • Sliver HTTP/2 Mode
      • Merlin C2

Peer to Peer

  1. Full Mesh
    • 每個node 都與其他node相連
    • 去中心化
    • 具高容錯性與路由彈性
    • 實際應用於小規模的 C2 中,因節點指數增加幅度呈 n(n-1)/2 成長
    • Full Mesh
  2. Supernode + Leaf
    • 節點分為:
      • Supernode:具備較強資源(CPU、頻寬),負責管理多個下層葉節點
      • Leaf Node:只連到 Supernode,不彼此通信
    • 資源索引、搜尋、轉發皆由 Supernode 控制
  3. Hybrid P2P + Cenralized
    • P2P 架構中加入「中心節點」
          • 中心節點僅負責登入、節點分發、任務通知
      • 實際資料交換仍走 P2P
    • 結合了中央管理的可靠性 + P2P 的高效率
    • 中心節點為 C2 Coordinator / Tracker
    • 好搜尋、維運性強
    • 中心節點為明顯攻擊點
  4. 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
    • 主要負載階段
    • 方法:
      • 使用 WebSocket OR HTTAP/S OR 自定義的加密協議,去部屬 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.
Commentaires