Introducción a Nmap (Network Mapper)
Nmap es la herramienta de código abierto definitiva para la exploración de redes, auditoría de seguridad y descubrimiento de hosts. Utilizada tanto por administradores de sistemas para inventariar redes como por analistas de seguridad (pentesters) para identificar vectores de ataque, Nmap destaca por su flexibilidad, potencia y precisión.
Si buscas una referencia rápida en tiempo real con más herramientas integradas, puedes usar nuestro Cheat Sheets Interactivo y nuestro Toolkit de Ciberseguridad directo en el navegador.
1. Funcionamiento Interno: TCP 3-Way Handshake vs. Stealth Scan
Para entender cómo Nmap identifica si un puerto está abierto, cerrado o filtrado, es vital comprender cómo se comunica el protocolo TCP.
TCP Three-Way Handshake (Escaneo de Conexión Completa -sT)
Cuando un cliente legítimo se conecta a un servidor, se realiza un saludo de tres vías:
- Cliente → Servidor: Envía paquete
SYN(Sincronización). - Servidor → Cliente: Si el puerto está abierto, responde con
SYN-ACK(Sincronización y Acuse de recibo). - Cliente → Servidor: Responde con
ACKy se establece la conexión.
[Cliente] --- SYN ---> [Servidor]
[Cliente] <-- SYN-ACK - [Servidor] (Puerto Abierto)
[Cliente] --- ACK ---> [Servidor] (Conexión Establecida)
Nmap realiza este proceso completo cuando usamos la bandera -sT. Es preciso pero muy detectable ya que registra la conexión en los logs de la aplicación del objetivo.
TCP SYN Stealth Scan (-sS o Escaneo Sigiloso)
Es el método por defecto de Nmap (requiere privilegios de root/administrador). Rompe el saludo antes de que se establezca la conexión:
- Cliente → Servidor: Envía paquete
SYN. - Servidor → Cliente: Responde con
SYN-ACK(puerto abierto). - Cliente → Servidor: Envía un paquete
RST(Reset) inmediatamente para abortar la conexión.
[Cliente] --- SYN ---> [Servidor]
[Cliente] <-- SYN-ACK - [Servidor] (Puerto Abierto)
[Cliente] --- RST ---> [Servidor] (Conexión Abortada - No queda log)
Al no completarse el handshake, la mayoría de los servidores de aplicaciones no registran la conexión, haciéndolo ideal para fases de reconocimiento pasivo/activo en pentesting.
2. Sintaxis y Configuración de Objetivos
La estructura básica de un comando de Nmap es la siguiente:
nmap [Opciones] [Dirección IP o Rango]
Ejemplos Prácticos de Targets:
- Host Único:
nmap 192.168.1.10 - Múltiples Hosts:
nmap 192.168.1.10 192.168.1.15 - Rango de IPs:
nmap 192.168.1.10-50 - Subred Completa (CIDR):
nmap 192.168.1.0/24 - Excluir Hosts Específicos:
nmap 192.168.1.0/24 --exclude 192.168.1.1 - Lista desde Archivo:
nmap -iL objetivos.txt
3. Tipos de Escaneo de Puertos y sus Estados
Nmap clasifica los puertos en seis estados principales:
- open (abierto): Una aplicación acepta conexiones en este puerto.
- closed (cerrado): El puerto responde con un paquete
RST, indicando que no hay servicio escuchando. - filtered (filtrado): Un cortafuegos, filtro o regla de red bloquea las sondas de Nmap, impidiendo determinar si está abierto o cerrado.
- unfiltered (no filtrado): El puerto es accesible, pero Nmap no puede determinar si está abierto o cerrado (común en escaneos ACK
-sA). - open|filtered: Nmap no puede distinguir si el puerto está abierto o protegido por un filtro (común en UDP).
- closed|filtered: Nmap no puede distinguir si el puerto está cerrado o protegido por un filtro.
Comandos Clave por Tipo de Escaneo:
# Escaneo SYN Stealth (Rápido y sigiloso - Requiere sudo)
sudo nmap -sS 192.168.1.10
# Escaneo TCP Connect (Sin privilegios de root)
nmap -sT 192.168.1.10
# Escaneo UDP (Lento pero necesario para DNS, DHCP, SNMP)
sudo nmap -sU 192.168.1.10
# Escaneo Null, Fin y Xmas (Útiles para evadir firewalls antiguos sin estado)
sudo nmap -sN 192.168.1.10 # Null scan
sudo nmap -sF 192.168.1.10 # Fin scan
sudo nmap -sX 192.168.1.10 # Xmas scan
4. Detección Avanzada de Servicios y Sistemas Operativos
Por defecto, Nmap asume qué servicio corre en un puerto basándose en su base de datos estática (por ejemplo, puerto 80 = HTTP). Sin embargo, un servidor web puede configurarse en el puerto 4444. Para descubrir la verdadera identidad del servicio, usamos técnicas de fingerprinting activo:
# Detección de Versiones (-sV)
nmap -sV 192.168.1.10
# Detección del Sistema Operativo (-O)
sudo nmap -O 192.168.1.10
# Escaneo Agresivo Completo (-A)
# Equivalente a activar detección de SO (-O), versiones (-sV), scripts por defecto (-sC) y traceroute.
sudo nmap -A 192.168.1.10
Tabla de Equivalencia de Banderas de Reconocimiento:
| Flag | Función | Impacto en Ruido |
|---|---|---|
-F |
Escanea sólo los 100 puertos más comunes. | Muy bajo |
-p- |
Escanea los 65535 puertos TCP. | Alto |
-sV |
Interroga los puertos abiertos para identificar el banner y versión del software. | Medio |
-O |
Envía paquetes TCP/UDP y analiza las respuestas para adivinar el SO. | Alto |
-Pn |
No realiza ping previo. Asume que el host está activo (evita bloqueos ICMP). | Bajo |
5. El Nmap Scripting Engine (NSE)
El Nmap Scripting Engine (NSE) convierte a Nmap en un potente escáner de vulnerabilidades. Los scripts están escritos en el lenguaje de programación Lua y se agrupan en categorías según su función:
safe: Scripts que no causarán daños o caídas de servicios.intrusive: Scripts con riesgo alto de alterar sistemas o causar denegaciones de servicio.vuln: Diseñados para detectar vulnerabilidades específicas en el sistema objetivo.exploit: Intenta explotar vulnerabilidades conocidas de forma directa.brute: Ejecuta ataques de diccionario contra servicios de autenticación (SSH, FTP, etc.).
Ejemplos de uso del NSE:
# Ejecutar todos los scripts de la categoría "safe"
nmap --script safe 192.168.1.10
# Escanear vulnerabilidades conocidas del sistema
nmap -sV --script vuln 192.168.1.10
# Comprobación específica de vulnerabilidad SMB (EternalBlue)
nmap -p 445 --script smb-vuln-ms17-010 192.168.1.10
# Fuerza bruta en SSH para probar credenciales débiles
nmap -p 22 --script ssh-brute --script-args userdb=usuarios.txt,passdb=claves.txt 192.168.1.10
6. Técnicas de Evasión de Firewalls e IDS
En entornos corporativos reales, los sistemas de prevención de intrusos (IPS/IDS) y firewalls bloquearán o alertarán sobre escaneos estándar de Nmap. Podemos mitigar esto con técnicas de fragmentación, alteración de cabeceras y control de tiempos:
# Evasión por Fragmentación (-f)
# Divide las cabeceras TCP en paquetes más pequeños para dificultar la inspección del firewall.
nmap -f 192.168.1.10
# Escaneo con Señuelos (-D)
# Envía paquetes mezclados con IPs falsas (decoys). El objetivo verá múltiples atacantes y no sabrá la IP real.
nmap -D RND:10 192.168.1.10
# Cambiar el Puerto de Origen (--source-port)
# Fuerza a Nmap a usar puertos comunes (ej. DNS=53, HTTP=80) para saltarse reglas mal configuradas.
nmap --source-port 53 192.168.1.10
# Modificar el MTU (--mtu)
# Permite fijar un tamaño máximo de paquete personalizado.
nmap --mtu 24 192.168.1.10
Control de Temporización (-T0 a -T5)
Afecta a la agresividad y velocidad del escaneo:
-T0(Paranoid) y-T1(Sneaky): Muy lentos, diseñados para evadir sistemas IDS. Los escaneos pueden durar horas.-T3(Normal): Velocidad por defecto de Nmap.-T4(Aggressive): Ideal para redes modernas, rápidas y estables. Es la opción preferida en laboratorios.
7. Automatización y Exportación de Resultados
Guardar el resultado de tu escaneo es crucial para auditorías y la posterior fase de explotación con Metasploit u otras herramientas:
# Guardar en formato legible tradicional (.nmap)
nmap -oN reporte.txt 192.168.1.10
# Guardar en XML (.xml - Ideal para cargar en bases de datos o Metasploit)
nmap -oX reporte.xml 192.168.1.10
# Guardar en formato Grepeable (.gnmap - Fácil de filtrar con grep, awk y cut)
nmap -oG reporte.gnmap 192.168.1.10
# Exportar en todos los formatos a la vez (-oA)
# Creará reporte.nmap, reporte.xml y reporte.gnmap de forma simultánea.
nmap -oA reporte 192.168.1.10
Conclusión
Nmap no es solo un comando para buscar puertos abiertos, es un ecosistema completo para mapear redes y descubrir vulnerabilidades de manera activa. La clave para dominarlo es practicar en laboratorios virtuales, entender los protocolos de red subyacentes y aprender a combinar escaneos rápidos con scripts NSE precisos.
No olvides repasar nuestra sección interactiva de Cheat Sheets si estás realizando auditorías y necesitas copiar comandos listos para usar en tu terminal.
Artículos Relacionados
- Kali Linux: Las 20 Herramientas Esenciales para Pentesting — Integra Nmap en tu flujo de trabajo completo de pentesting con las herramientas esenciales de Kali.
- Introducción al Ethical Hacking: Fundamentos y Marco Legal — Aprende la metodología completa de un pentest donde Nmap es una pieza fundamental del reconocimiento.
- Seguridad de Redes: Defensa Perimetral — Conoce el lado defensivo: cómo proteger tu red contra los escaneos y ataques que Nmap permite detectar.
- Hacking Ético: Salario, Certificaciones y Cómo Empezar — Salarios, certificaciones CEH/OSCP/PNPT y hoja de ruta
- Firewall: Qué es, Tipos y Cómo Configurar uno — Tipos de firewall, iptables, pfSense y WAF
- Forense Digital: Guía Completa de Análisis de Incidentes — Disk, memory, network y cloud forensics con Volatility, Autopsy, Plaso y más.
🔧 Herramienta relacionada: Aprende a usar [Nmap] paso a paso en nuestra guía completa de herramientas.