
CVE-2021-21220 Exploitation infrastructure
Das Opfer besucht eine gehostete Webseite. Der Exploit wird durch Shellcode ausgelöst, der in utils.js eingebettet ist (läuft clientseitig im Browser des Opfers über CVE-2021-21220). Der Shellcode läuft auf dem Rechner des Opfers, ruft den HTTPS-Delivery-Server auf, lädt MicrosoftEdgeUpdate.exe herunter und führt es aus. Sobald es läuft, verbindet sich das Implantat über einen Zwischenhop (C2-Redirector) mit dem C2-Server, verwendet TLS, um ein signiertes Zertifikat zu erhalten, und stellt dann eine erneute Verbindung über vollständiges gegenseitiges TLS her. Der C2-Controller empfängt die Verbindung und zeigt ein interaktives Reverse-Shell-Menü an, das es dem Bediener ermöglicht, Windows-Befehle remote auf dem Rechner des Opfers auszuführen.
Bedrohungsmodell-Diagramm:
Hinweis: Es gibt auch alternative Anleitungen, die etwas detaillierter sind: https://docs.google.com/document/d/1q1xkLOoWJbd6i1exGZA5UIgr2MV8YcwYBWv_PG8luJI/edit?usp=sharing
Klonen Sie das Repository:
git clone https://github.com/JacobTaylor3/Docker-Lab-Milestone-2.git
cd Docker-Lab-Milestone-2
Laden Sie die Windows-Victim-VM von der gemeinsamen Festplatte herunter und importieren Sie sie in VirtualBox. Notieren Sie in VirtualBox: Datei → Extras → Netzwerkmanager die IPv4-Adresse Ihres Host-Only-Adapters (Sie muss sich im Subnetz 192.168.56.0/24 befinden). Welche IP-Adresse auch immer zugewiesen ist (wir empfehlen 192.168.56.1), das ist Ihre echte C2-Maschinen-IP.
Starten Sie Docker Desktop (oder den Docker-Daemon unter Linux).
Windows (WSL)-Benutzer:
launch.shverwendetnetsh, um IP-Aliase zu Ihrem VirtualBox-Adapter hinzuzufügen, was Administratorrechte erfordert. Klicken Sie mit der rechten Maustaste auf Ihre WSL-Distribution (Ubuntu oder die, die Sie verwenden) im Startmenü und wählen Sie Als Administrator ausführen, bevor Sie fortfahren.
Führen Sie das Startskript aus:
sudo ./launch.sh
Wenn Sie nach einer C2-Redirector-IP gefragt werden, geben Sie eine andere Adresse im selben Subnetz ein (z. B. 192.168.56.10). launch.sh fügt sie als IP-Alias auf vboxnet0 hinzu, damit Docker daran binden kann. Das Opfer verbindet sich nur mit diesem Alias – Ihre echte Maschinen-IP bleibt verborgen.
Das Skript wird:
ENROLLMENT_TOKEN, DOWNLOAD_TOKEN)Sobald das Labor läuft, verbinden Sie sich mit dem C2-Controller:
sudo docker attach c2-server
Drücken Sie die Eingabetaste, wenn die Eingabeaufforderung nicht sofort erscheint. Trennen Sie die Verbindung ohne zu stoppen: Strg+P dann Strg+Q.
Starten Sie die Windows-VM. Das Passwort ist victim. Öffnen Sie einen Browser und navigieren Sie zu:
http://<c2-redirector-IP>:8888
Der CVE-2021-21220-Exploit wird automatisch ausgelöst. Der Shellcode lädt MicrosoftEdgeUpdate.exe von https://<c2-redirector-IP>:8443/update/<token> herunter, führt es über einen fodhelper-UAC-Bypass aus, und das Implantat verbindet sich zurück zum C2-Controller.
Die Implant-Sitzung erscheint im Controller-Menü. Wählen Sie sie nach Nummer aus, um die Befehlszeile zu betreten.
Sechs Container, die jeweils eine eigene Maschine repräsentieren:
Zwei Verkehrskanäle, jeder mit einem Redirector-Hop auf einer separaten IP:
:443 mTLS): Opfer → c2-redirector (C2_HOST_IP) → c2-server (nur Backnet):9443 HTTPS): Opfer → exfil-redirector (EXFIL_HOST_IP) → exfil-receiver (nur Exfilnet)Exfil-Daten werden unter exfil-data/<hostname>/ auf der Host-Maschine gespeichert.
# Tail logs
sudo docker logs -f delivery-server
sudo docker logs -f exploit-server
sudo docker logs -f exfil-receiver
# Shell into a container
sudo docker exec -it c2-server /bin/bash
# Stop everything
sudo docker compose down
# View captured exfil data
ls exfil-data/
Siehe documentation/ProjectOverview.md für die vollständige Architektur, Token/Krypto-Pipeline und Payload-Flow.
| Maschine | Container | Port | Rolle |
|---|
| 1 | c2-redirector | :443 | socat-TCP-Relay – opferseitiger Hop, verbirgt echte C2-IP |
| 2 | c2-server | (nur Backnet) | mTLS-C2-Listener – Bedienerbefehlschnittstelle |
| 3 | delivery-server | :8443 | nginx HTTPS – Einmal-Token-Implant-Download |
| 4 | exploit-server | :8888 | CVE-2021-21220 Exploit-Webseite |
| 5 | exfil-redirector | :9443 | socat-TCP-Relay – opferseitiger Hop, verbirgt echte Exfil-IP |
| 6 | exfil-receiver | (nur Exfilnet) | HTTPS-POST-Senke – speichert Screenshots, Keylogs, Zugangsdaten |