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
log4jcheck — Un script que comprueba sistemas vulnerables a Log4j (CVE-2021-44228) mediante la inyección del payload en cabeceras HTTP comunes. | Kitploit
Herramientas/GitHubGitHub/northwavesecurity/log4jcheck
ReconocimientoEscáneres de VulnerabilidadesEscáneres de Vulnerabilidades WebExplotaciónRecopilación de InformaciónAnálisis de DNS
GitHubnorthwavesecurity/log4jcheck

log4jcheck

Un script que comprueba sistemas vulnerables a Log4j (CVE-2021-44228) mediante la inyección del payload en cabeceras HTTP comunes.

Ver Repositorio
12623hace 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
Sitio web

Comprobador de Northwave para Log4j CVE-2021-44228

El viernes 10 de diciembre de 2021 se publicó una nueva prueba de concepto 1 que aborda una vulnerabilidad de Ejecución Remota de Código (RCE) en la biblioteca de Java 'log4j' 2. Esta vulnerabilidad no fue divulgada de antemano a los desarrolladores del software. La vulnerabilidad se rastrea como CVE-2021-44228 3. Puede encontrar más información sobre la vulnerabilidad en la Northwave Threat Response 4.

Northwave ha creado un script de comprobación que detecta sistemas vulnerables mediante la inyección del payload en cabeceras HTTP comunes y como parte de una petición HTTP GET. Los sistemas vulnerables se detectan escuchando las peticiones DNS entrantes que contienen un UUID creado específicamente para el objetivo. Al escuchar el DNS entrante en lugar de desplegar (por ejemplo) un servidor LDAP, aumentamos la probabilidad de detectar sistemas vulnerables que tengan filtrado de tráfico saliente. En la práctica, el DNS saliente suele estar permitido. Se espera una alta tasa de falsos negativos; por favor, lea el aviso legal.

Cobertura:

Se cubren las siguientes cabeceras HTTP:

  • X-Api-Version
  • User-Agent
  • Referer
  • X-Druid-Comment
  • Origin
  • Location
  • X-Forwarded-For
  • Cookie
  • X-Requested-With
  • X-Forwarded-Host
  • Accept

Para cada inyección, se comprueban los siguientes prefijos JNDI:

  • jndi:rmi
  • jndi:ldap
  • jndi:dns
  • jndi:${lower:l}${lower:d}ap

DISCLAIMER

Tenga en cuenta que el script solo realiza dos comprobaciones específicas: cabeceras HTTP y petición HTTP GET. Esto provocará falsos negativos en los casos en los que sea necesario atacar otras cabeceras, campos de entrada específicos, etcétera, para desencadenar la vulnerabilidad. Es muy probable que esto ocurra.

IMPORTANTE: En los casos en los que el comprobador devuelva 'no vulnerability detected', proceda con las comprobaciones del sistema de archivos como se describe en la Northwave Threat Response 4. Ejecutar únicamente este comprobador no es suficiente para determinar si un sistema es vulnerable o no.

Configuración de un servidor DNS

Primero, necesitamos un subdominio que podamos usar para recibir peticiones DNS entrantes. En este caso usamos la zona log4jdnsreq.northwave.nl y desplegamos nuestro script en log4jchecker.northwave.nl. Configure una entrada DNS de la siguiente manera:

root@kitploit:~
log4jdnsreq 3600 IN  NS log4jchecker.northwave.nl.

A continuación, configuramos un servidor DNS BIND en un sistema Debian usando apt install bind9 y añadimos lo siguiente al archivo /etc/bind/named.conf.options:

root@kitploit:~
	recursion no;
	allow-transfer { none; };

Esto desactiva la recursión, ya que no queremos ejecutar un servidor DNS abierto. Configure el registro en /etc/bind/named.conf.local añadiendo la siguiente configuración:

root@kitploit:~
logging {
	channel querylog {
		file "/var/log/named/query.log";
		severity debug 3;
		print-time yes;
	};
	category queries { querylog;};
};

No olvide reiniciar BIND usando systemctl restart bind9. Compruebe si el registro funciona realizando una consulta DNS para xyz.log4jdnsreq.northwave.nl. Una o más consultas deberían aparecer en /var/log/named/query.log.

Verificación de su servidor DNS

Es importante verificar que las búsquedas del servidor de nombres se registran realmente. Este script no puede detectar sitios vulnerables a menos que la configuración de su servidor de nombres registre las peticiones

Pruebe su servidor realizando una búsqueda de prueba (idealmente desde una máquina diferente):

root@kitploit:~
dig test.log4jchecker.northwave.nl

No debe esperar una respuesta, pero sí debe esperar una entrada en el archivo de registro (cat /var/log/named/query.log). Esta entrada podría tener un aspecto similar a:

root@kitploit:~
14-Dec-2021 13:36:01.402 client @0x7f8b180a9b30 requester-ip#58755 (test.log4jchecker.northwave.nl): query: test.log4jchecker.northwave.nl IN A -E(0)DC (your-ip)

No continúe a menos que aparezca una respuesta en los registros. Sin ella, el script no detectará vulnerabilidades.

Ejecución del script

Instale las dependencias de Python usando pip install -r requirements.txt. Edite el script para cambiar la siguiente línea por la zona DNS que haya configurado:

root@kitploit:~
HOSTNAME = "log4jdnsreq.northwave.nl"

Ahora puede ejecutar el script proporcionando una sola URL mediante el parámetro -u o una lista de URLs mediante el parámetro -l:

root@kitploit:~
usage: nw_log4jcheck.py [-h] [-l LIST] [-u URL] [-w WAIT] [-t TIMEOUT]

optional arguments:
  -h, --help            show this help message and exit
  -l LIST, --list LIST  A text file with a list of URLs to check (one url per line)
  -u URL, --url URL     URL to check (for example: http://yoururl.com)
  -w WAIT, --wait WAIT  Number of seconds to wait before checking DNS logs (default: 15)
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP timeout in seconds to use (default: 5)

La última línea de la salida muestra si se ha detectado que el sistema es vulnerable:

root@kitploit:~
NO VULNERABILITY DETECTED. Proceed with on-server checking. No incoming DNS request to 3414db71-309a-4288-83d4-aa3f103db97c.log4jdns.northwave.nl was seen

En caso de que no se detecte ninguna vulnerabilidad, continúe con las comprobaciones del sistema de archivos como se describe en la Northwave Threat Response 4. De nuevo, ejecutar únicamente este comprobador no es suficiente para determinar si un sistema es vulnerable o no.

Licencia

Log4jcheck es un software de código abierto licenciado bajo la licencia MIT.

Descargar herramienta