BadSuccessor

arzuarzu
3 min read

Bu yazıda Active Directory(AD) saldırılarının gerçekleşmesi ve tespiti konularına yer verilecektir. AD konusu ile ilgili araştırmaların notlarını içerir.

BadSuccessor

Windows Server 2025’e özel bu zafiyet, aslında bir özellik olarak tanımlanan bir davranışın güvenlik açığına yol açmasıyla ortaya çıkmıştır. Zafiyetin gereksinimleri arasında bir OU(Organizational Unit) üzerinde CreateChild özelliğine sahip dMSA(delegated Managed Service Account) hesabının kötüye kullanılması ile saldırganın ele geçirdiği düşük yetkili kullanıcının yetkilerini yükseltebilmesine olanak sağlar. Basit tanımıyla bu şekilde özetleyebiliriz.

Zafiyetli ortamı hazırlayalım. Active Directory Domain Service kurulu bir Windows 2025 sunucumuz var. Aşağıdaki komutları kullanarak kurulumu gerçekleştirebiliriz.

Install-windowsfeature AD-Domain-Services
Import-Module ADDSDeployment

#isteğe bağlı olarak AD yönetim araçlarını yüklemek için
Add-WindowsFeature RSAT-AD-Tools

Sonrasında sunucuyu domain controller olarak yükseltmek gerekiyor. Notifications kısmında görebilirsiniz.

Kurulumdan fazla detaylı bahsetmeyeceğim. Saldırganın ele geçirdiğini varsaydığımız bir kullanıcı ve OU oluşturalım.

#Kurban kullanıcı hesabı
New-ADUser -Name "victim" -SamAccountName "victim" -AccountPassword (ConvertTo-SecureString "Password123." -AsPlainText -Force) -Enabled $true

#temp isimli OU oluşturma
New-ADOrganizationalUnit -Name "temp" -Path "DC=corp,DC=local"

Ele geçirilen kullanıcının bir OU üzerinde yeterli hakları olması gerekiyordu.

dMSA service hesabı oluşturmak için key oluşturmak gerekiyor ilk kullanım için. Bu komut DC üzerinde çalışmıyor bir tane admin hesabı üzerinden oturum açarak çalıştırabiliriz. Test ortamında bu oluşan KDC key hemen kullanabilmek için aşağıdaki komutu kullanıyoruz. Normalde KDS(Key Distribution Service) key varsayılan olarak 10 saat sonra aktif hale gelir. Bu gecikme, AD replikasyonunun tamamlanması için bırakılmış bir güvenlik süresi olduğu belirtilmiş.

Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))

Şimdi delegated service hesabını oluşturabiliriz. New-ADServiceAccount komutu beraberinde CreateDelegatedServiceAccount parametresi kullanılmaktadır. Ancak saldırıyı gerçekleştiren birçok tool bulunuyor. Framework olarak Powerview ve BloodyAD, tek olarak kullanılan SharpSuccessor isimli araçlar kullanılabilir.

Powerview aracı kullanılarak savunmasız bir dMSA hesabının oluşturulmasına dair örnek bir görsel

powerview dmsa hesabı oluşturma

Saldırıyı simüle ederken kullanımının kolay olması nedeniyle SharpSuccessor aracını tercih ettim. Bu araçla zafiyetli bir dMSA hesabı oluşturdum ve ardından Rubeus aracıyla, bu hesaba bağlı olarak superseded edilen kullanıcı üzerinden yetki yükseltme işlemini gerçekleştirdim.

Tespit yöntemlerine bakacak olursak, Get-BadSuccessorOUPermissions.ps1 powershell scripti zafiyete sebep olan izinleri kontrol eder ve listeler.

Olay günlüklerinde ilgili faaliyetleri gözlemleyebilmek için bazı denetim (audit) politikalarının etkinleştirilmesi gerekmektedir.

  • Event ID 5137 - Directory service object created: dMSA oluşturulmasına dair olay takip edilebilir.

  • Event ID 5136 - Directory service object modified: Bu olay, mevcut bir dMSA nesnesinde yapılan değişikliklerini içerebilir. Özellikle dMSA’nın hangi kullanıcıya devredildiği (superseded edildiği) gibi önemli bilgiler yer alır

  • Event ID 2946 (DC kaydı) - dMSA hesabı ile yapılan kimlik doğrulama

tespit amacıyla denetlenen güvenlik olayları arasında yer alır.

Kısaca güvenlik politikalarının etkinleştirilmesine de değinmek istiyorum. Bunun için Group Policy Management arayüzüne girerek mevcut bir politikayı düzenleyebilir veya yeni bir politika oluşturabilirsiniz. İlk adım olarak, denetlemek istediğiniz nesneyi bu politikaya eklemeniz gerekir. Ekledikten sonra sağ tıklayıp Edit ile düzenlemeler yapabiliriz.

Sonrasında açılan editör üzerinden görseldeki yolu takip ederek Audit Policies kısmına gelelim.

Burada gördüğümüz üzere herhangi bir konfigurasyon işlemi yapılmamış olarak karşımıza çıkıyor. Bahsedilen zafiyet özelinde olay günlüklerini kaydetmek için DS Access ve ek olarak Account Logon politikalarını etkinleştirebiliriz.

Görselde, bir Organizational Unit (OU) üzerinde denetim (auditing) yapılandırması gösterilmektedir. Bu ayar sayesinde, örneğin bu OU altında bir dMSA nesnesi oluşturulduğunda Event ID 4662 gibi olay günlükleriyle işlemler takip edilebilir.

Eğer ortamda kritik roller üstlenen hesapların bulunduğu bir OU varsa, bu tür bir denetim yapılandırması sayesinde söz konusu OU üzerindeki işlemler (örneğin hesap oluşturma, silme, yetki değiştirme gibi) izlenebilir hale gelir.

Referanslar

https://www.akamai.com/blog/security-research/abusing-dmsa-for-privilege-escalation-in-active-directory

https://medium.com/seercurity-spotlight/operationalizing-the-badsuccessor-abusing-dmsa-for-domain-privilege-escalation-429cefc36187

0
Subscribe to my newsletter

Read articles from arzu directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

arzu
arzu