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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Log4JShell-Bytecode-Detector — Escáner local de bytecode para la vulnerabilidad Log4JShell (CVE-2021-44228) | Kitploit
Herramientas/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
Análisis EstáticoEscáneres de VulnerabilidadesAnálisis de CódigoAnálisis de BinariosSeguridad de Cadena de SuministroRespuesta a Incidentes
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

Escáner local de bytecode para la vulnerabilidad Log4JShell (CVE-2021-44228)

Ver RepositorioSitio web
49916hace 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

🔍 Detector de Bytecode Log4JShell

Log4jShell Bytecode Detector es una herramienta de código abierto que ayuda a identificar si un archivo jar está afectado por la vulnerabilidad crítica CVE-2021-44228. La herramienta escanea el archivo jar y compara las clases con un conjunto de hashes vulnerables de clases dentro del archivo jar. Los hashes se han precalculado para artefactos en Maven Central.

ACTUALIZACIÓN IMPORTANTE: Ampliamos la lista de artefactos afectados en Maven Central. La lista contiene 18.816 artefactos. Los artefactos usan log4j-core como dependencia declarada, o identificamos archivos .class dentro de los artefactos que coinciden con las versiones afectadas de log4j-core.

📝 Cómo ejecutar

  1. Descargue el archivo jar de la sección de versiones.
  2. Ejecute java -cp <RUTA_AL_JAR_DESCARGADO> de.codeshield.log4jshell.Log4JDetector <RUTA_ABSOLUTA_AL_JAR_A_VERIFICAR>

Si el archivo jar está afectado, la herramienta muestra información en la línea de comandos:

CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 Cómo ejecutar en un servidor en vivo (sin necesidad de detener sus instancias Java en ejecución)

  1. Descargue el archivo jar de la sección de versiones.
  2. Ejecute java -cp <RUTA_AL_JAR_DESCARGADO> de.codeshield.log4jshell.Log4JProcessDetector
  3. El jar busca en el classpath de todos los procesos Java en ejecución instancias vulnerables de log4j

❓ Antecedentes sobre CVE-2021-44228

Se ha descubierto una grave vulnerabilidad de ejecución remota de código en log4j, y las versiones 2.0-beta9 a 2.14 están afectadas. La vulnerabilidad ha sido clasificada como crítica, ya que afecta a log4j, una de las bibliotecas de registro más utilizadas para Java. Hay muchas referencias y artículos disponibles.

  • Hackernews
  • BSI (solo alemán)
  • Proof of Concept for exploiting the vulnerability
  • Log4JShell Cheat Sheet

👀 ¿Por qué es importante?

Log4j se usa y se ha usado en prácticamente cualquier proyecto Java con fines de registro. Ahora necesitamos entender qué proyectos y bibliotecas están realmente afectados. Debido al mecanismo de dependencias de Java, una aplicación también puede verse afectada si incluye la versión vulnerable de la biblioteca de forma transitiva. Un proyecto A incluye una biblioteca lib de forma transitiva si una de las dependencias directas B de A tiene una dependencia de lib. Una prueba sencilla para ver si uno está afectado se puede hacer usando el árbol de dependencias de Maven:

Ejemplo: Ejecute el comando mvn dependency:tree en un proyecto Maven.

[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

Sin embargo, esta comprobación es solo una primera indicación y no es suficiente por las siguientes razones:

Los programas Java frecuentemente:

  • se empaquetan como fatjar o uberjar: todos los archivos de clase (incluidas las dependencias directas y transitivas) se distribuyen en un solo archivo jar. (como hacemos para este artefacto de software)
  • se reempaquetan o reempaquetan: los nombres de paquetes originales se cambian para evitar conflictos de nombres (algunos compiladores y mecanismos de empaquetado aplican transformaciones de código)
  • se recompilan: el código fuente se compila con un compilador diferente y se empaqueta como nuevo, lo que lleva a un bytecode modificado

En consecuencia, cualquier biblioteca que use un proyecto Java puede incluir la vulnerabilidad en su proyecto. Un análisis profundo de bytecode ayuda, que es lo que publicamos como parte de este repositorio.

📕 El script

  1. Extraer archivos pom.xml del .jar
  2. Verificar dependencias declaradas contra una lista precalculada de groupId:artifactId:version afectados para artefactos alojados en Maven Central
  3. Extraer archivos .class del .jar
  4. Calcular hashes SHA del archivo de clase
  5. Comparar los SHA con una lista precalculada

🛠 Instrucciones de compilación

Para compilar esta herramienta ejecute

mvn compile

Para ensamblar un jar ejecutable use

mvn clean compile assembly:single

💡 Hashes Precalculados de Clases Vulnerables

El conjunto de hashes vulnerables de clases se ha precalculado en todo el repositorio Maven Central. Los hashes de las clases contienen todos los hashes que identificamos como similares en bytecode utilizando la tecnología de Fingerprinting.

La información precalculada contiene:

  • todos los artefactos que incluyen directamente log4j en alguna de las versiones vulnerables
  • todos los artefactos que distribuyen una clase que contiene un hash vulnerable de log4j en el rango de versiones afectadas
  • todos los artefactos que reempaquetan una clase vulnerable de log4j
  • todos los artefactos que tienen una clase recompilada de una clase de log4j en el rango de versiones afectadas

Como rango de versiones afectadas consideramos [2.0-beta9, 2.15) Referencia.

💻 Tecnología de Fingerprinting

Esta herramienta utiliza una nueva tecnología de fingerprinting de bytecode para Java inventada por Andreas Dann. El flujo básico es el siguiente.

  1. Utilizar los commits de corrección disponibles Commit1, Commit2 y Commit3 para identificar qué clases están afectadas.
  2. Calcular "Fingerprints" de bytecode de las clases vulnerables.
  3. Buscar otras clases en MavenCentral con el mismo "Fingerprint".

Nota: Para una implementación más sencilla, este repositorio incluye hashes SHA de las clases vulnerables; la información se ha calculado usando Fingerprinting

📌 Aviso legal

La lista de hashes y artefactos Maven no está completa. Actualizaremos las listas regularmente.

📯 Contribuidores

Esta herramienta fue co-creada por los cofundadores de CodeShield

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

¡Los comentarios son bienvenidos!

Estamos trabajando en ampliar la lista de artefactos afectados y siempre buscamos mejorar nuestra oferta. contribution welcome

Además, ⭐️ este repositorio si nuestro escáner le ayudó.

✍️ Contacto

Si necesita soporte o quiere conocer nuestra tecnología, contáctenos en [email protected].

Su equipo de CodeShield 💚

Descargar herramienta