Nmap (Network Mapper) — es una de las herramientas más potentes y versátiles para el escaneo de redes, usada tanto por principiantes como por profesionales experimentados en ciberseguridad. La mayoría de los usuarios conoce los comandos básicos, como el escaneo de puertos (nmap 192.168.1.1) o la detección del sistema operativo (nmap -O 192.168.1.1). Sin embargo, Nmap tiene muchas funciones ocultas y capacidades avanzadas que no todos conocen. En este artículo avanzado revisaremos en detalle esas funciones poco conocidas que pueden aumentar significativamente la eficiencia de tu trabajo.
Incluso si te consideras un usuario avanzado de Nmap, es posible que estés pasando por alto opciones potentes que pueden ahorrar tiempo y proporcionar datos más profundos. Sumergámonos en el mundo de Nmap y descubramos sus tesoros ocultos que te convertirán en un experto en escaneo de redes.
Puntos clave del artículo:
- Técnicas avanzadas de escaneo para evadir sistemas de defensa
- Integración con bases de datos de vulnerabilidades y scripts NSE
- Métodos de optimización y automatización para el escaneo de grandes redes
- Funciones especializadas para el análisis de IoT y entornos en la nube
- Creación de scripts personalizados para escenarios de prueba únicos
1. Escaneo usando señuelos (Decoy Scanning)
Una de las funciones más efectivas, pero menos conocidas de Nmap, es la posibilidad de usar señuelos (decoy scanning). Esta técnica permite ocultar tu IP real enviando solicitudes en nombre de varias direcciones IP ficticias. Esto puede confundir a los sistemas de detección de intrusiones (IDS) y hacer que tu escaneo sea menos visible, repartiendo el tráfico "sospechoso" entre múltiples orígenes.
Para usar señuelos añade la opción -D indicando las IP ficticias separadas por comas. Por ejemplo:
Aquí ME representa tu IP real, y las demás son ficticias. Esto hará que el sistema objetivo piense que el escaneo proviene de múltiples direcciones, dificultando el rastreo e identificación de la fuente real.
nmap -sP 192.168.1.0/24 para identificar hosts activos antes de configurar los señuelos. En este ejemplo:
-D— usamos señuelos-T2— establecemos un timing lento para menor visibilidad--data-length 24— añadimos datos aleatorios a los paquetes para evadir análisis por firmas-f— fragmentamos los paquetes
2. Fragmentación de paquetes para evadir firewalls
Muchos firewalls e IDS pueden bloquear o detectar escaneos analizando la integridad de los paquetes y firmas características. Nmap permite fragmentar paquetes con la opción -f, lo que puede ayudar a evadir algunos mecanismos de defensa y hacer el escaneo más sigiloso.
El comando básico para fragmentar paquetes:
La fragmentación divide los encabezados TCP en paquetes IP más pequeños, lo que puede hacer que el escaneo sea menos detectable por los sistemas de seguridad. Sin embargo, esto puede ralentizar el proceso de escaneo y aumentar la cantidad de tráfico.
Para un nivel adicional de fragmentación usa banderas dobles o triples:
También puedes especificar el tamaño de los fragmentos con la opción --mtu. Por ejemplo, establecer la MTU (Maximum Transmission Unit) en 8 bytes:
-f divide paquetes IP en fragmentos de 8 bytes o menos. La opción -ff usa fragmentos de 16 bytes. El valor MTU debe ser múltiplo de 8 para funcionar correctamente. Combinaciones de fragmentación con otros métodos de evasión
Para evadir sistemas de defensa de forma más efectiva se puede combinar la fragmentación con otras opciones:
En este comando:
- Fragmentamos los paquetes (
-f) - Usamos señuelos (
-D) - Añadimos datos aleatorios a los paquetes (
--data-length) - Escaneamos hosts en orden aleatorio (
--randomize-hosts)
3. Escaneo usando IPv6
Con el aumento del uso de IPv6, muchas redes comienzan a soportar este protocolo. Sin embargo, la seguridad de IPv6 a menudo queda menos revisada, lo que crea posibles vulnerabilidades. Nmap soporta completamente el escaneo de direcciones IPv6, lo que puede ser útil para descubrir dispositivos que no son visibles en IPv4.
Para escanear una dirección IPv6 usa la opción -6:
Esto es especialmente relevante para organizaciones que implementan IPv6 pero quizá no prestan suficiente atención a su seguridad. Con frecuencia los administradores se concentran en proteger las redes IPv4, dejando IPv6 sin el control adecuado.
Opciones avanzadas de escaneo IPv6
Nmap ofrece varias opciones especializadas para trabajar con IPv6:
Aquí escaneamos toda una subred IPv6 determinando versiones de servicios (-sV) y ejecutando scripts de las categorías por defecto y de descubrimiento.
Para detectar hosts IPv6 activos en la red local:
Este script usa solicitudes ICMPv6 echo para descubrir hosts en el segmento local de red.
Este comando realizará un escaneo completo de puertos del servidor IPv6, determinará versiones de servicios y comprobará la existencia de vulnerabilidades conocidas.
4. Detección de versiones de servicios con NSE
Nmap Scripting Engine (NSE) es una herramienta potente que permite ejecutar scripts para un análisis más profundo de los sistemas objetivo. Nmap incluye más de 600 scripts, divididos en categorías: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version y vuln.
Una de las posibilidades frecuentemente subestimadas es la detección de versiones de servicios y vulnerabilidades mediante scripts especializados.
Escaneo básico con NSE
Por ejemplo, el script http-enum puede enumerar posibles directorios y archivos en un servidor web:
Y el script vulners puede comprobar vulnerabilidades conocidas basadas en las versiones de los servicios:
Estos scripts pueden ampliar considerablemente tus capacidades al analizar la seguridad de una red.
Combinación de scripts para un análisis integral
Puedes combinar varios scripts o categorías de scripts para un análisis más detallado:
Este comando ejecutará todos los scripts HTTP y SSL para analizar servidores web.
Este comando realizará un escaneo completo de puertos, determinará versiones de servicios y ejecutará scripts de las categorías default, safe y vuln, mostrando todas las vulnerabilidades (incluso las que normalmente se ocultan).
--script-file:
Detección por antivirus y evasión
Algunos scripts NSE pueden ser detectados por programas antivirus como maliciosos. Si necesitas evitar esto, puedes usar la opción --script-args-file para cargar argumentos del script desde un archivo en lugar de pasarlos por la línea de comandos:
Esto puede ayudar a evadir algunos métodos de detección basados en el análisis de la línea de comandos.
5. Escaneo usando proxies
Para quienes trabajan en entornos con acceso limitado o desean ocultar su IP real, Nmap soporta el escaneo a través de proxies HTTP, SOCKS4 y SOCKS5. Esto puede ser útil para evadir ciertas restricciones de red o para mayor anonimato.
Para usar un proxy HTTP, indica su dirección con la opción --proxies:
También puedes especificar varios proxies separados por comas, y Nmap los usará en cadena:
Ten en cuenta que no todos los tipos de escaneo son compatibles a través de un proxy. En particular, el escaneo SYN (half-open) no puede realizarse a través de un proxy. Sin embargo, para comprobaciones básicas y escaneo TCP Connect (-sT), el proxy funciona bien.
Uso de Tor para escaneo anónimo
Puedes combinar Nmap con Tor para un nivel superior de anonimato. Primero debes instalar y ejecutar Tor, luego usarlo como proxy SOCKS:
En este comando:
--proxies socks4://127.0.0.1:9050— uso de Tor como proxy-sT— escaneo TCP Connect (compatible con SOCKS)-Pn— omitir la detección de host (asumir que el host está activo)-n— desactivar la resolución DNS (previene fugas de DNS)
Advertencia: El escaneo anónimo a través de Tor puede ser muy lento y no siempre fiable. Además, puede violar las políticas de uso de la red Tor. Úsalo solo para fines legítimos y con conocimiento de sus limitaciones.
6. Generación de direcciones IP aleatorias para escaneo
Nmap permite generar direcciones IP aleatorias para escaneo, lo que puede ser útil para probar grandes redes, generar ruido para confundir IDS o explorar el espacio de Internet.
Usa la opción -iR indicando la cantidad de hosts para generar como objetivos aleatorios:
Este comando escaneará 10 direcciones IP aleatorias en busca de puertos 80 y 443 abiertos.
Para un escaneo más dirigido puedes combinar -iR con otras opciones:
Este comando encontrará 100 direcciones IP aleatorias con el puerto SSH (22) abierto y mostrará información detallada.
Generación de IPs dentro de un rango específico
Si necesitas direcciones IP aleatorias de un rango determinado, puedes usar --randomize-hosts junto con la especificación del rango:
Este comando escaneará todo el rango de direcciones desde 192.168.0.0 hasta 192.168.255.255 en orden aleatorio.
Este comando encontrará 1000 servidores aleatorios con puertos web abiertos, determinará versiones de servicios y comprobará vulnerabilidades web comunes, guardando los resultados en archivos.
7. Escaneo usando suplantación de MAC
Para redes locales, Nmap permite falsificar (spoof) la dirección MAC, lo que puede ayudar a evadir filtrado a nivel de switch o router, además de añadir un nivel extra de anonimato.
Usa la opción --spoof-mac para indicar una MAC específica:
También puedes usar --spoof-mac 0 para generar una dirección MAC aleatoria:
O incluso indicar la dirección MAC de un fabricante concreto. Por ejemplo, para usar una MAC de un dispositivo Apple:
8. Detección de dispositivos IoT y sus vulnerabilidades
Con el aumento de dispositivos del Internet de las Cosas (IoT) es importante poder detectarlos y analizar su seguridad. Nmap dispone de scripts especializados para IoT, como upnp-info, mqtt-subscribe, hnap-info y muchos otros, que permiten identificar dispositivos potencialmente vulnerables en tu red.
Escaneo de dispositivos UPnP
Universal Plug and Play (UPnP) es un conjunto de protocolos de red frecuentemente usado en dispositivos IoT. Para escanear dispositivos UPnP usa el script upnp-info:
Este script detecta dispositivos UPnP y extrae información sobre ellos, incluyendo tipo de dispositivo, fabricante, modelo e incluso la lista de servicios disponibles. A menudo los atacantes pueden acceder a dispositivos a través de UPnP, por lo que identificar servicios UPnP sin protección es crítico.
Escaneo de brokers MQTT
MQTT (Message Queuing Telemetry Transport) es un protocolo ligero de mensajería ampliamente usado en IoT. Para detectar brokers MQTT y comprobar su seguridad utiliza los scripts mqtt-subscribe y mqtt-topics:
Este script intenta suscribirse a topics MQTT sin autenticación, lo que puede revelar configuraciones inseguras. Si la suscripción sin autenticación tiene éxito, un atacante podría no solo leer datos transmitidos sino también enviar comandos a dispositivos.
Para un análisis más detallado del broker MQTT usa:
Detección y análisis de cámaras y dispositivos IP
Muchos dispositivos IoT, como cámaras IP, usan protocolos específicos. Por ejemplo, para detectar y analizar cámaras Hikvision se puede usar el script hikvision-info:
Para dispositivos IP que usan el protocolo ONVIF (común en sistemas de videovigilancia), se puede emplear:
Escaneo integral de dispositivos IoT
Para un escaneo integral de IoT puedes usar una combinación de scripts que cubran varios protocolos y puertos característicos de IoT:
Este comando escanea puertos típicos usados por dispositivos IoT (interfaces web, MQTT, CoAP, RTSP) y ejecuta scripts correspondientes para analizarlos. Los resultados se guardan en archivos con el prefijo iot_scan.
Este comando realizará un escaneo completo de puertos en la red doméstica, determinará versiones de servicios y ejecutará scripts para descubrir y analizar interfaces web y servicios UPnP típicos de dispositivos inteligentes, guardando los resultados en un archivo.
Vulnerabilidades típicas de dispositivos IoT:
- Credenciales débiles o por defecto (por ejemplo, admin/admin)
- Ausencia de cifrado en la transmisión de datos
- Software desactualizado con vulnerabilidades conocidas
- Falta de autenticación en protocolos (por ejemplo, MQTT sin contraseña)
- Interfaces web inseguras con vulnerabilidades XSS, CSRF, inyecciones, etc.
- Puertos de depuración y administración abiertos (Telnet, SSH con contraseñas simples)
- Falta de validación de entrada que permite inyección de comandos
9. Integración con bases de datos de vulnerabilidades
Nmap puede integrarse con bases de datos externas de vulnerabilidades, como Vulners o Exploit-DB, para buscar automáticamente vulnerabilidades conocidas basadas en las versiones de los servicios detectados.
Uso del script Vulners
El script vulners comprueba las versiones detectadas del software frente a la base de datos de Vulners.
El parámetro mincvss=5.0 indica el nivel mínimo de severidad según la escala CVSS, para centrarse solo en vulnerabilidades graves.
Uso del script vulscan
El script vulscan integra múltiples bases de datos de vulnerabilidades y puede instalarse desde su repositorio:
Las bases de datos disponibles en vulscan incluyen: CVE, Exploit Database, OpenVAS, SecurityFocus y otras.
Uso combinado
Para máxima eficacia puedes combinar varios scripts de comprobación de vulnerabilidades:
sudo nmap --script-updatedb y git pull en los directorios de scripts. 10. Creación de scripts NSE personalizados
Nmap Scripting Engine (NSE) permite crear scripts propios en Lua para automatizar tareas y ampliar la funcionalidad.
Estructura básica de un script NSE
Los scripts NSE tienen una estructura estándar que incluye descripción, categorías, bibliotecas necesarias, una regla de ejecución y la función de acción.
Bibliotecas útiles de NSE
NSE proporciona numerosas bibliotecas especializadas:
stdnse— funciones estándar de NSEshortport— trabajo con puertoshttp— trabajo con el protocolo HTTPbrute— funciones para ataques de fuerza brutajson,smtp,ssh2,mysqly otras
Depuración de scripts NSE
Para depurar scripts NSE usa las siguientes opciones:
11. Opciones de línea de comandos poco conocidas
Nmap tiene muchas opciones poco conocidas que pueden mejorar significativamente el escaneo.
Control de la agresividad del escaneo
Usa perfiles predefinidos de agresividad en lugar de configurarlo manualmente:
La escala incluye niveles desde T0 (máxima sigilosidad) hasta T5 (máxima velocidad).
Añadir datos aleatorios a los paquetes
Añade datos aleatorios a los paquetes para evadir IDS:
Modos de escaneo específicos
Nmap soporta modos de escaneo raramente usados:
-sI zombie:port— Idle Scan (escaneo a través de un "zombi")-sO— escaneo de protocolos IP-sY— escaneo SCTP INIT--scanflags— ajuste de banderas TCP
Configuración de la intensidad de detección de versiones
Controla la intensidad del fingerprinting de versiones de servicios:
12. Automatización del escaneo
Para el monitoreo regular de la seguridad es útil automatizar el proceso de escaneo.
Scripts Bash y programador
Crea scripts Bash para ejecutar distintos tipos de escaneos y prográmalos según un calendario:
Python y la biblioteca python-nmap
Usa la biblioteca python-nmap para integrar Nmap en scripts Python. Esto permite soluciones más flexibles con procesamiento de resultados y envío de notificaciones.
Integración con sistemas de orquestación
Integra Nmap con Ansible, Chef, Puppet o sistemas CI/CD para ejecutar escaneos automáticos tras cambios en la infraestructura.
13. Nmap para el análisis de entornos en la nube
Al escanear recursos en la nube hay que tener en cuenta varias particularidades.
Particularidades del escaneo en la nube
Puntos importantes al escanear en la nube:
- Cumple las políticas del proveedor — muchos limitan el escaneo
- Considera la naturaleza dinámica de los recursos en la nube
- Escanea por nombres de dominio en lugar de direcciones IP
- Obtén los permisos adecuados antes de comenzar
Escaneo de infraestructura AWS
Combina Nmap con AWS CLI para un escaneo eficiente:
Escaneo en entornos containerizados
Para Kubernetes o Docker usa sus APIs junto con Nmap para obtener la lista de servicios y analizarlos.
Advertencia: El escaneo de recursos en la nube puede generar costes adicionales y potencialmente incumplir los acuerdos con el proveedor.
14. Interpretación y visualización de resultados
El procesamiento eficaz de los resultados de escaneo es crítico en infraestructuras grandes.
Formatos de salida de Nmap
Nmap soporta varios formatos de salida:
-oN— formato de texto normal-oX— formato XML para procesamiento programático-oG— formato Grepable para procesar con grep-oA— guardar en todos los formatos simultáneamente
Herramientas para analizar resultados
Usa las siguientes herramientas para analizar y visualizar:
- Zenmap — interfaz gráfica para Nmap
- XSLT — transformación de XML a HTML
- Python + python-nmap — análisis programático
- Elasticsearch + Kibana — para infraestructuras grandes
- NetworkX + Matplotlib — visualización de la topología de red
15. Estrategias para el uso eficaz de Nmap
Para aprovechar Nmap al máximo sigue estas recomendaciones:
Planificación del escaneo
- Define un objetivo claro para el escaneo
- Elige los métodos adecuados para la tarea específica
- Toma en cuenta las limitaciones de la red y de los sistemas de seguridad
- Programa los escaneos en periodos de baja carga de la red
Enfoque multinivel
- Comienza con un escaneo rápido para obtener una visión general
- Realiza escaneos más profundos en objetivos interesantes
- Usa scripts especializados para tareas concretas
- Combina los resultados de Nmap con otras herramientas de seguridad
Consejos clave para dominar Nmap:
- Crea plantillas de comandos para tareas frecuentes
- Automatiza comprobaciones de seguridad regulares
- Combina técnicas diversas para evadir defensas
- Documenta los resultados y rastrea los cambios
- Usa visualizaciones para comprender mejor los resultados
- No olvides el uso ético de la herramienta
Incluso los profesionales pueden pasar por alto algunas de estas funciones, pero al dominarlas podrás realizar escaneos más efectivos y discretos, además de obtener una visión más completa de la seguridad de la red.
¡Buena suerte en tus aventuras con Nmap! Y recuerda: con gran poder viene una gran responsabilidad. Usa tus conocimientos para proteger, no para causar daño.
- Nmap Network Scanning — libro oficial sobre Nmap
- NSE Documentation — documentación del Nmap Scripting Engine
- Vulscan — extensión para comprobación de vulnerabilidades
- Nmap-vulners — script para integración con una base de datos de vulnerabilidades
- Hacking Articles — guía detallada sobre Nmap