Técnico16 de abril de 20267 min de lectura

Nmap: guía completa de escaneo de redes

Nmap centralizado: descubrimiento de hosts, tipos de escaneo TCP/UDP, detección de versiones y SO, control de timing y exportación de resultados. Todo lo que necesitas para la fase de enumeración.


Nmap (Network Mapper) es una de las herramientas de código abierto más potentes para el escaneo de redes. Su objetivo principal es automatizar dos tareas fundamentales en la fase de enumeración: descubrir hosts activos en una red y detectar los servicios y puertos abiertos de dichos hosts.

Hacer esto manualmente con ping, arp-scan o telnet sería lento y fácilmente bloqueado por firewalls. Nmap centraliza múltiples tácticas de descubrimiento en una sola herramienta.

Nota: Siempre que sea posible, ejecuta Nmap con sudo. Sin privilegios de root, solo podrás usar conexiones TCP completas (mucho más ruidosas), ya que manipular paquetes TCP "en crudo" requiere acceso de superusuario.


Descubrimiento de Hosts

Antes de escanear puertos, necesitas saber qué hosts están vivos. Nmap permite definir el objetivo de varias formas:

FormatoEjemplo
IP única192.168.0.1
Rango de IPs192.168.0.1-10
Subred CIDR192.168.0.0/24
Hostnameejemplo.thm

Ping Scan (-sn)

Descubre hosts activos sin escanear sus puertos. Útil para mapear redes con poco ruido.

sudo nmap -sn 192.168.0.0/24

El comportamiento varía según la ubicación del objetivo:

  • Red local (LAN): Usa peticiones ARP. Si hay respuesta, lista el host como Up y además muestra su MAC y fabricante.
  • Red remota: Emplea ICMP echo, TCP SYN al puerto 443 y TCP ACK al puerto 80 para detectar si el host está encendido.

List Scan (-sL)

Lista todos los objetivos calculados según la subred sin enviar ningún paquete. Útil para verificar el scope antes de lanzar un escaneo real.

nmap -sL 192.168.0.0/24

Escaneo de Puertos

Existen 65.535 puertos TCP y UDP. Nmap permite descubrir cuáles tienen servicios activos escuchando.

Tipos de escaneo

TCP Connect Scan (-sT)

Nmap completa el three-way handshake de TCP por entero. Es el modo por defecto sin root, pero deja registros en la máquina objetivo porque la conexión llega a abrirse.

nmap -sT 10.10.10.1

TCP SYN Scan — Stealth (-sS)

Nmap envía un SYN. Si el servidor responde con SYN-ACK (puerto abierto), Nmap aborta inmediatamente con un RST, sin completar la conexión. Es el modo por defecto con sudo y el más habitual en pentesting porque generalmente no queda registrado a nivel de aplicación.

sudo nmap -sS 10.10.10.1

UDP Scan (-sU)

Escanea puertos UDP (usados por DHCP, DNS, SNMP, etc.). Como UDP no tiene handshake, un ICMP Port Unreachable indica que el puerto está cerrado.

sudo nmap -sU 10.10.10.1

Filtro de puertos

ArgumentoComportamiento
(sin argumento)Los 1.000 puertos TCP más comunes
-FSolo los 100 más comunes (Fast Mode)
-p 10-1024Rango personalizado de puertos
-p-Los 65.535 puertos completos

Detección de Versiones y Sistema Operativo

Una vez localizados los puertos abiertos, el siguiente paso es saber exactamente qué corre detrás.

FlagFunción
-sVInterroga los puertos para identificar el servicio y versión exacta (ej. OpenSSH 8.9p1)
-OIntenta deducir el SO del host analizando patrones de respuesta (OS fingerprinting)
-AModo agresivo: activa -O, -sV, scripts NSE por defecto y traceroute a la vez
-PnOmite el descubrimiento de host y escanea directamente. Útil cuando el objetivo bloquea ICMP
# Escaneo completo típico en pentesting
sudo nmap -sS -sCV -A -Pn 10.10.10.1

Control de Tiempos (Timing)

Lanzar consultas demasiado agresivas puede saturar la red o activar alarmas en un IDS. Nmap incluye seis plantillas de velocidad con -T:

PlantillaNombreDescripción
-T0ParanoidMinutos entre paquetes. Máximo sigilo
-T1SneakyMuy cauteloso frente a firewalls e IDS
-T2PoliteLimita el ancho de banda activamente
-T3NormalComportamiento por defecto
-T4AggressiveEquilibrio velocidad/sigilo. El más usado en redes locales estables
-T5InsaneMáxima velocidad. Puede generar falsos negativos si la red pierde paquetes

Para mayor control, también puedes ajustar variables individuales:

# Máximo 500 paquetes/segundo, tiempo límite de 30s por host
sudo nmap -sS --max-rate 500 --host-timeout 30s 10.10.10.0/24
VariableFunción
--min-parallelism / --max-parallelismLímite de sondeos en paralelo
--min-rate / --max-ratePaquetes por segundo mínimos/máximos
--host-timeoutTiempo máximo antes de abandonar un host lento

Formatos de Salida

Nmap permite exportar los resultados en varios formatos para su análisis posterior o integración con otras herramientas.

Verbosidad en pantalla

nmap -v 10.10.10.1    # Verbose: muestra hallazgos en tiempo real
nmap -vv 10.10.10.1   # Más detalle
nmap -d 10.10.10.1    # Debug: útil para diagnosticar problemas de la herramienta

Exportación a archivo

FlagFormatoUso típico
-oN <archivo>Texto plano legibleLectura humana, notas
-oX <archivo>XML estructuradoImportar en otras herramientas
-oG <archivo>Grep-able (una línea por host)Procesado con grep, awk, scripts
-oA <nombre>Los tres anteriores a la vezDocumentación completa de un pentest
# Exportar los tres formatos con el prefijo "escaneo_inicial"
sudo nmap -sS -sCV -oA escaneo_inicial 10.10.10.0/24

Cheatsheet rápida

# Descubrir hosts vivos en una red
sudo nmap -sn 192.168.0.0/24

# Escaneo stealth de los 1000 puertos más comunes
sudo nmap -sS 10.10.10.1

# Escaneo completo con versiones y scripts
sudo nmap -sS -sCV -A 10.10.10.1

# Todos los puertos + detección agresiva + guardar resultados
sudo nmap -sS -p- -A -T4 -oA resultado 10.10.10.1

# Objetivo que bloquea pings (máquina CTF típica)
sudo nmap -sS -Pn -sCV 10.10.10.1
Tiempo en página 0:00Lectura estimada: 7 min

Posts relacionados

Herramienta

Introducción a Sublist3r: enumeración de subdominios

Sublist3r es una herramienta Python para enumerar subdominios usando múltiples motores de búsqueda y servicios como VirusTotal o DNSdumpster. Instalación, opciones y ejemplos de uso.

10 de diciembre de 20255 min