Nmap – Nmap Scripting Engine
1. Introducción
El Nmap Scripting Engine (NSE) permite usar o crear scripts en Lua para extender las capacidades de Nmap.
Sirve para automatizar tareas de descubrimiento, detección de vulnerabilidades y explotación básica.
Los scripts se agrupan en 14 categorías principales.
2. Categorías principales
| Categoría | Descripción breve |
|---|---|
| auth | Prueba o enumera credenciales de autenticación. |
| broadcast | Descubre hosts por broadcast y los añade a otros escaneos. |
| brute | Realiza ataques de fuerza bruta a servicios. |
| default | Scripts ejecutados automáticamente con -sC. |
| discovery | Evalúa servicios disponibles y expuestos. |
| dos | Prueba vulnerabilidades de denegación de servicio (poco recomendado). |
| exploit | Intenta explotar vulnerabilidades conocidas. |
| external | Usa servicios externos para procesar información. |
| fuzzer | Envía datos malformados para detectar fallos. |
| intrusive | Scripts potencialmente dañinos o disruptivos. |
| malware | Detecta infecciones o comportamientos maliciosos. |
| safe | Scripts seguros, no intrusivos. |
| version | Extiende la detección de servicios (-sV). |
| vuln | Identifica vulnerabilidades específicas. |
3. Formas de usar scripts NSE
3.1. Scripts por defecto
sudo nmap <target> -sC
Ejecuta los scripts de la categoría default.
3.2. Ejecutar una categoría completa
sudo nmap <target> --script <categoria>
Ejemplo:
sudo nmap 10.129.2.28 --script vuln
3.3. Ejecutar scripts específicos
sudo nmap <target> --script banner,smtp-commands
Ejecuta los scripts banner y smtp-commands sobre los puertos detectados.
4. Ejemplo: scripts sobre el puerto SMTP
sudo nmap 10.129.2.28 -p 25 --script banner,smtp-commands
Salida resumida:
25/tcp open smtp
|_banner: 220 inlane ESMTP Postfix (Ubuntu)
|_smtp-commands: inlane, PIPELINING, VRFY, STARTTLS, DSN, SMTPUTF8
banner: revela la distro (Ubuntu).smtp-commands: lista los comandos SMTP disponibles.- Puede ayudar a identificar usuarios con
VRFYoEXPN.
5. Escaneo agresivo (-A)
Combina varias detecciones en un solo comando:
sudo nmap 10.129.2.28 -p 80 -A
Incluye:
-sV: detección de versión-O: detección de SO--traceroute: traza la ruta-sC: scripts por defecto
Salida resumida:
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-generator: WordPress 5.3.4
|_http-title: blog.inlanefreight.com
OS: Linux (96%)
Permite descubrir servicios, versiones, frameworks (WordPress, etc.) y SO.
6. Evaluación de vulnerabilidades
Usando la categoría vuln, Nmap ejecuta todos los scripts relacionados con vulnerabilidades conocidas.
sudo nmap 10.129.2.28 -p 80 -sV --script vuln
Ejemplo de salida parcial:
| http-enum:
| /wp-login.php: Possible admin folder
| /: WordPress version: 5.3.4
| vulners:
| cpe:/a:apache:http_server:2.4.29:
| CVE-2019-0211 7.2 https://vulners.com/cve/CVE-2019-0211
| CVE-2018-1312 6.8 https://vulners.com/cve/CVE-2018-1312
Estos scripts interactúan con servicios como HTTP o SMB, comparan versiones con bases de datos y devuelven posibles CVEs.
7. Opciones útiles relacionadas
| Opción | Descripción |
|---|---|
-sC | Ejecuta los scripts por defecto. |
--script <cat> | Ejecuta todos los scripts de una categoría. |
--script <script1,script2> | Ejecuta scripts específicos. |
-A | Escaneo agresivo (OS + versión + traceroute + scripts). |
8. Recursos útiles
-
Repositorio oficial de scripts NSE:
🔗 https://nmap.org/nsedoc/index.html -
Guía oficial de Nmap NSE:
🔗 https://nmap.org/book/nse.html