Escaneo de puertos TCP y UDP

NmapBeginner
Practicar Ahora

Introducción

Bienvenido al laboratorio de Escaneo de puertos TCP y UDP. El escaneo de puertos es una técnica fundamental utilizada por administradores de red y profesionales de la seguridad para descubrir servicios activos en una red informática. Al enviar paquetes de red específicos a un objetivo y analizar las respuestas, podemos determinar qué puertos están abiertos, cerrados o filtrados por un firewall.

Un puerto abierto no significa automáticamente "vulnerable", pero sí significa "límite de servicio accesible". Es por eso que el escaneo de puertos es fundamental para el reconocimiento: identifica las puertas que un sistema está exponiendo a la red.

En este laboratorio, explorarás la mecánica de bajo nivel del escaneo de puertos de red utilizando Nmap (Network Mapper), la herramienta estándar de la industria para el descubrimiento de redes. Aprenderás a realizar tres tipos distintos de escaneos: el fiable TCP Connect, el sigiloso TCP SYN y el escaneo de puertos UDP sin conexión. A través de la práctica, comprenderás cómo responden los diferentes protocolos de red a las sondas de escaneo.

Ejecutar un escaneo TCP Connect (-sT)

En este paso, comenzaremos realizando un escaneo TCP Connect. Actualmente te encuentras en tu directorio de trabajo predeterminado, ~/project.

Un escaneo TCP Connect es el tipo de escaneo de puertos más directo. Se basa en las funciones de red integradas del sistema operativo para establecer una conexión completa con el puerto objetivo. Esto significa que completa el protocolo de enlace (handshake) de tres vías de TCP: envía un paquete SYN, recibe un paquete SYN-ACK del objetivo y, finalmente, envía un paquete ACK de vuelta para establecer la conexión.

Debido a que utiliza la pila de red normal, este escaneo es conceptualmente simple y fiable. También es un buen recordatorio de que el escaneo es, en realidad, solo una interacción controlada con la forma en que los protocolos están diseñados para comportarse.

Al completar la conexión, este escaneo es altamente fiable. Sin embargo, también es muy "ruidoso". Dado que se realiza una conexión completa, los registros de aplicaciones del sistema objetivo casi con seguridad registrarán el intento de conexión, lo que facilita a los administradores detectar el escaneo.

Utilicemos Nmap para realizar un escaneo TCP Connect contra nuestra máquina local (localhost) en el puerto 8080, donde actualmente se está ejecutando un servicio web en segundo plano. El flag -sT le indica a Nmap que utilice el método TCP Connect, y el flag -p especifica el número de puerto.

Ejecuta el siguiente comando en tu terminal:

nmap -sT -p 8080 localhost

Después de ejecutar el comando, deberías ver una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-07 15:56 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000086s latency).
Other addresses for localhost (not scanned): ::1

PORT     STATE SERVICE
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds

La salida muestra claramente que el puerto 8080 está open (abierto) y utiliza el protocolo TCP. El servicio se identifica como http-proxy (o similar, dependiendo de la versión de Nmap), lo que coincide con el servidor HTTP de Python que tenemos ejecutándose en segundo plano.

Ejecutar un escaneo SYN sigiloso (-sS)

En este paso, exploraremos una técnica más avanzada y comúnmente utilizada: el escaneo TCP SYN, también conocido como escaneo "semiabierto" (Half-Open).

A diferencia del escaneo TCP Connect, el escaneo SYN no completa el protocolo de enlace de tres vías. Envía un paquete SYN (solicitando una conexión) y espera una respuesta. Si el puerto objetivo está abierto, responde con un paquete SYN-ACK. En este punto, en lugar de enviar un ACK para completar la conexión, Nmap envía inmediatamente un paquete RST (Reset) para cerrar la conexión antes de que se establezca por completo.

Es por esto que el escaneo SYN a menudo se describe como "semiabierto". Sigue dependiendo del comportamiento TCP del objetivo, pero minimiza la cantidad de conexión que se completa.

Este método se considera "sigiloso" porque muchas aplicaciones solo registran las conexiones completamente establecidas. Al cerrar la conexión prematuramente, el escaneo SYN a menudo evita el registro a nivel de aplicación. Sin embargo, debido a que requiere crear paquetes de red sin procesar (raw packets) en lugar de utilizar las funciones estándar del sistema operativo, este escaneo requiere privilegios de root (sudo).

Realicemos un escaneo SYN contra el mismo puerto 8080 en nuestra máquina local. Usaremos el flag -sS para especificar el método de escaneo SYN.

Ejecuta el siguiente comando en tu terminal:

sudo nmap -sS -p 8080 localhost

Verás una salida similar a la del paso anterior:

Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-07 15:56 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000042s latency).
Other addresses for localhost (not scanned): ::1

PORT     STATE SERVICE
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

Observa que el resultado es idéntico: el puerto sigue identificado como open. La diferencia radica totalmente en cómo se intercambiaron los paquetes de red detrás de escena. El escaneo SYN es el tipo de escaneo predeterminado en Nmap cuando se ejecuta con privilegios de sudo debido a su velocidad y sigilo.

Ejecutar un escaneo de puertos UDP (-sU)

En este paso final, cambiaremos nuestro enfoque de TCP a UDP (User Datagram Protocol).

UDP es un protocolo sin conexión. A diferencia de TCP, no hay un proceso de enlace para establecer una conexión antes de enviar datos. Cuando envías un paquete UDP a un puerto, el objetivo normalmente no envía una confirmación si el puerto está abierto. Solo responde con un error "ICMP Port Unreachable" si el puerto está cerrado.

Esa asimetría es la razón por la que los escaneos UDP son más difíciles de interpretar. El silencio puede significar éxito, filtrado o simplemente nada. Por lo tanto, los analistas deben leer los resultados UDP con más cuidado que los resultados TCP.

Esto hace que el escaneo UDP sea notoriamente difícil y lento. Si Nmap envía un paquete UDP y no recibe respuesta, no puede estar completamente seguro de si el puerto está abierto y aceptando datos silenciosamente, o si un firewall simplemente descartó el paquete. Por lo tanto, Nmap a menudo informa estos puertos como open|filtered.

Realicemos un escaneo UDP contra un puerto arbitrario (como 5353) que sabemos que no está alojando un servicio en nuestra máquina local. Esto demostrará cómo responde el sistema operativo cuando un puerto está explícitamente cerrado. Al igual que el escaneo SYN, el escaneo UDP requiere privilegios de root para crear paquetes sin procesar.

Ejecuta el siguiente comando en tu terminal:

sudo nmap -sU -p 5353 localhost

El escaneo puede tardar un poco más que los escaneos TCP. Una vez que se complete, deberías ver una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-07 15:56 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000038s latency).
Other addresses for localhost (not scanned): ::1

PORT     STATE  SERVICE
5353/udp closed zeroconf

Nmap done: 1 IP address (1 host up) scanned in 1.09 seconds

Observa que el estado se informa como closed. Cuando Nmap envía un paquete UDP a un puerto cerrado, el sistema operativo del objetivo normalmente responde con un mensaje de error "ICMP Port Unreachable". Debido a que Nmap recibió este error explícito, puede marcar con confianza el puerto como closed. Si un servicio estuviera ejecutándose en este puerto y simplemente no respondiera (lo cual es común en aplicaciones UDP), Nmap no recibiría este error ICMP y probablemente informaría el estado del puerto de manera ambigua como open|filtered. Esta dependencia de los mensajes de error ICMP es un sello distintivo del escaneo de puertos UDP.

Resumen

¡Felicidades! Has completado con éxito el laboratorio de Escaneo de puertos TCP y UDP.

En este laboratorio, aprendiste a utilizar Nmap para realizar diferentes tipos de escaneos de red. Comenzaste con el fiable pero ruidoso escaneo TCP Connect (-sT), que completa el protocolo de enlace de tres vías. Luego pasaste al sigiloso escaneo TCP SYN (-sS), que identifica puertos abiertos dejando las conexiones semiabiertas para evadir el registro básico. Finalmente, exploraste las complejidades del escaneo UDP sin conexión (-sU), comprendiendo por qué los puertos UDP a menudo aparecen como open|filtered.

Estas técnicas de escaneo fundamentales son habilidades esenciales para comprender la topología de la red y asegurar los sistemas contra el acceso no autorizado.