Escaneo UDP con Nmap

  • Posted on: 12 December 2013
  • By: ReYDeS

Mientras que los servicios más populares en Internet se ejecutan sobre el protocolo TCP, los servicios UDP están ampliamente desplegados. DNS, SNMP, y DHCP (en los puertos registrados 53, 161/162, y 67/68) son los tres más comunes. Debido a que el escaneo UDP es generalmente más lento y más difícil que TCP, algunos auditores en seguridad ignoran estos puertos. Esto es un error, pues servicios UDP explotables son comunes y los atacantes ciertamente no ignoran este protocolo. Afortunadamente Nmap puede ayudar a inventariar los puertos UDP.

El escaneo UDP se activa con la opción (-sU). Puede ser combinada con un tipo de escaneo TCP, tal como el escaneo SYN (-sS) para verificar ambos protocolos en la misma ejecución.

El escaneo UDP funciona enviando paquetes UDP a cada puerto del objetivo. Para algunos puertos comunes como el 53 y 161, se envía una carga específica del protocolo, pero la mayoría de puertos el paquete está vacío. La opción (--data-lenght) puede ser utilizada para enviar una carga aleatoria a cada puerto o (si se especifica el valor de 0) se deshabilita la carga. Si un error “ICMP port unreachable” (tipo 3, código 3) es devuelto, el puerto está cerrado (closed). Otros errores “ICMP unreachable (tipo 3, códigos 1, 2, 9, 10 y 13) marcan el puerto como filtrado (filtered). Ocasionalmente, un servicio responderá con un paquete UDP, indicando que está abierto (open). Si no se recibe respuesta después de las retransmisiones, el puerto es clasificado como abierto|filtrado (open|filetered). Esto significa que el puerto podría está abierto, o tal vez filtros de paquetes están bloqueando la comunicación. El escaneo de detección de versión (-sV) puede ser utilizado para ayudar a diferenciar los puertos abiertos en verdad de aquellos filtrados.

Un gran reto para los escaneos UDP es hacerlos rápidos. Los puertos abiertos o filtrados raramente envían una respuesta, dejando a Nmap un tiempo de espera y luego realizar una retransmisión, solo en caso que la prueba o respuesta sea perdida. Los puertos cerrados son frecuentemente un gran problema. Estos usualmente no envían de regreso un error“ICMP port unreachable”. Pero a diferencia de los paquetes RST envían por los puertos TCP cerrados en respuesta a un escaneo Connect o SYN, muchos host raramente limitan los mensajes “ICMP port unreachable” por defecto. Linux y Solaris son particularmente estrictos sobre esto. Por ejemplo el kernel de Linux 2.4.20 limita los mensajes “destination unreachable” a uno por segundo (en net/ipv4/icmp.c).

Nmap detecta el límite de velocidad y desacelera para evitar la inundación de la red con paquetes inútiles que la máquina objetivo descarta. Desafortunadamente, el limite al estilo linux de un paquete por segundo hace que un escaneo UDP a 65,536 puerto pueda tomar más de 18 horas. Algunas ideas para mejorar la velocidad de los escaneos UDP, implican escanear más objetivos en paralelo, realizar primero escaneos rápidos a los puertos más populares, escanear por detrás del firewall, y utilizar (--host-timeout) para evitar objetivos lentos.

Utilizando nmap se realiza un escaneo UDP contra Metasploitable2. Nótese como el tiempo aproximado para el termino del escaneo es de aproximadamente 19 horas.

Utilizando otro escaner de puertos unicorscan, se procede a realizar el mismo escaneo de puertos UDP. Nótese como el tiempo total no supera los 4 minutos.

Para verificar la fiabilidad de los resultados, se sugiere compararlos con los puertos UDP en atención en Metasploitable2.

Fuentes:

http://nmap.org/book/man-port-scanning-techniques.html
http://www.unicornscan.org/
http://sourceforge.net/projects/metasploitable/files/Metasploitable2/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1