5353/UDP Multicast DNS (mDNS) and DNS-SD

Support HackTricks

Información Básica

Multicast DNS (mDNS) permite operaciones similares a DNS dentro de redes locales sin necesidad de un servidor DNS tradicional. Funciona en el puerto UDP 5353 y permite que los dispositivos se descubran entre sí y sus servicios, comúnmente visto en varios dispositivos IoT. DNS Service Discovery (DNS-SD), a menudo utilizado junto con mDNS, ayuda a identificar los servicios disponibles en la red a través de consultas DNS estándar.

PORT     STATE SERVICE
5353/udp open  zeroconf

Operación de mDNS

En entornos sin un servidor DNS estándar, mDNS permite a los dispositivos resolver nombres de dominio que terminan en .local consultando la dirección de multidifusión 224.0.0.251 (IPv4) o FF02::FB (IPv6). Aspectos importantes de mDNS incluyen un valor de Tiempo de Vida (TTL) que indica la validez del registro y un bit QU que distingue entre consultas unicast y multicast. Desde el punto de vista de la seguridad, es crucial que las implementaciones de mDNS verifiquen que la dirección de origen del paquete se alinee con la subred local.

Funcionamiento de DNS-SD

DNS-SD facilita el descubrimiento de servicios de red consultando registros de puntero (PTR) que mapean tipos de servicio a sus instancias. Los servicios se identifican utilizando un patrón _<Service>._tcp o _<Service>._udp dentro del dominio .local, lo que lleva al descubrimiento de los correspondientes registros SRV y TXT que proporcionan información detallada sobre el servicio.

Exploración de Red

Uso de nmap

Un comando útil para escanear la red local en busca de servicios mDNS es:

nmap -Pn -sUC -p5353 [target IP address]

Este comando ayuda a identificar puertos mDNS abiertos y los servicios anunciados a través de ellos.

Enumeración de Red con Pholus

Para enviar activamente solicitudes mDNS y capturar tráfico, se puede utilizar la herramienta Pholus de la siguiente manera:

sudo python3 pholus3.py [network interface] -rq -stimeout 10

Attacks

Exploiting mDNS Probing

Un vector de ataque implica enviar respuestas falsificadas a las sondas mDNS, sugiriendo que todos los nombres potenciales ya están en uso, obstaculizando así que nuevos dispositivos seleccionen un nombre único. Esto se puede ejecutar utilizando:

sudo python pholus.py [network interface] -afre -stimeout 1000

Esta técnica bloquea efectivamente que nuevos dispositivos registren sus servicios en la red.

En resumen, entender el funcionamiento de mDNS y DNS-SD es crucial para la gestión y seguridad de la red. Herramientas como nmap y Pholus ofrecen información valiosa sobre los servicios de la red local, mientras que la conciencia de las vulnerabilidades potenciales ayuda a protegerse contra ataques.

Spoofing/MitM

El ataque más interesante que puedes realizar sobre este servicio es llevar a cabo un MitM en la comunicación entre el cliente y el servidor real. Podrías obtener archivos sensibles (MitM la comunicación con la impresora) o incluso credenciales (autenticación de Windows). Para más información consulta:

Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

Referencias

Support HackTricks

Last updated