Escaneo de Puertos UDP contra Metasploitable3

  • Posted on: 20 April 2017
  • By: ReYDeS

Aunque 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 puertos registrados 53, 161/162, y 67/68) son tres de los más comunes. Debido al escaneo UDP es generalmente más lento y más difícil a comparación de TCP, algunos auditores de seguridad ignoran estos puertos. Esto es un error, pues los servicios UDP explotables son bastante comunes, y los atacantes ciertamente no ignoran por completo el protocolo. Afortunadamente, Nmap puede ayudar a hacer un inventario de puertos UDP.

Un escaneo UDP funciona enviando un paquete UDP hacia cada puerto objetivo. Para algunos puertos comunes como el 53 y 161, un “payload” o carga útil específico del protocolo es enviado para incrementar la velocidad de respuesta, pero para la mayoría de puertos el paquete esta vacío a menos las opciones “--data”, “--data-string” o “--data-length” sean especificados. Si se devuelve un error “ICMP port unreachable” (tipo 3, código 3), el puerto está “cerrado”. Otros errores “ICMP unreachable (tipo 3, códigos 0, 1, 2, 9, 10, o 13)”, marcan el puerto como filtrado. Ocasionalmente, un servicio responderá con un paquete UDP, indicando está abierto. Si no se recibe una respuesta después de la retransmisión, el puerto se clasifica como abierto|filtrado. Esto significa el puerto podría estar abierto, o tal vez un filtroS de paquetes está bloqueando la comunicación. La detección de versión (-sV) puede ser utilizada para diferenciar los puertos verdaderamente abiertos de aquellos filtrados.

Un gran reto con el escaneo UDP es hacerlo rápidamente. Los puertos abiertos y filtrados raramente envían cualquier respuesta, dejando a Nmap el tiempo de espera y luego conducir la retransmisión solo en caso se pierda la prueba o respuesta. Los puertos cerrados son frecuentemente un problema aún mayor. Ellos usualmente devuelven un error “ICMP port unreachable”. Pero a diferencia de los paquetes RST enviados por puertos TCP cerrados en respuesta hacia un escaneo SYN o Connect, muchos hosts limitan por defecto la velocidad de mensajes “ICMP port u reacheable”, particularmente Linux y Solaris son estrictos en este tema. Por ejemplo el kernel de Linux 2.4.20 limitan los mensajes “destination unreachable” a uno por segundo.

Nmap detecta la limitación de velocidad y se relentiza consecuentemente para evitar inundar la red con paquetes no útiles los cuales podrían ser descartados por la máquina objetivo. Desafortunadamente, el limite al estilo Linux de un paquete por segundo hace un escaneo de 65,535 puertos demande más de 18 horas. Entre las ideas para acelerar los escaneos UDP se incluye escanear más hosts en paralelo, hacer primero un escaneo rápido de solo los puertos populares, escanear desde detrás del firewall, y utilizar la opción “--host-timeout” para omitir hosts lentos.

# nmap -n -Pn -p- -sU -v 192.168. 0.X

El escaneo realizado con Nmap finalizó después de 12 minutos aproximadamente.

Otra herramienta la cual es factible utilizar es Unicornscan. Unicornscan es un herramienta asíncrona para estimular entregas y respuesta. Esto significa, envía paquetes rotos, desorganizados o fragmentados (sin un patrón regular a diferencia de otras herramientas de escaneo de puertos), hacia un host y espera por la respuesta del objetivo. Una de las principales características de Unicornscan es utilizar diferentes hilos para enviar paquetes y para recibirlos, diferente a otros escaners de puertos.

# unicornscan -Iv -mU 192.168. 0.X:a

Los siguientes escaneos se realizan contra la máquina virtual Metasploitable3, pero con el firewall desactivado.

Se realiza nuevamente el escaneo UDP utilizando Nmap. Este escaneo con un avance del casi el 13% debería finalizar luego de aproximadamente 2 horas y 50 minutos. Esto difiere sustancialmente del escaneo realizado cuando el Firewall de Windows estaba activo, por las razones ya mencionadas sobre como funciona el protocolo UDP, y como Nmap realiza este tipo de escaneo.

# nmap -n -Pn -p- -sU -v 192.168. 0.X

Se realiza nuevamente el escaneo UDP utilizando Unicorscan. Los resultados de este escaneo no difieren en cuanto al tiempo, comparado con el escaneo realizado cuando el Firewall de indows estaba activo.

# unicornscan -Iv -mU 192.168.0.70:a

Los puertos UDP encontrados en estado abierto; cuando el firewall de Windows está activo son: Nmap; 137, Unicornscan; 137, 161.

Los puertos UDP encontrados en estado abierto; cuando el firewall de Windows está desactivado son: Nmap; 137, Unicornscan; 137, 161.

Fuentes:

https://nmap.org
https://nmap.org/book/man-port-scanning-techniques.html
http://www.reydes.com/d/?q=Unicornscan
https://linux.die.net/man/1/unicornscan

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense