Funciones ocultas de Nmap que incluso los profesionales pasan por alto

Funciones ocultas de Nmap que incluso los profesionales pasan por alto

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.

Nota: Todos los ejemplos y técnicas descritos en este artículo están destinados únicamente a fines educativos y deben usarse únicamente en redes donde tengas los permisos correspondientes. El escaneo no autorizado de redes puede ser ilegal y acarrear consecuencias graves.

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:

nmap -D 192.168.1.100,192.168.1.101,ME 192.168.1.1

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.

Consejo: Para aumentar la efectividad de los señuelos, elige direcciones IP que realmente existan y estén activas en la red. Si el sistema objetivo intenta responder a una IP ficticia que no está disponible, esto puede generar sospechas. Puedes usar nmap -sP 192.168.1.0/24 para identificar hosts activos antes de configurar los señuelos.
Ejemplo avanzado: Para hacer el escaneo con señuelos aún más efectivo, puedes combinarlo con otras técnicas de camuflaje:
nmap -D 192.168.1.100,192.168.1.101,ME -T2 --data-length 24 -f 192.168.1.1

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:

nmap -f 192.168.1.1

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:

nmap -ff 192.168.1.1
nmap -fff 192.168.1.1

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:

nmap --mtu 8 192.168.1.1
Detalles técnicos: La opción -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:

nmap -f -D 192.168.1.100,192.168.1.101,ME --data-length 32 --randomize-hosts 192.168.1.0/24

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:

nmap -6 2001:db8::1

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:

nmap -6 -sV --script "default,discovery" 2001:db8::/64

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:

nmap -6 --script=targets-ipv6-multicast-echo.nse --script-args=newtargets -sL

Este script usa solicitudes ICMPv6 echo para descubrir hosts en el segmento local de red.

Ejemplo práctico: Escaneo de un servidor IPv6 en busca de vulnerabilidades comunes:
nmap -6 -sS -p- -sV --script vuln 2001:db8::web-server

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:

nmap --script http-enum 192.168.1.1

Y el script vulners puede comprobar vulnerabilidades conocidas basadas en las versiones de los servicios:

nmap -sV --script vulners 192.168.1.1

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:

nmap -p 80,443 --script "http-*,ssl-*" 192.168.1.1

Este comando ejecutará todos los scripts HTTP y SSL para analizar servidores web.

nmap -p- -sV --script "default,safe,vuln" --script-args vulns.showall 192.168.1.1

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).

Consejo profesional: Puedes crear un conjunto de scripts que uses con frecuencia guardándolos en un archivo y pasándolo con la opción --script-file:
nmap --script-file my-scripts.txt 192.168.1.1

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:

nmap --script http-enum --script-args-file arguments.txt 192.168.1.1

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:

nmap --proxies http://proxy.example.com:8080 192.168.1.1

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:

nmap --proxies socks4://127.0.0.1:9050 -sT -Pn -n 192.168.1.1

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:

nmap -iR 10 -p 80,443

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:

nmap -iR 100 -p 22 --open -v

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:

nmap --randomize-hosts 192.168.0-255.0-255

Este comando escaneará todo el rango de direcciones desde 192.168.0.0 hasta 192.168.255.255 en orden aleatorio.

Ejemplo de uso: Búsqueda de servidores web vulnerables:
nmap -iR 1000 -p 80,443 -sV --open --script "http-vuln*" -oA random_webservers

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:

nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1

También puedes usar --spoof-mac 0 para generar una dirección MAC aleatoria:

nmap --spoof-mac 0 192.168.1.1

O incluso indicar la dirección MAC de un fabricante concreto. Por ejemplo, para usar una MAC de un dispositivo Apple:

nmap --spoof-mac Apple 192.168.1.1
Aplicación útil: La suplantación de MAC es especialmente útil en redes que filtran por MAC o donde se monitoriza la actividad por dirección MAC. Por ejemplo, en una red de hotel donde se cobra por dispositivo, el spoofing puede ayudar a conectar múltiples dispositivos usando una misma asignación de red.

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:

nmap --script upnp-info 192.168.1.0/24

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:

nmap -p 1883 --script mqtt-subscribe 192.168.1.0/24

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:

nmap -p 1883 --script "mqtt-subscribe,mqtt-topics" 192.168.1.100

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:

nmap -p 80,443,8000 --script hikvision-info 192.168.1.0/24

Para dispositivos IP que usan el protocolo ONVIF (común en sistemas de videovigilancia), se puede emplear:

nmap -p 80,443,554 --script "onvif-info" 192.168.1.0/24

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:

nmap -p 80,443,1883,5683,5684,8080,8443,8883 --script "upnp-info,mqtt-*,coap-*,http-title,hnap-info,rtsp-methods" 192.168.1.0/24 -oA iot_scan

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.

Ejemplo práctico: Detección y análisis de dispositivos domésticos inteligentes
nmap -p 1-65535 -sV --open --script "default,discovery,(http* or upnp*)" 192.168.1.0/24 -oA iot_devices

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
Consejo: Al detectar dispositivos IoT vulnerables en tu red, se recomienda aislarlos en un segmento separado (VLAN) y limitar su acceso a Internet y a otros dispositivos. También es importante actualizar el firmware regularmente y cambiar las contraseñas por defecto.

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.

nmap -sV --script vulners --script-args mincvss=5.0 192.168.1.1

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:

nmap -sV --script vulscan --script-args vulscandb=exploitdb 192.168.1.1

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:

nmap -sV --script "vulners,vulscan,vuln" 192.168.1.1
Consejo: Actualiza regularmente la base de datos de scripts y las bases externas de vulnerabilidades con los comandos 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 NSE
  • shortport — trabajo con puertos
  • http — trabajo con el protocolo HTTP
  • brute — funciones para ataques de fuerza bruta
  • json, smtp, ssh2, mysql y otras

Depuración de scripts NSE

Para depurar scripts NSE usa las siguientes opciones:

nmap -d -p 80 --script my-script.nse 192.168.1.1
nmap -p 80 --script my-script.nse --script-trace 192.168.1.1
Consejo: Crea una biblioteca de scripts propios para automatizar tareas frecuentes y comprobaciones específicas de la configuración de seguridad de tu organización.

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:

nmap -T4 192.168.1.1

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:

nmap --data-length 32 192.168.1.1

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:

nmap -sV --version-intensity 9 192.168.1.1
Pista: Para buscar scripts que te interesen usa el comando:
grep -l "clave_de_búsqueda" /usr/share/nmap/scripts/*.nse

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:

0 1 * * * /path/to/daily_scan.sh

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.

Consejo: Al automatizar incorpora mecanismos para rastrear cambios y filtrar falsos positivos para un análisis efectivo de resultados.

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:

nmap -sV -Pn --script "http-headers,ssl-cert" -p 80,443,8080 example-loadbalancer-123456789.us-west-2.elb.amazonaws.com

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
xsltproc -o scan_results.html /usr/share/nmap/nmap.xsl scan_results.xml
Consejo profesional: Usa la combinación Nmap + Elasticsearch + Kibana + Alerting para monitoreo automático y alertas sobre cambios en la infraestructura 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.

Recursos adicionales:

Alt text