Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hka-seminar-log4shell — Demostración práctica de la vulnerabilidad Log4Shell (CVE-2021-44228) | Kitploit
Herramientas/GitHubGitHub/fabioeletto/hka-seminar-log4shell
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubfabioeletto/hka-seminar-log4shell

hka-seminar-log4shell

Demostración práctica de la vulnerabilidad Log4Shell (CVE-2021-44228)

Ver Repositorio
1hace 1 añoAú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

Trabajo de Seminario - Demostración de la Vulnerabilidad Log4Shell (CVE-2021-44228)

Aviso de Seguridad

Este repositorio es exclusivamente para fines educativos y de demostración en el contexto de un trabajo de seminario relacionado con la seguridad. No utilice este código en entornos de producción ni contra sistemas sin permiso explícito. La configuración tiene como objetivo fomentar la conciencia de seguridad y mostrar cómo pueden surgir vulnerabilidades complejas cuando se combinan características aparentemente inofensivas como el registro, la resolución de nombres y la carga dinámica de clases.

Índice de contenidos

  • 1. Descripción del proyecto

    • 1.1 Objetivo del trabajo de seminario
    • 1.2 Resumen de la demostración
  • 2. ¿Qué es Log4Shell?

  • 3. Componentes técnicos en detalle

    • 3.1 Log4j - Funcionamiento
    • 3.2 JNDI - Mecanismo de búsqueda
    • 3.3 LDAP - Estructura y rol
    • 3.4 Flujo general de Log4Shell
  • 4. Estructura del proyecto y configuración

    • 4.1 Resumen de directorios
    • 4.2 Requisitos previos
    • 4.3 Configuración
  • 5. Demo del proyecto

  • 6. Medidas de protección

  • 7. Conclusión

  • 8. Fuentes

1. Descripción del proyecto

1.1 Objetivo del trabajo de seminario

El objetivo de este trabajo de seminario es proporcionar una comprensión profunda de la vulnerabilidad Log4Shell (CVE-2021-44228), que se hizo conocida en diciembre de 2021 y fue clasificada como una de las vulnerabilidades de seguridad más críticas de los últimos años. En el trabajo se explican tanto los fundamentos teóricos como se muestra una demostración práctica de la vulnerabilidad.

1.2 Resumen de la demostración

Para la ilustración práctica de la vulnerabilidad Log4Shell, se ha creado en este repositorio un entorno aislado y contenerizado que reproduce el flujo completo del ataque de manera reproducible. La demostración se basa en tres componentes centrales:

  • vulnerable-app: Una aplicación Spring Boot intencionalmente vulnerable con Log4j en la versión 2.14.1. Registra el encabezado User-Agent de la solicitud HTTP, que los atacantes pueden manipular para explotar la vulnerabilidad.
  • ldap-server: Un fork de la conocida herramienta marshalsec, que actúa como servidor LDAP. Este servidor está bajo el control del atacante y proporciona una referencia a una clase Java maliciosa que se ejecutará más tarde.
  • payload-server: Un servidor HTTP simple que entrega una clase Java maliciosa (Exploit.class). Al igual que el servidor LDAP, este servidor está bajo el control del atacante.

Nota: Se puede encontrar información más detallada sobre la configuración y la ejecución de la demostración en las secciones 4. Estructura del proyecto y configuración y 5. Demo del proyecto.

2. ¿Qué es Log4Shell?

Log4Shell es el nombre de una vulnerabilidad de seguridad crítica en la biblioteca Java Log4j con la designación CVE-2021-44228. Permite a un atacante ejecutar código arbitrario en un servidor remoto (Remote Code Execution, RCE) con un esfuerzo mínimo.

La vulnerabilidad afecta a Log4j en las versiones 2.0 a 2.14.1 y es tan grave que muchas autoridades de seguridad, incluyendo la BSI (Oficina Federal de Seguridad de la Información de Alemania), la han clasificado con el nivel de riesgo más alto.

Log4Shell es especialmente peligrosa porque...

  • Log4j está extremadamente extendido. Se utiliza desde servidores de juegos hasta aplicaciones empresariales.
  • No se requiere autenticación, cualquier atacante externo anónimo puede potencialmente causar daños.
  • El vector de ataque es trivial; a menudo basta con enviar una cadena manipulada a la aplicación.
  • La funcionalidad en Log4j para explotar esta vulnerabilidad está activada por defecto.

La causa real radica en una funcionalidad de Log4j que permite cargar contenido dinámico en mensajes de registro a través de las llamadas búsquedas (lookups). En combinación con JNDI (Java Naming and Directory Interface) y el protocolo LDAP (Lightweight Directory Access Protocol), esto permite cargar y ejecutar clases Java maliciosas remotas.

El descubrimiento y la publicación de la vulnerabilidad desencadenaron una ola de seguridad a nivel mundial. Muchos sistemas tuvieron que ser parcheados o desconectados de inmediato. Posteriormente, se dieron a conocer otras vulnerabilidades relacionadas (por ejemplo, CVE-2021-45046), lo que demuestra la profundidad y peligrosidad del problema.

A continuación, se explican en detalle las tecnologías involucradas y su interacción para desarrollar una comprensión más profunda de la vulnerabilidad.

3. Componentes técnicos en detalle

3.1 Log4j - Funcionamiento

Log4j es una biblioteca creada por Apache para el registro de eventos en aplicaciones Java. El registro (logging) es una herramienta central en el desarrollo de software para monitorear sistemas o analizar errores. Log4j es uno de los frameworks de registro más conocidos y utilizados en el ecosistema Java y se emplea tanto en aplicaciones pequeñas como en grandes sistemas empresariales.

¿Por qué es importante el registro?

Mientras un programa se ejecuta, ocurren eventos como:

  • Solicitudes de usuarios
  • Cambios de estado internos
  • Mensajes de error

Estos eventos se pueden documentar con logs, generalmente como salida de texto en la consola, en archivos o a través de protocolos de red hacia servidores de registro centralizados. Mediante un registro adecuado, se puede rastrear qué hizo una aplicación y cuándo.

¿Qué ofrece Log4j?

Log4j proporciona una infraestructura flexible y altamente configurable para la generación y procesamiento de mensajes de registro. Entre las funciones centrales se incluyen:

  • Niveles de registro (Log Levels): Existen diferentes niveles de importancia (por ejemplo, DEBUG, INFO, WARN, ERROR) que permiten controlar el nivel de detalle del registro.
  • Appenders: Las salidas de registro pueden dirigirse a diferentes destinos (por ejemplo, consola, archivo o servidores remotos).
  • Layouts: Con los layouts se define el formato del mensaje de registro (por ejemplo, marca de tiempo, hilo, mensaje).

Otras características relevantes para este trabajo de seminario se tratan en secciones posteriores, especialmente la funcionalidad de marcadores de posición y la funcionalidad de búsqueda (lookup).

Ejemplo simple```java

import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;

public class Example { private static final Logger logger = LogManager.getLogger();

Descargar herramienta