Saltearse al contenido

nmap

nmap (Network Mapper) es el escáner de red y de puertos estándar. Descubre hosts, puertos abiertos, servicios, versiones y, con sus scripts (NSE), detecta vulnerabilidades y enumera servicios. Es casi siempre el primer paso de cualquier pentest o CTF (ver recon, Metodología CTF).

nmap -sS -p- 10.10.10.10 # SYN scan de TODOS los puertos (rápido, requiere root)
nmap -sV -sC -p 22,80,443 host # versión de servicios + scripts por defecto
nmap -sn 10.10.10.0/24 # host discovery (ping sweep) sin escanear puertos
nmap -Pn host # saltar el ping (host que no responde a ICMP)
# 1. descubrir TODOS los puertos abiertos, rápido
nmap -sS -p- --min-rate 5000 -oN allports.txt 10.10.10.10
# 2. enumerar a fondo SOLO los puertos abiertos encontrados
nmap -sV -sC -p 22,80,445 -oN detail.txt 10.10.10.10
# -> no escanear -sC -sV sobre los 65535 puertos (lento); primero descubrir, luego profundizar
-sS/-sT SYN scan (sigiloso, root) / TCP connect (sin root)
-sU UDP scan (lento pero importante: DNS, SNMP, etc.)
-p- todos los puertos (1-65535); -p 80,443 puertos concretos; --top-ports N
-sV detección de versión; -O detección de SO
-sC scripts por defecto (seguros); --script=... scripts concretos
-T4 timing más rápido (T0 sigiloso ... T5 agresivo)
-oA base guardar en los 3 formatos (normal/grepable/XML)
nmap --script vuln host # scripts de detección de vulns
nmap --script smb-enum-shares host # enumerar shares SMB (ver área Windows & AD)
nmap --script ssl-enum-ciphers -p443 host # auditar TLS (ver crypto-tls)
nmap --script http-enum host # enumerar rutas web comunes
# scripts en /usr/share/nmap/scripts/ organizados por categoría
- --min-rate acelera; -T4/-T5 agresivo (ruidoso); -T1/-T2 lento y sigiloso
- en redes frágiles/OT: NO escanear agresivo (ver ot-protocolos) -> puede tumbar servicios
- fragmentación (-f), señuelos (-D), source port para evadir controles (con cabeza)
  • Flujo dos fases: descubrir todos los puertos rápido, luego -sV -sC solo sobre los abiertos.
  • NSE convierte nmap en enumerador y detector de vulns (SMB, TLS, http-enum).
  • Guardar siempre la salida (-oA) para documentar y para el reporte.
  • Cuidado con el sigilo/fragilidad: en OT/prod, escaneo agresivo puede causar caídas (Protocolos industriales (Modbus)).
  • Dos fases: descubrimiento rápido de puertos (-p- --min-rate) y luego -sCV solo sobre los abiertos; no -sCV -p- a lo bruto.
  • Error típico: escanear como no-root y perder SYN scan/detección de OS; usa sudo para -sS/-O.
  • Ajusta el timing (-T4 en redes buenas, más bajo en frágiles) y guarda la salida (-oA) siempre.
  • Las categorías NSE (--script vuln, safe, default) son potentes pero algunas intrusivas; sabe cuál lanzas.
  • Host discovery del rango (o -Pn si no responde a ping)
  • Escaneo de TODOS los puertos (rápido, -p-)
  • Enumeración -sV -sC solo sobre puertos abiertos
  • UDP en servicios clave (DNS/SNMP) si procede
  • NSE para vulns/enumeración (SMB, TLS, http)
  • Guardar salida (-oA) para el reporte
  • Ajustar timing/sigilo al entorno (cuidado en OT/prod)