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

87 lines
6.1 KiB
Markdown

# 5353/UDP Multicast DNS (mDNS) et DNS-SD
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :<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">\
Apprenez et pratiquez le hacking GCP : <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>Soutenir HackTricks</summary>
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
</details>
{% endhint %}
## **Informations de base**
**Multicast DNS (mDNS)** permet des **opérations similaires à DNS** au sein des réseaux locaux sans avoir besoin d'un serveur DNS traditionnel. Il fonctionne sur le **port UDP 5353** et permet aux appareils de se découvrir mutuellement et leurs services, couramment observé dans divers appareils IoT. **DNS Service Discovery (DNS-SD)**, souvent utilisé avec mDNS, aide à identifier les services disponibles sur le réseau via des requêtes DNS standard.
```
PORT STATE SERVICE
5353/udp open zeroconf
```
### **Fonctionnement de mDNS**
Dans des environnements sans serveur DNS standard, mDNS permet aux appareils de résoudre des noms de domaine se terminant par **.local** en interrogeant l'adresse multicast **224.0.0.251** (IPv4) ou **FF02::FB** (IPv6). Les aspects importants de mDNS incluent une valeur **Time-to-Live (TTL)** indiquant la validité des enregistrements et un **bit QU** distinguant les requêtes unicast et multicast. D'un point de vue sécurité, il est crucial que les implémentations de mDNS vérifient que l'adresse source du paquet correspond au sous-réseau local.
### **Fonctionnement de DNS-SD**
DNS-SD facilite la découverte de services réseau en interrogeant des enregistrements de pointeur (PTR) qui associent les types de services à leurs instances. Les services sont identifiés à l'aide d'un motif **_\<Service>.\_tcp ou \_\<Service>.\_udp** dans le domaine **.local**, ce qui conduit à la découverte des **enregistrements SRV** et **TXT** correspondants qui fournissent des informations détaillées sur le service.
### **Exploration du Réseau**
#### **Utilisation de nmap**
Une commande utile pour scanner le réseau local à la recherche de services mDNS est :
```bash
nmap -Pn -sUC -p5353 [target IP address]
```
Cette commande aide à identifier les ports mDNS ouverts et les services annoncés sur ceux-ci.
#### **Énumération de Réseau avec Pholus**
Pour envoyer activement des requêtes mDNS et capturer le trafic, l'outil **Pholus** peut être utilisé comme suit :
```bash
sudo python3 pholus3.py [network interface] -rq -stimeout 10
```
## Attaques
### **Exploitation de l'interrogation mDNS**
Un vecteur d'attaque consiste à envoyer des réponses falsifiées aux requêtes mDNS, suggérant que tous les noms potentiels sont déjà utilisés, entravant ainsi les nouveaux appareils dans le choix d'un nom unique. Cela peut être exécuté en utilisant :
```bash
sudo python pholus.py [network interface] -afre -stimeout 1000
```
Cette technique bloque efficacement les nouveaux appareils de l'enregistrement de leurs services sur le réseau.
**En résumé**, comprendre le fonctionnement de mDNS et DNS-SD est crucial pour la gestion et la sécurité des réseaux. Des outils comme **nmap** et **Pholus** offrent des informations précieuses sur les services de réseau local, tandis que la sensibilisation aux vulnérabilités potentielles aide à se protéger contre les attaques.
### Spoofing/MitM
L'attaque la plus intéressante que vous pouvez effectuer sur ce service est de réaliser un **MitM** dans la **communication entre le client et le véritable serveur**. Vous pourriez être en mesure d'obtenir des fichiers sensibles (MitM la communication avec l'imprimante) ou même des identifiants (authentification Windows).\
Pour plus d'informations, consultez :
{% 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 %}
## Références
* [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 %}