Underc0de

[In]Seguridad Informática => Hacking => Mensaje iniciado por: Mavis en Marzo 13, 2014, 09:48:52 PM

Título: Aprendiendo a escanear puertos UDP
Publicado por: Mavis en Marzo 13, 2014, 09:48:52 PM
Durante las auditorías de seguridad, se suelen realizar escaneos sobre los puertos TCP en búsqueda de aquellos que están abiertos para explotar algún tipo de vulnerabilidad. Sin embargo, es una mala práctica común dejar fuera de consideración del análisis los puertos UDP durante los penetration test, siendo que en muchos casos los mismos aportan información relevante e incluso pueden explotarse en ciertas situaciones.

¿Qué es un puerto UDP?

User Datagram Protocol o UDP se basa en el intercambio de datagramas. A diferencia de los paquetes TCP no posee confirmación de recepción o de entrega.

Algunos de los protocolos más conocidos que utilizan paquetes UDP son DNS, DHCP, entre otras alternativas.

Consideraciones de puertos UDP sobre un Penetration Test

Nmap (http://nmap.org/) posee la capacidad de analizar puertos UDP de forma remota. Para llevar a cabo esta tarea, se debe especificar el parámetro –sU. Es importante aclarar de qué forma trabaja Nmap con respecto a este tipo de puertos.

Los estados posibles que Nmap vincula a los puertos UDP son:


Es importante comprender la diferencia existente entre cada uno de ellos. Quizá el estado que requiere mayor atención es open/filtered. Tal como se explicó anteriormente, esto se debe a que Nmap no es capaz de determinar si el puerto se encuentra abierto o filtrado debido a la ausencia de respuesta.

Definiendo un puerto UDP open/filtered

En caso de querer obtener más información sobre un puerto que ha sido catalogado como open/filtered, existe una alternativa. Debido a que por defecto Nmap envía los paquetes UDP en blanco para determinar si el puerto se encuentra abierto, es posible obtener, en algunos casos, más información forzando la búsqueda de la versión del servicio.

En la siguiente imagen puede observarse la respuesta de Nmap a partir de los 1000 puertos más comunes (parámetro –top-ports).

(http://i58.tinypic.com/1z1frwj.png)

Se realizó nuevamente el escaneo, pero esta vez especificando el parámetro –sUV para buscar la versión del servicio a la escucha del puerto específico. De esta manera, Nmap realiza pruebas específicas sobre aquellos puertos que fueron identificados como "open/filtered" u "open".

(http://i59.tinypic.com/nfjp12.png)

Esta técnica no siempre es determinante pero puede ayudar a obtener mejores resultados. Sin embargo, en este caso, vemos como a partir de la del parámetro -sUV pudo determinar que 944 puertos estaban cerrados contra 991 solo con el parámetro -sU. Esto mismo podría haber ocurrido con un puerto open/filtered donde, luego del análisis más profundo se pueda determinar que en realidad estaba abierto. De todas formas, es importante resaltar que la penalidad de este tipo de análisis se deriva en el tiempo, donde el segundo ejemplo demoró casi el doble del tiempo con respecto al primero.

Saludos!