← Volver al inicio
Nmap Reconocimiento Pentesting TCP/IP NSE
Avanzado

Nmap: Reconocimiento y Escaneo de Redes

01/03/2022

Nmap (Network Mapper) es el estándar de la industria para el descubrimiento de redes y auditoría de seguridad. No es solo un escáner de puertos; es una herramienta compleja capaz de evadir firewalls, detectar sistemas operativos interactuando con el stack TCP/IP y ejecutar scripts de explotación.

1. Entendiendo la base: TCP 3-Way Handshake

Para entender cómo Nmap descubre puertos, primero hay que entender cómo se comunican los ordenadores mediante TCP. Una conexión normal sigue tres pasos:

  1. SYN: El cliente pide conectarse.
  2. SYN-ACK: El servidor acepta y responde.
  3. ACK: El cliente confirma y se establece la conexión.

TCP Connect Scan (-sT) vs SYN Stealth Scan (-sS)

El escaneo Connect (-sT) completa los 3 pasos. Es ruidoso porque el servidor registra la conexión completa en sus logs de acceso. Sin embargo, el SYN Scan (-sS) (escaneo por defecto si eres root) envía el SYN, recibe el SYN-ACK (sabe que el puerto está abierto), pero en lugar de enviar el ACK final, envía un RST (Reset) rompiendo la conexión al instante. Como la conexión nunca se completa, muchos firewalls y servidores antiguos no la registran.

2. Descubrimiento de Hosts (Ping Sweeps) avanzados

Los firewalls modernos bloquean el típico "Ping" (ICMP Echo Request). Nmap ofrece formas alternativas de saber si un host está vivo antes de escanear sus puertos:

# Ping básico (Desactivar escaneo de puertos):
nmap -sn 192.168.1.0/24

# Forzar descubrimiento usando TCP ACK en el puerto 80 (Saltar bloqueos ICMP):
nmap -sn -PA80 192.168.1.0/24

# Descubrimiento mediante UDP (Útil contra firewalls estrictos con TCP):
nmap -sn -PU53 192.168.1.0/24

# NO hacer Ping (Asumir que el host está vivo, clave si el firewall bloquea todo el ping):
nmap -Pn 192.168.1.10

3. Evasión Avanzada de Firewalls (IDS/IPS)

Los sistemas de detección de intrusos (IDS) detectan patrones de Nmap rápidamente. Aquí tienes el arsenal para ser invisible:

# 1. Fragmentación de paquetes: Divide los paquetes TCP en fragmentos muy pequeños (8 bytes) 
# para que el IDS no pueda reconstruir la firma del escaneo.
nmap -f 192.168.1.10

# 2. Señuelos (Decoys): Oculta tu IP entre un montón de IPs falsas. 
# El objetivo verá escaneos viniendo de Google, de su propia red y de ti.
nmap -D 8.8.8.8,10.0.0.1,RND:5,ME 192.168.1.10

# 3. Spoofing de MAC: Cambia tu dirección MAC para evadir controles de Capa 2 (NACs).
nmap --spoof-mac 00:11:22:33:44:55 192.168.1.10
# (O usar --spoof-mac Cisco, --spoof-mac Apple)

# 4. Modificar el puerto de origen: Muchos firewalls confían ciegamente en tráfico 
# que viene del puerto 53 (DNS) o 80 (HTTP).
nmap --source-port 53 192.168.1.10

🔴 Análisis Forense de Escaneo

Escanear es solo el 10% del trabajo; el 90% restante es saber interpretar los datos. He capturado el resultado de un escaneo Nmap muy ruidoso contra un servidor corporativo. Analiza el log y encuentra las tres brechas críticas de seguridad para conseguir la bandera.

>_ INICIAR RETO CTF 10

4. Optimización de Rendimiento y Tiempos

Escanear 65.535 puertos a través de internet puede tardar horas. Dominar los Timings es vital:

# Plantillas de tiempo (T0 a T5):
nmap -T4 192.168.1.10  # Rápido, recomendado para redes locales fiables.
nmap -T2 192.168.1.10  # Lento (Polite), usa menos ancho de banda, evade IDS.

# Control granular profundo:
# Forzar a Nmap a enviar al menos 1000 paquetes por segundo:
nmap --min-rate 1000 192.168.1.10

# Limitar los reintentos si se pierden paquetes (acelera el escaneo):
nmap --max-retries 1 192.168.1.10

5. Nmap Scripting Engine (NSE)

El verdadero poder de Nmap radica en sus más de 600 scripts en lenguaje Lua. Se dividen en categorías como vuln, exploit, brute, safe.

# Ejecutar los scripts seguros por defecto (Equivalente a -sC)
nmap --script default 192.168.1.10

# Evaluar vulnerabilidades conocidas en un servicio específico:
nmap --script vuln -p 443 192.168.1.10

# Atacar por fuerza bruta un FTP o SSH:
nmap --script ftp-brute --script-args userdb=users.txt,passdb=pass.txt -p 21 192.168.1.10

# Fuzzing de directorios web incrustado en Nmap:
nmap --script http-enum -p 80 192.168.1.10

6. Formatos de Exportación y Grepeo

Nunca hagas un escaneo sin guardarlo. Nmap provee tres formatos principales (-oN Normal, -oX XML, -oG Grepable). Para guardar los tres a la vez, usa -oA.

# Guardar todos los formatos con el nombre "escaneo_inicial"
nmap -sS -p- -sV -oA escaneo_inicial 192.168.1.10

# Analizar un archivo Grepable rápido desde la terminal (extraer IPs con puerto 80 abierto):
cat escaneo_inicial.gnmap | grep "80/open" | awk '{print $2}'