Escaneo TCP y UDP con Nmap
Un puerto no llega a Nmap con una etiqueta incorporada. La herramienta envía un probe, observa una respuesta o su ausencia y clasifica esa observación según la técnica elegida. El estado resultante pertenece a esa combinación de origen, protocolo, paquete, instante y política de red. Cambiar cualquiera de esas variables puede cambiar la clasificación sin que el servicio haya sido modificado.
Esta distinción es especialmente importante en UDP. TCP ofrece flags y una máquina de estados que permiten reconocer aceptación o rechazo con bastante precisión. UDP carece de handshake. En muchos casos, el silencio conserva dos explicaciones igualmente compatibles: el servicio recibió un datagrama que decidió ignorar o un filtro descartó el tráfico.
Estados
Sección titulada «Estados»| Estado | Conclusión disponible |
|---|---|
open |
una aplicación aceptó la interacción del escaneo |
closed |
el host respondió, pero no había listener para ese probe |
filtered |
un filtro o problema de red impidió decidir entre abierto y cerrado |
unfiltered |
el puerto es alcanzable, pero la técnica no distingue abierto y cerrado |
open | filtered |
el silencio encaja con un listener que no responde o con filtrado |
closed | filtered |
el idle scan no separa ambos estados |
Usa --reason para conservar la respuesta que sustentó la clasificación y --packet-trace sobre un caso pequeño para confirmar el flujo. La etiqueta orienta el trabajo. La razón permite auditarla.
Seleccionar puertos
Sección titulada «Seleccionar puertos»Sin -p, Nmap escanea los mil puertos más frecuentes de cada protocolo solicitado según nmap-services. No significa 1–1000.
| Selección | Efecto |
|---|---|
-F |
cien puertos frecuentes |
--top-ports 1000 |
mil puertos frecuentes |
-p 22,80,443 |
lista explícita |
-p 1-1024 |
rango explícito |
-p- |
1–65535 |
-p T:80,443,U:53,161 |
selección separada en un escaneo mixto |
Conserva primero una vista rápida y después amplía cobertura. La primera pasada abre líneas de trabajo mientras la segunda comprueba puertos menos frecuentes. Aplicar detección intensiva y categorías NSE a 65.535 puertos mezcla descubrimiento, identificación y ejecución de scripts en una sola operación difícil de interpretar y de repetir.
SYN scan
Sección titulada «SYN scan»-sS construye un SYN mediante raw packets. Un SYN/ACK indica open y Nmap envía RST en vez de completar el ACK final. Un RST indica closed. Silencio o determinados errores ICMP producen filtered.
sudo nmap -sS -n -Pn --top-ports 1000 --reason \ -oA scans/03-tcp-top TARGET_IPsudo aporta el privilegio para raw packets en Unix. -Pn se usa aquí solo si el host ya fue confirmado. El servicio puede no registrar una sesión completa, pero firewalls, telemetría de flujos, IDS/IPS y el stack del host observan los SYN. El RST que envía Nmap también forma parte de la interacción. Un SYN scan reduce el estado de aplicación frente a una conexión completa. No elimina su huella de red.
TCP connect scan
Sección titulada «TCP connect scan»-sT usa connect() del sistema operativo. Si el puerto está abierto, completa el three-way handshake y crea una conexión normal antes de cerrarla:
nmap -sT -n -Pn -p 22,80,443 --reason \ -oA scans/04-tcp-connect TARGET_IPEs el comportamiento habitual sin privilegios raw. También sirve para comparar una conexión completa con un SYN scan, pero deja más estado en el servicio y puede activar lógica de aplicación.
ACK scan
Sección titulada «ACK scan»-sA envía un ACK fuera de una conexión. Un stack alcanzable suele responder RST, que Nmap clasifica unfiltered. No distingue un listener abierto de un puerto cerrado:
sudo nmap -sA -n -Pn -p PORT_LIST --reason TARGET_IPUn firewall stateful puede descartar correctamente el ACK porque no pertenece a una sesión. La comparación con SYN ayuda a formular una hipótesis sobre filtrado, no a demostrar la regla exacta.
UDP scan
Sección titulada «UDP scan»UDP no tiene handshake. El mapa básico es:
respuesta UDP -> openICMP port unreachable, type 3/3 -> closedotro error ICMP -> filteredsin respuesta -> open|filteredUn servicio UDP puede ignorar un datagrama vacío porque espera una cabecera, un identificador de transacción o una comunidad válida. El host también puede limitar la tasa de errores ICMP. En ese caso, los primeros puertos cerrados pueden producir port unreachable y los siguientes quedar como open|filtered aunque compartan el mismo estado real. Empieza por puertos plausibles:
sudo nmap -sU -n -Pn --top-ports 100 --reason \ -oA scans/05-udp-top TARGET_IPDespués aplica detección de versiones a candidatos. -sV envía payloads de protocolo que pueden obtener una respuesta:
sudo nmap -sU -sV -n -Pn -p UDP_PORT_LIST --reason \ -oA scans/06-udp-services TARGET_IPopen|filtered no confirma el servicio. Usa una petición válida del protocolo, una captura y, si es posible, una observación desde otra posición. Una respuesta de aplicación confirma más que la desaparición del silencio. Un error de parsing también puede ser útil si demuestra que el proceso reconoció parte del protocolo.
Cobertura y falsos negativos
Sección titulada «Cobertura y falsos negativos»-p- cubre los 65.535 puertos TCP:
sudo nmap -sS -n -Pn -p- --reason --stats-every 30s \ -oA scans/07-tcp-all TARGET_IP--stats-every 30s solo informa progreso. La precisión depende de pérdida, RTT, rate limiting, timeouts, retransmisiones y cambios del objetivo. Si una ejecución rápida encuentra menos puertos, no concluyas que desaparecieron. Repite los candidatos con timing conservador y una sola variable modificada.
Cuando dos pasadas discrepan, compara primero si ambas enviaron el mismo tipo y número de probes. Después revisa retransmisiones, razones, ruta y captura. Un puerto que aparece closed en una ejecución y filtered en otra puede señalar una ACL dinámica, pero también que el segundo RST se perdió. La discrepancia es una hipótesis que se investiga, no un resultado que se promedia.
Siguientes pasos
Sección titulada «Siguientes pasos»Pasa los puertos confirmados a detección de servicios. Abre después el protocolo o servicio canónico. Usa timing, rutas, filtros y evasión cuando dos posiciones o técnicas discrepen.