
C2サーバーフィンガープリンター — Cobalt Strike、Sliver、Mythic、Havoc、Brute Ratel
ビーコンの背後にあるC2サーバーをフィンガープリントする。 ネットワークテレメトリを指定すると、コマンドアンドコントロールフレームワーク — Cobalt Strike、Sliver、Mythic、Havoc、Brute Ratel、その他11以上 — を、信頼スコアと一致した正確なインジケーターとともに特定します。
ブルーチーム / 防御側: テレメトリから既知のC2インフラストラクチャを検出します。デフォルトではパッシブ。アクティブプローブはオプトインで、認可が必須です。
pip install cognis-c2detect
c2detect scan . # → prioritized C2 findings in seconds, offline
再現可能な実際の出力 — キャプチャした観測結果を指定すると、フレームワークをフィンガープリントします:
$ c2detect scan demos/01-cobalt-strike-network/observations.json
host: 203.0.113.10
jarm=07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1 port=443
CONF SEV FAMILY INDICATORS
-----------------------------------------
48 critical Cobalt Strike jarm, port
TOP: Cobalt Strike (48% / critical)
- jarm [+42] matched '07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1'
- port [+6] matched '443'
c2detect: 3 C2 indicator(s) across 3 observation(s)
JA4/JARM/証明書/URI/ポートの各指標を、同梱のシグネチャDBと照合して融合し、それらのシグネチャからすぐにデプロイ可能なSigmaおよびSuricataルールを出力できます(c2detect rules)。これにより、検知結果をそのままSIEM/IDSに投入できます。
| 脅威インテリジェンスIPリスト | JARM単体 | c2detect | |
|---|---|---|---|
| C2フレームワークを特定する(単なる「悪性IP」ではない) | ✗ | 部分的 | ✅ |
| JA4 + JARM + 証明書 + URI + ポートの融合 | ✗ | ✗ | ✅ |
| 信頼スコア + 一致した指標 | ✗ | ✗ | ✅ |
| Sigma / Suricataルールを生成 | ✗ | ✗ | ✅ |
| キャンペーンの相関(共有インフラストラクチャ) | ✗ | ✗ | ✅ |
| オフラインで動作、実行時依存ゼロ | さまざま | ✓ | ✅ |
$ c2detect-emit --help
usage: c2detect [-h] [--version]
{scan,match,db,rules,feeds,correlate,probe,self-check,mcp} ...
Fingerprint-match TLS/network observations against a bundled database of known
C2 frameworks (JA4/JARM/cert/URI/port indicators). Defensive triage only.
positional arguments:
{scan,match,db,rules,feeds,correlate,probe,self-check,mcp}
scan Scan JSON observation files / telemetry text / dirs /
stdin.
match Match explicit indicators (--ja4/--jarm/--port/...).
db List the bundled C2 signature database.
rules Generate Sigma / Suricata detection rules from the
signature DB.
feeds List/update/get the live abuse.ch Feodo-C2 + SSLBL
threat-intel feeds c2detect consumes (keyless; cached;
offline re-serve).
correlate Cluster many observations into shared-infrastructure
campaigns (same JARM/JA4S/cert across hosts = one
operator's estate).
probe AUTHORIZED ACTIVE: TLS-fingerprint a consented
host:port in scope (default OFF; needs --authorized +
--target-allowlist + rate limit).
self-check Scan bundled demo scenarios and report C2 detection
coverage.
mcp Run the MCP server (stdio JSON-RPC).
options:
-h, --help show this help message and exit
--version show program's version number and exit
$ c2detect-emit self-check
c2detect self-check — bundled scenario coverage
================================================
[DETECT ] 01-basic Cobalt Strike
[DETECT ] 01-cobalt-strike-network Cobalt Strike
[DETECT ] 02-deep Cobalt Strike
[DETECT ] 02-mixed-frameworks Brute Ratel C4, Mythic, Sliver
[DETECT ] 03-behavioral Cobalt Strike
[CLEAN ] 03-benign-baseline (quiet)
[DETECT ] 04-sliver-mtls Cobalt Strike, Sliver
[DETECT ] 05-havoc-demon Havoc
[DETECT ] 06-mythic-agent Mythic
[DETECT ] 07-brute-ratel Brute Ratel C4
[DETECT ] 08-adaptixc2-teamserver AdaptixC2
[DETECT ] 09-metasploit-meterpreter Metasploit / Meterpreter
[DETECT ] 10-empire-windows PowerShell Empire
[DETECT ] 11-multi-framework-incident AdaptixC2, Cobalt Strike, Havoc, Sliver
[DETECT ] 12-threat-hunt-jarm-sweep Cobalt Strike, Sliver
[feeds/corr] 13-threat-intel-feeds (non-signature demo)
[DETECT ] 14-campaign-correlation Cobalt Strike, Metasploit / Meterpreter
------------------------------------------------
malicious detected : 14/14
benign clean : 1/1
frameworks exercised: 8/21 in DB
status : HEALTHY
$ c2detect-emit db
FAMILY SEV INDICATORS
------------------------------------------------------
Brute Ratel C4 critical ja3:1, jarm:1, uri:3, cert_quirk:2, port:2
Cobalt Strike critical ja4s:1, ja3:1, ja3s:1, jarm:1, uri:5, uri_regex:1, http_banner:2, user_agent:1, cert_quirk:3, beacon:1, port:3
Metasploit / Meterpreter critical ja3:1, jarm:1, uri:3, cert_quirk:2, port:3
AdaptixC2 high uri:3, http_banner:4, cert_quirk:1, port:4
Covenant high jarm:1, uri:3, http_banner:1, cert_quirk:1, port:3
Godzilla WebShell high uri:3, uri_regex:1, cert_quirk:1, port:3
Havoc high jarm:1, uri:3, http_banner:1, port:3
Mythic high jarm:1, uri:2, http_banner:1, port:3
PoshC2 high uri:4, cert_quirk:2, port:2
PowerShell Empire high ja3:1, uri:3, http_banner:1, port:3
Pupy RAT high ja3:1, uri:2, cert_quirk:2, port:3
SILENTTRINITY high uri:3, http_banner:1, beacon:1, port:3
Sliver high ja4:1, ja4x:1, jarm:1, uri:5, cert_quirk:2, beacon:1, port:3
Caldera (MITRE) medium uri:4, http_banner:1, beacon:1, port:5
Deimos C2 medium uri:3, http_banner:1, port:2
Koadic medium uri:3, user_agent:1, port:3
Merlin medium uri:2, http_banner:1, cert_quirk:1, port:1
NimPlant medium uri:3, http_banner:1, user_agent:1, beacon:1, port:2
Villain medium uri:3, http_banner:2, user_agent:1, port:3
Generic Beaconing Heuristic low beacon:1, port:6
Generic Self-Signed C2 Heuristic low cert_quirk:4, port:5
21 families in bundled signature DB.
上記のブロックは実際の
c2detect出力です — クローンから再現してください。
c2detect は防御的な C2 インフラストラクチャのトリアージツールです。テレメトリ/観測レコードを同梱のシグネチャ DB と照合し、ビーコニング、疑わしい TLS フィンガープリント、ステージング URI を検出します。デフォルトではパッシブです — scan/match/correlate/db/rules は提供された入力を読み取るだけで、ネットワーク呼び出しを行いません(オプションの --feeds は公開 abuse.ch インテリジェンスフィードを取得するだけで、キャッシュから完全にオフラインで実行できます)。別途、オプトインで認可が必須のアクティブプローブ(c2detect probe)は、評価を許可された同意済みホストの TLS フィンガープリントを取得できます — パッシブ vs. アクティブを参照してください。