Nmap (Network Mapper) es el escáner de red de referencia en ciberseguridad: código abierto, gratuito y documentado en nmap.org. Esta cheat sheet recoge los comandos y flags que más se usan en el día a día, con ejemplos reales. Una advertencia antes de nada: escanear sistemas sin permiso explícito del propietario es ilegal en la mayoría de jurisdicciones. Usa Nmap solo en tus propios equipos o en entornos de práctica autorizados (tienes una lista al final del artículo).

Instalación rápida
| Sistema | Comando |
|---|---|
| Debian / Ubuntu | sudo apt install nmap |
| RHEL / Fedora | sudo dnf install nmap |
| macOS (Homebrew) | brew install nmap |
| Windows | Instalador en nmap.org/download |
| Kali / Parrot | Preinstalado |
Verifica la versión: nmap --version
Sintaxis básica
nmap [opciones] <objetivo>
El objetivo puede ser una IP (192.168.1.1), un rango (192.168.1.1-254), una subred en notación CIDR (192.168.1.0/24) o un nombre de host (ejemplo.com). También puedes combinarlo con una lista de hosts guardada en un archivo: -iL hosts.txt.
Descubrimiento de hosts (sin escanear puertos)
| Flag | Tipo | Descripción | Ejemplo |
|---|---|---|---|
-sn |
Ping scan | Solo descubre hosts activos, sin escanear puertos | nmap -sn 192.168.1.0/24 |
-Pn |
Sin ping | Salta el descubrimiento de host (asume que está activo). Útil cuando ICMP está bloqueado | nmap -Pn 192.168.1.1 |
-PR |
ARP ping | Descubrimiento con paquetes ARP (solo red local; más fiable que ICMP en LAN) | nmap -PR 192.168.1.0/24 |
-PS |
TCP SYN ping | Envía SYN al puerto indicado (defecto: 80) | nmap -PS443 192.168.1.1 |
-PA |
TCP ACK ping | Envía ACK; puede eludir firewalls sin estado | nmap -PA80 192.168.1.1 |
-PU |
UDP ping | Envía paquete UDP al puerto indicado (defecto: 40125) | nmap -PU53 192.168.1.1 |
Tipos de escaneo de puertos
| Flag | Tipo | Descripción | Permisos |
|---|---|---|---|
-sS |
TCP SYN (stealth) | Envía SYN y analiza la respuesta sin completar el handshake. El más usado; no deja sesión en los logs de la aplicación | Root / Admin |
-sT |
TCP Connect | Completa el handshake TCP. No necesita privilegios elevados; deja rastro en los logs | Sin root |
-sU |
UDP | Escanea puertos UDP. Lento; útil para DNS (53), SNMP (161), DHCP (67/68) | Root / Admin |
-sA |
TCP ACK | Mapea reglas de firewall: respuesta RST = puerto sin filtrar | Root / Admin |
-sN |
TCP Null | Sin flags TCP; sirve para eludir algunos firewalls/IDS | Root / Admin |
-sF |
TCP FIN | Solo flag FIN; similar a Null en evasión | Root / Admin |
-sX |
TCP Xmas | Flags FIN, PSH y URG activos simultáneamente | Root / Admin |
-sW |
TCP Window | Similar a ACK pero analiza el campo Window para diferenciar abierto/cerrado | Root / Admin |
Selección de puertos (-p)
| Sintaxis | Qué hace | Ejemplo |
|---|---|---|
-p 80 |
Puerto concreto | nmap -p 80 192.168.1.1 |
-p 80,443,8080 |
Lista de puertos | nmap -p 80,443,8080 192.168.1.1 |
-p 1-1000 |
Rango de puertos | nmap -p 1-1000 192.168.1.1 |
-p- |
Todos los puertos (1-65535) | nmap -p- 192.168.1.1 |
-p U:53,T:80 |
Mezclar UDP y TCP | nmap -sU -sS -p U:53,T:80 192.168.1.1 |
--top-ports 100 |
Los 100 puertos más comunes | nmap --top-ports 100 192.168.1.1 |
-F |
Modo rápido (top 100 implícito) | nmap -F 192.168.1.1 |
Detección de versión y sistema operativo
| Flag | Función | Ejemplo |
|---|---|---|
-sV |
Detección de versión de servicios | nmap -sV 192.168.1.1 |
--version-intensity 0-9 |
Agresividad de detección de versión (0=ligero, 9=máximo) | nmap -sV --version-intensity 5 192.168.1.1 |
-O |
Detección de sistema operativo (fingerprinting de pila TCP/IP) | nmap -O 192.168.1.1 |
--osscan-guess |
Ofrece el mejor resultado aunque no sea concluyente | nmap -O --osscan-guess 192.168.1.1 |
-A |
Modo agresivo: activa -sV, -O, -sC y traceroute |
nmap -A 192.168.1.1 |
Control de tiempo y evasión
Plantillas de tiempo (-T)
| Flag | Nombre | Velocidad | Cuándo usarlo |
|---|---|---|---|
-T0 |
Paranoid | Muy lento (5 min/paquete) | Máxima evasión IDS |
-T1 |
Sneaky | Lento (15 s/paquete) | Evasión IDS sin urgencia |
-T2 |
Polite | Lento (0,4 s) | Minimizar impacto en la red |
-T3 |
Normal | Por defecto | Uso general |
-T4 |
Aggressive | Rápido | Redes rápidas / CTFs |
-T5 |
Insane | Muy rápido (puede perder resultados) | Solo redes locales sin IDS |
Evasión y ofuscación
| Flag | Descripción | Ejemplo |
|---|---|---|
-f |
Fragmenta paquetes IP en trozos de 8 bytes para eludir IDS | nmap -f 192.168.1.1 |
--mtu <tamaño> |
Define el tamaño del fragmento manualmente (debe ser múltiplo de 8) | nmap --mtu 16 192.168.1.1 |
-D <decoy1,decoy2,...,ME> |
Usa IPs señuelo para mezclar el tráfico real del escáner | nmap -D 10.0.0.1,10.0.0.2,ME 192.168.1.1 |
--source-port <puerto> |
Usa un puerto de origen específico (p.ej. 53 o 80 para eludir reglas de firewall) | nmap --source-port 53 192.168.1.1 |
--data-length <num> |
Añade bytes de relleno aleatorio a los paquetes | nmap --data-length 200 192.168.1.1 |
-S <IP> |
Suplanta la IP origen (requiere root y -e con interfaz) |
nmap -S 10.0.0.5 -e eth0 192.168.1.1 |
--randomize-hosts |
Escanea los hosts en orden aleatorio | nmap --randomize-hosts 192.168.1.0/24 |
Scripts NSE (Nmap Scripting Engine)
NSE permite ejecutar scripts Lua para automatizar la detección de vulnerabilidades, enumeración, autenticación y otras tareas. Los scripts oficiales están en nmap.org/nsedoc.
| Flag | Función | Ejemplo |
|---|---|---|
-sC |
Ejecuta los scripts de la categoría default |
nmap -sC 192.168.1.1 |
--script <nombre> |
Ejecuta un script concreto | nmap --script http-title 192.168.1.1 |
--script <cat> |
Ejecuta todos los scripts de una categoría | nmap --script vuln 192.168.1.1 |
--script <patrón> |
Ejecuta scripts que coincidan con un patrón glob | nmap --script "http-*" 192.168.1.1 |
--script-args <clave=valor> |
Pasa argumentos a los scripts | nmap --script ftp-brute --script-args userdb=users.txt 192.168.1.1 |
--script-help <nombre> |
Muestra la documentación de un script | nmap --script-help smb-vuln-ms17-010 |
Categorías NSE principales
| Categoría | Qué hace |
|---|---|
default |
Scripts seguros y útiles; se activan con -sC o -A |
safe |
Sin efectos negativos conocidos en el objetivo |
vuln |
Detecta vulnerabilidades conocidas (puede ser intrusivo) |
auth |
Autenticación y credenciales por defecto |
brute |
Fuerza bruta de credenciales |
discovery |
Enumeración activa: DNS, SNMP, servicios… |
exploit |
Explotación de vulnerabilidades (usar solo en entornos de prueba) |
intrusive |
Puede causar caídas o alertas; uso controlado |
malware |
Detecta backdoors o comportamiento malicioso |
Scripts NSE útiles (ejemplos)
| Script | Puerto/servicio | Qué detecta |
|---|---|---|
smb-vuln-ms17-010 |
445/TCP | EternalBlue (MS17-010) |
http-title |
80/443/TCP | Título de la página web |
http-robots.txt |
80/443/TCP | Contenido del robots.txt |
ssh-hostkey |
22/TCP | Huella SSH del servidor |
ftp-anon |
21/TCP | Acceso FTP anónimo |
dns-brute |
53/TCP+UDP | Enumeración de subdominios por fuerza bruta |
ssl-cert |
443/TCP | Información del certificado TLS |
vuln |
Todos los abiertos | Conjunto de checks de vulnerabilidades conocidas |
Formatos de salida
| Flag | Formato | Extensión | Ejemplo |
|---|---|---|---|
-oN <archivo> |
Normal (legible por humanos) | .txt | nmap -oN resultado.txt 192.168.1.1 |
-oG <archivo> |
Grepable (una línea por host) | .gnmap | nmap -oG resultado.gnmap 192.168.1.1 |
-oX <archivo> |
XML (importable en Metasploit, etc.) | .xml | nmap -oX resultado.xml 192.168.1.1 |
-oA <prefijo> |
Los tres formatos a la vez | .nmap / .gnmap / .xml | nmap -oA escaneo 192.168.1.1 |
-v |
Modo verboso (muestra resultados en tiempo real) | — | nmap -v 192.168.1.1 |
-vv |
Modo muy verboso | — | nmap -vv 192.168.1.1 |
--reason |
Explica por qué cada puerto tiene ese estado | — | nmap --reason 192.168.1.1 |
--open |
Muestra solo puertos abiertos | — | nmap --open 192.168.1.1 |
Recetas completas (comandos listos para usar)
1. Descubrimiento rápido de hosts en red local
nmap -sn 192.168.1.0/24
Lista todos los hosts que responden al ping en la subred, sin escanear puertos. Si eres root, añade -PR para usar ARP en lugar de ICMP.
2. Escaneo rápido de los 1000 puertos más comunes
nmap -T4 -F 192.168.1.1
Escaneo TCP SYN de los 100 puertos más frecuentes con plantilla de tiempo agresiva. Para una primera foto rápida del objetivo, esto suele bastar.
3. Escaneo completo con detección de versión y OS
nmap -sS -sV -O -p- -T4 -oA escaneo_completo 192.168.1.1
Escanea todos los puertos TCP, detecta versiones de servicio y sistema operativo, y guarda resultados en tres formatos. Requiere root y puede tardar varios minutos, así que no lo lances si tienes prisa.
4. Escaneo sigiloso (evasión básica)
nmap -sS -T1 -f --source-port 53 -oN sigiloso.txt 192.168.1.1
SYN scan lento con paquetes fragmentados y puerto de origen 53. Reduce la probabilidad de que lo detecte un IDS simple, pero no esperes que pase inadvertido ante un IDS moderno.
5. Enumeración de servicios web + vulnerabilidades
nmap -sV --script "http-*,vuln" -p 80,443,8080,8443 -oN web_vuln.txt 192.168.1.1
Combina detección de versión con todos los scripts HTTP y de vulnerabilidades en los puertos web más habituales.
6. Escaneo combinado TCP+UDP (servicios críticos)
nmap -sS -sU -T4 -p T:22,80,443,445,3389,U:53,161,500 192.168.1.1
Cubre los puertos TCP y UDP más relevantes en una sola pasada. Requiere root.
7. Escaneo de red con salida para postprocesado
nmap -sn 192.168.1.0/24 -oG - | grep "Up" | awk '{print $2}'
Descubre hosts activos y extrae solo sus IPs en stdout para alimentar otro script o herramienta.
Otros flags útiles
| Flag | Función |
|---|---|
-n |
Sin resolución DNS (más rápido) |
-R |
Fuerza resolución DNS inversa |
--dns-servers <IP> |
Usa servidores DNS específicos |
-6 |
Activa escaneo IPv6 |
--traceroute |
Traza la ruta al objetivo tras el escaneo |
--iflist |
Muestra interfaces y rutas del sistema local |
--resume <archivo> |
Reanuda un escaneo interrumpido (requiere salida -oN o -oG) |
-iL <archivo> |
Lee la lista de objetivos desde un archivo de texto |
--exclude <IP/rango> |
Excluye IPs o rangos del escaneo |
-e <interfaz> |
Usa una interfaz de red concreta |
Practica Nmap de forma legal
Estas plataformas ofrecen entornos para practicar comandos de Nmap con permiso explícito:
- scanme.nmap.org — servidor oficial de Nmap habilitado para práctica pública
- TryHackMe — máquinas vulnerables con salas dedicadas a Nmap
- Hack The Box — laboratorios de pentesting con objetivos controlados
Si estás empezando en ciberseguridad, Nmap es de las primeras herramientas que conviene dominar. Puedes ver la lista completa de guías de ciberseguridad o leer cómo empezar en ciberseguridad desde cero para trazar tu camino. Cuando estés listo para la parte práctica, la hoja de ruta de certificaciones te ayuda a elegir la formación más adecuada; y si buscas recursos gratuitos, échale un ojo a los mejores cursos gratuitos de ciberseguridad.
