Снятие отпечатков C2-серверов — Cobalt Strike, Sliver, Mythic, Havoc, Brute Ratel
Определите C2-сервер, стоящий за беконом, по отпечатку. Направьте его на сетевую телеметрию, и он назовёт фреймворк командования и управления — Cobalt Strike, Sliver, Mythic, Havoc, Brute Ratel и ещё 11+ — с оценкой уверенности и точными совпавшими индикаторами.
Blue-team / защитная: обнаружение известной 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/порта с встроенной базой сигнатур — и может выдавать готовые к развёртыванию правила Sigma и Suricata из этих же сигнатур (c2detect rules), так что обнаружение сразу попадает в ваш SIEM/IDS.
| списки IP-адресов threat-intel | только JARM | c2detect | |
|---|---|---|---|
| Называет фреймворк C2 (а не просто «плохой IP») | ✗ | частично | ✅ |
| Объединение JA4 + JARM + сертификат + URI + порт | ✗ | ✗ | ✅ |
| Оценка уверенности + совпавшие индикаторы | ✗ | ✗ | ✅ |
| Генерирует правила Sigma / Suricata | ✗ | ✗ | ✅ |
| Корреляция кампаний (общая инфраструктура) | ✗ | ✗ | ✅ |
| Работает офлайн, без зависимостей во время выполнения | varies | ✓ | ✅ |
$ 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— воспроизведите их из клона.