Skip to content

Nmap: Escaneo de Red y Reconocimiento

Nmap (Network Mapper) es una herramienta de código abierto para exploración de redes y auditoría de seguridad. Se utiliza para descubrir hosts y servicios en una red, enviando paquetes y analizando las respuestas. Es esencial en fases de reconocimiento de pentesting.

Escaneo predeterminado. Completo y rápido, no completa la conexión TCP (half-open). Requiere privilegios root.

Terminal window
nmap -sS 192.168.1.1

Escaneo que completa la conexión TCP. Útil sin privilegios root.

Terminal window
nmap -sT 192.168.1.1

Escaneo de puertos UDP. Lento pero necesario para servicios DNS, DHCP, etc.

Terminal window
nmap -sU 192.168.1.1
  • Null Scan (-sN): No setea ningún flag (solo para sistemas UNIX).
  • FIN Scan (-sF): Envía paquete FIN.
  • Xmas Scan (-sX): Envía paquete con flags FIN, PSH y URG.

Divide los paquetes en fragmentos pequeños para evadir filtros.

Terminal window
nmap -f 192.168.1.1

Especifica un tamaño de paquete personalizado para evadir filtros. El valor debe ser múltiplo de 8.

Terminal window
nmap --mtu 24 192.168.1.1

Enmascara la dirección MAC del escáner para evadir filtros basados en MAC.

Terminal window
nmap --spoof-mac 0 192.168.1.1 # MAC aleatoria
nmap --spoof-mac Cisco 192.168.1.1 # Prefijo de fabricante específico

Regula el tiempo entre paquetes para evadir IDS/IPS.

Terminal window
nmap --scan-delay 1s 192.168.1.1 # 1 segundo entre paquetes
nmap --max-rate 10 192.168.1.1 # Máximo 10 paquetes por segundo

Longitud de Datos Aleatoria (--data-length)

Section titled “Longitud de Datos Aleatoria (--data-length)”

Añade datos aleatorios a los paquetes para evadir IDS.

Terminal window
nmap --data-length 100 192.168.1.1

Uso de Puerto Fuente Específico (--source-port)

Section titled “Uso de Puerto Fuente Específico (--source-port)”

Engaña firewalls que permiten tráfico de puertos conocidos (ej: 53).

Terminal window
nmap --source-port 53 192.168.1.1

Oculta la IP real entre direcciones falsas.

Terminal window
nmap -D RND:10 192.168.1.1 # 10 decoys aleatorios
nmap -D decoy1,decoy2,ME 192.168.1.1 # Decoys específicos
  • safe: Scripts no intrusivos
  • vuln: Detección de vulnerabilidades
  • exploit: Intentos de explotación
  • auth: Bypass de autenticación
  • brute: Fuerza bruta
  • safe: Scripts no intrusivos (default)
  • auth: Bypass de autenticación
  • brute: Ataques de fuerza bruta
  • discovery: Descubrimiento de servicios
  • dos: Denegación de servicio
  • exploit: Explotación de vulnerabilidades
  • vuln: Detección de vulnerabilidades
Terminal window
# Escaneo con scripts seguros
nmap --script safe 192.168.1.1
# Detectar vulnerabilidades comunes
nmap --script vuln 192.168.1.1
# Fuerza bruta en servicio SSH
nmap --script ssh-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1
Terminal window
# Escanear vulnerabilidades comunes
nmap --script vuln 192.168.1.1
# Fuerza bruta en FTP
nmap --script ftp-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1
# Detectar servidores VNC sin autenticación
nmap --script realvnc-auth-bypass 192.168.1.1
# Escanear vulnerabilidades de SMB
nmap --script smb-vuln* 192.168.1.1
  • open: Accesible y con servicio activo
  • closed: Accesible pero sin servicio
  • filtered: Bloqueado por firewall
  • unfiltered: Accesible pero estado indeterminado
  • open|filtered: No se pudo determinar (UDP)
  • closed|filtered: No se pudo determinar (UDP)
Terminal window
# Versión exacta de servicios
nmap -sV 192.168.1.1
# Sistema operativo
nmap -O 192.168.1.1
# Traceroute
nmap --traceroute 192.168.1.1
Terminal window
# Escuchar en puerto (netcat mejorado)
ncat -lvp 4444
# Conectar a servidor
ncat 192.168.1.1 80
Terminal window
# Comparar dos escaneos
ndiff scan1.xml scan2.xml

Enumeración de Puertos con Descriptores de Archivo

Section titled “Enumeración de Puertos con Descriptores de Archivo”

Alternativa para sistemas Linux usando /proc:

Terminal window
# Listar puertos abiertos TCP
cat /proc/net/tcp | awk '{print $2}' | grep -v 'local_address' | awk '{print $1}' | cut -d ':' -f2 | sort -nu
# Listar puertos UDP
cat /proc/net/udp | awk '{print $2}' | grep -v 'local_address' | awk '{print $1}' | cut -d ':' -f2 | sort -nu

Escaneo ARP para redes locales. Rápido y fiable en LAN.

Terminal window
nmap -PR 192.168.1.0/24
  • Echo Request (-PE): Ping tradicional.
  • Timestamp Request (-PP): Solicitud de marca de tiempo.
  • Netmask Request (-PM): Solicitud de máscara de red.
Terminal window
nmap -PE 192.168.1.0/24
  1. Escaneo Sigiloso:

    Terminal window
    nmap -T1 -f --data-length 50 --max-parallelism 1 192.168.1.1
  2. Identificación de Servicios y Versiones:

    Terminal window
    nmap -sV 192.168.1.1
  3. Detección de SO:

    Terminal window
    nmap -O 192.168.1.1
  4. Guardar Resultados:

    Terminal window
    nmap -oN resultado.txt 192.168.1.1 # Formato normal
    nmap -oX resultado.xml 192.168.1.1 # Formato XML
  5. Escaneo Completo:

    Terminal window
    nmap -A 192.168.1.1 # Combina detección OS, versión, scripts y traceroute
Terminal window
nmap -sn 192.168.1.0/24 # Descubrimiento de hosts
Terminal window
nmap -p- -sV -sC -O -T4 192.168.1.100 # Todos los puertos, versión, scripts, detección OS
Terminal window
nmap -sS -f --source-port 53 -D 10.0.0.1,10.0.0.2,ME -T2 192.168.1.1
Terminal window
nmap -T4 -A -v -oA full_scan 10.0.0.0/24
Terminal window
nmap -T1 -sS -f --data-length 50 -D RND:5 --source-port 53 -g 53 --spoof-mac 0 -oN stealth_scan.txt 192.168.1.1
Terminal window
nmap -Pn -sV --script vulners 192.168.1.1

Nota: Siempre obtener permiso por escrito antes de escanear redes ajenas.

Tip: Usa -v o -vv para aumentar el nivel de verbosidad y ver detalles en tiempo real.