Muchos servicios de red se realizan utilizando el Protocolo de control de transmisión o TCP como protocolo de capa de transporte. Esto se debe a que TCP proporciona una comunicación orientada a la conexión que permite que el dispositivo de envío se asegure de que el destinatario del mensaje lo reciba realmente, ya que se establece una conexión bidireccional.
No todas las aplicaciones necesitan tener este tipo de conexión, especialmente las aplicaciones en tiempo real donde es preferible eliminar un mensaje en lugar de esperar a que se retransmita, lo que retrasa todo lo demás. El protocolo de datagramas de usuario o el protocolo de capa de transporte UDP se utiliza comúnmente para estas aplicaciones.
Un ejemplo de un tipo de programa que usa UDP son los videojuegos en línea. Estos juegos se basan en actualizaciones constantes enviadas desde el servidor y la computadora, y cualquier retraso causado por la retransmisión de datos es mucho más perturbador que manejar uno o dos paquetes perdidos.
Dado que estos servicios basados en UDP pueden ubicarse en cualquier red, es importante verificarlos como parte de una prueba de penetración. Debido a que UDP se usa tan ampliamente, generalmente es compatible con software de prueba de red, y Nmap no es una excepción.
Cómo escanear puertos UDP con Nmap
Probar puertos UDP con Nmap es muy similar a probar TCP. De hecho, la sintaxis es esencialmente la misma. La única diferencia es que debe especificar el indicador de tipo de escaneo como «-sU» en lugar de «-sT» o «-sS». Por ejemplo, un comando podría ser «nmap -sU 127.0.0.1 –top-ports 100 -vv» para buscar la dirección de loopback para los 100 puertos UDP más comunes y reportar los resultados con una salida doblemente detallada.

Con un escaneo UDP, debe tenerse en cuenta que esto llevará mucho tiempo. La mayoría de las solicitudes no obtienen una respuesta, lo que significa que el escaneo debe esperar a que se agote el tiempo de espera de la solicitud. Esto hace que los escaneos sean mucho más lentos que los escaneos de TCP, que generalmente devuelven una respuesta incluso si un puerto está cerrado.
Hay cuatro resultados para los puertos UDP: «abierto», «abierto | filtrado», «cerrado» y «filtrado». «Abierto» indica que una solicitud recibió una respuesta UDP. Abierto | filtrado indica que no se recibió respuesta, lo que podría indicar que un servicio estaba escuchando o que no había ningún servicio allí. «Cerrado» es un mensaje de error ICMP específico «Puerto no accesible». «Filtrado» indica otros mensajes de error ICMP inalcanzables.