hacktricks/network-services-pentesting/5353-udp-multicast-dns-mdns.md

87 lines
5.9 KiB
Markdown

# 5353/UDP Multicast DNS (mDNS) y DNS-SD
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **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:
```bash
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:
```bash
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:
```bash
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:
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
{% endcontent-ref %}
## Referencias
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}