Nmap sin miedo: construye el escaneo correcto
Nmap asusta porque su manual tiene más de 150 opciones. Pero no escaneas memorizando flags: escaneas tomando seis decisiones, y cada flag es la respuesta a una de ellas. Aprende las decisiones y el resto se cae por su peso.
Las seis decisiones de todo escaneo
1. ¿Qué hosts?
Uno, un rango, una lista o una red entera. Y antes de escanear a fondo, descubre qué está vivo:
nmap 10.0.0.5 # un host
nmap 10.0.0.0/24 # toda la subred
nmap -iL objetivos.txt # una lista desde fichero
nmap -sn 10.0.0.0/24 # solo descubrimiento (ping sweep), sin puertos
2. ¿Qué puertos?
Por defecto Nmap mira los 1000 más comunes. Ajusta según prisa vs. exhaustividad:
--top-ports 100 # los 100 más habituales (rápido)
-p 80,443,8080 # una lista concreta
-p 1-1024 # un rango
-p- # LOS 65535 (completo, pero lento)
3. ¿Cómo tocar el puerto?
-sS(SYN scan): manda un SYN y no completa el saludo TCP. Rápido y algo más discreto. Necesita privilegios (root).-sT(connect): abre la conexión completa. No necesita root, pero es más ruidoso y deja más rastro.-sU(UDP): para servicios UDP (DNS, SNMP, DHCP). Lento y con muchosopen|filtered; acótalo con--top-ports.
4. ¿Cuánto quieres averiguar?
-sV # versión del servicio (Apache 2.4.52, OpenSSH 8.9…)
-O # sistema operativo (por huella TCP/IP)
-sC # scripts NSE "por defecto" (banners, info útil y segura)
--script vuln # categoría de scripts de vulnerabilidades
Cuanto más preguntas, más ruido haces. -sV y NSE dejan rastro en logs e IDS.
5. ¿A qué ritmo?
De -T0 (paranoico, lentísimo, para evadir detección) a -T5 (insane, agresivo y puede perder resultados). -T3 es el defecto; -T4 es un buen equilibrio en redes estables.
6. ¿Cómo guardarlo?
-oN scan.txt # texto normal
-oX scan.xml # XML (para otras herramientas)
-oG scan.gnmap # "grepable"
-oA scan # los tres a la vez ← el que quieres
Guarda siempre: repetir un escaneo cuesta tiempo y hace más ruido.
Un comando, decodificado
nmap -sS -sV -p- -T4 -oA web01 10.0.0.5
-sS→ SYN scan (rápido, requiere root)-sV→ identifica versiones de servicio-p-→ los 65535 puertos-T4→ ritmo ágil-oA web01→ guarda en los tres formatos con prefijoweb0110.0.0.5→ el objetivo
-A: cómodo, pero ruidoso
-A es un atajo que agrupa -sV -O -sC --traceroute. Perfecto para una caja de CTF donde quieres todo de una; pésimo si intentas pasar desapercibido, porque enciende todas las sondas a la vez. Si lo usas, no hace falta que añadas -sV/-O/-sC: ya van dentro.
Trampas habituales
-sSsin root: Nmap cae automáticamente a-sT. Si esperabas sigilo, no lo tuviste.-sndescubre hosts pero no escanea puertos. Es lo contrario de un escaneo de puertos.-Pn: «asume que están vivos» y salta el ping. Útil cuando el objetivo bloquea ICMP y crees que hay algo ahí igualmente.- UDP es traicionero: lento y ambiguo (
open|filtered). No lances-sU -p-a la ligera.
Activo vs pasivo: por dónde empezar
Nmap es reconocimiento activo: tocas el objetivo y dejas rastro. Antes de eso está el reconocimiento pasivo (DNS, WHOIS, certificados), que no envía ni un paquete al objetivo — lo cuento en Reconocimiento pasivo de un dominio. La secuencia sana: primero pasivo, y escalas a activo solo con permiso.
Checklist
- ✅ Descubre hosts vivos (
-sn) antes de escanear a fondo. - ✅ Elige puertos con cabeza:
--top-portspara tantear,-p-cuando toque. - ✅
-sScon root; si no, sabrás que vas con-sT. - ✅ Pide solo lo que necesites:
-sV/NSE son ruidosos. - ✅ Guarda con
-oAsiempre. - ✅ Escanea únicamente lo que te pertenece o tienes autorización por escrito.
Nmap no es un botón mágico: es seis preguntas. Respóndelas en orden y el comando se escribe solo.