分析 CobaltStrike Malleable C2 設定檔
概述
Cobalt Strike Malleable C2 設定檔是一種領域特定語言腳本,用於自訂 Beacon 與團隊伺服器之間的通訊方式,定義 HTTP 請求和回應轉換、休眠間隔、抖動值、User-Agent 字串、URI 路徑以及程序注入行為。威脅行為者利用 malleable 設定檔將 C2 流量偽裝成合法的服務(如 Amazon、Google、Slack)。分析這些設定檔可以揭示網路偵測所需的指標:URI 模式、HTTP 標頭、POST/GET 轉換、DNS 設定以及程序注入技術。dissect.cobaltstrike 函式庫能解析設定檔,並從 Beacon 酬載中提取配置;而 pyMalleableC2 則提供基於 Lark 文法的 AST 解析,用於程式化的設定檔操作和驗證。
使用時機
- 調查需要分析 CobaltStrike malleable C2 設定檔的安全事件時
- 為此領域建立偵測規則或威脅狩獵查詢時
- SOC 分析師需要此類分析的結構化流程時
- 驗證相關攻擊技術的安全監控涵蓋範圍時
先決條件
- Python 3.9+ 並安裝
dissect.cobaltstrike及/或pyMalleableC2 - 範例 Malleable C2 設定檔(可從公開儲存庫取得)
- 了解 HTTP 協定與 Cobalt Strike Beacon 通訊模型
- 用於部署特徵的網路監控工具(Suricata/Snort)
- 用於流量驗證的 PCAP 分析工具
步驟
- 安裝函式庫:
pip install dissect.cobaltstrike或pip install pyMalleableC2 - 使用
C2Profile.from_path("profile.profile")解析設定檔 - 提取 HTTP GET/POST 區塊配置(URI、標頭、參數)
- 識別 User-Agent 字串與偽裝目標
- 提取休眠時間、抖動百分比及 DNS Beacon 設定
- 分析程序注入設定(spawn-to、配置手法)
- 從提取的網路指標產生 Suricata/Snort 特徵
- 將設定檔與已知威脅行為者的設定檔集合進行比對
- 提取分段 URI 與酬載傳遞機制
- 產出包含 IOCs 與建議網路特徵的偵測報告
預期輸出
一份 JSON 報告,內容包含提取的 C2 URI、HTTP 標頭、User-Agent、休眠/抖動設定、程序注入配置、衍生程序路徑、DNS 設定,以及產生的 Suricata 相容偵測規則。