60 saniyede Active Directory sıkılaştırması
Bir Active Directory denetimi genellikle büyük bir sayıyla biter: bazen bir güvenlik skoru, bazen bir olgunluk seviyesi, bazen de yavaşça yeşile dönen kırmızı bir gösterge paneli (dashboard). Bu sayı yapılan işi takip etmek için faydalıdır; ancak dizinin gerçekten ele geçirilmesinin zor olduğunu kanıtlamaz.
Sıkılaştırma incelemelerinde defalarca aynı kopukluğa tanık oldum: Onlarca ayar düzeltilir, eski kullanıcılar temizlenir, parola politikası iyileştirilir; ancak bir yardım masası (helpdesk) hesabından domain kontrolüne giden en kısa saldırı yolu hala sapasağlam hayatta kalır. Bu yol eski bir iç içe grup üyeliğinden, unutulmuş bir sertifika şablonundan, ayrıcalıklı bir yöneticinin oturum açtığı bir sunucudan ya da uygulaması kurulduğundan beri parolası hiç değişmemiş bir servis hesabından geçebilir.
Bu yüzden bir Active Directory sıkılaştırma programına otomatik tarayıcının en yüksek puanlı kuralıyla başlamam. Çok daha basit bir soruyla başlarım:
Sıradan bir kullanıcı, ele geçirilmiş bir iş istasyonu veya rutin bir sunucu yöneticisi bugün neyi kontrol edebilir ki bu kontrol nihayetinde domain’in kontrolüne ulaşır?
Sıkılaştırma; bu soruya verilecek her cevabı daha kısa, daha nadir, daha görünür ve nihayetinde imkansız kılma çabasıdır.
Ofansif başlangıç noktası: Bir kullanıcı, bir iş istasyonu
Değerlendirmeyi, sıkılaştırma programlarından başarıyla sağ çıkan saldırı yollarını modelleyen sentetik bir vaka üzerinden kurguluyorum.
Varsayılan saldırganın hiçbir sıfır-gün (zero-day) açığı ve yönetici parolası yoktur. Yalnızca tek bir standart domain kullanıcısına ve o kullanıcının iş istasyonunda kod yürütme hakkına sahiptir. Buradan hareketle inceleme, saldırganın bu erişimi adım adım daha yüksek bir yetkiye dönüştürüp dönüştüremeyeceğini sorgular:
- Kullanıcı eski bir helpdesk grubuna iç içe (nested) eklenmiştir;
- Bu grup, yönetim sunucularının bulunduğu OU için Windows LAPS parolalarını okuyabilmektedir;
- Bu sunuculardan birinde, kimlik yöneticileri (Tier 0 admin) etkileşimli oturum açmaktadır;
- Aynı yönetim düzlemi bir sertifika şablonunu değiştirebilir veya doğrudan Tier 0 sistemleri yönetebilir;
- Kalıcı bir dizin izni, geçici iş istasyonu ihlalini tekrarlanabilir bir Domain Admin kontrolüne dönüştürür.
Bu adımların hiçbiri tek başına bir zafiyet tarayıcısı tarafından “Kritik” olarak etiketlenmeyebilir. Tehlike bu adımların bir araya gelişindedir (composition). Bu nedenle sıkılaştırmanın amacı kullanıcıyı bir grafikten gizlemek değil; zincirin en erken kırılma noktasını (cut point) belirleyip ayrıcalıklı kimlik bilgisinin alt katmandaki bir ana makinede belirmesini en baştan engellemektir.
Gerçekten “Sıkılaştırılmış” (Hardened) Ne Demektir?
Sıkılaştırılmış bir Active Directory, tüm eski özelliklerin kapatıldığı bir ortam demek değildir. Aşağıdaki iddiaların arkasında somut teknik kanıtların bulunduğu bir ortamdır:
- Sıradan bir kullanıcı veya iş istasyonu ihlali kontrol düzlemi (control-plane) kimlik bilgilerini açığa çıkaramaz;
- Sunucu yöneticileri grup üyelikleri, ACL’ler, delegasyonlar, sertifikalar, yedekleme altyapısı veya yönetim araçları üzerinden sessizce Domain Admin olamaz;
- Tier 0 kimlik bilgileri yalnızca adanmış, izole edilmiş Privileged Access Workstation (PAW) cihazlarında kullanılır;
- Servis hesapları Kerberoasting için bilet üretmez (gMSA zorunludur);
- Bir saldırgan ormanda (forest) kalıcı olmaya çalıştığında bu durum anında görünür ve engellenebilir hale gelir.
Sıkılaştırma Sırası (The Sequence)
Adım 1: Tier 0 İzolasyonu ve Oturum Hijyeni
Ayrıcalıklı hesapların (Domain Admins, Enterprise Admins) alt seviye (Tier 1 sunucular, Tier 2 iş istasyonları) sistemlerde oturum açması Group Policy (User Rights Assignment -> Deny log on as a batch job / service / locally / through Remote Desktop Services) ile engellenmelidir. Kimlik bilgisi bellekte yoksa çalınamaz.
Adım 2: LAPS ve Yerel Yönetici Parolaları
LAPS’ın msLAPS-Password veya eski ms-Mcs-AdmPwd izinlerini daraltın. Helpdesk gruplarının yönetim sunucularının LAPS parolalarını okumasını engelleyin.
Adım 3: Servis Hesapları ve Kerberoasting Koruması
SPN tanımlı servis hesaplarını Group Managed Service Accounts (gMSA) mimarisine taşıyın. Taşınamayan hesaplar için 30+ karakterlik karmaşık parolalar belirleyin ve AES-256 şifrelemesini zorunlu kılın.
Adım 4: Sertifika Otoritesi (AD CS) Denetimi
Tüm sertifika şablonları üzerindeki yazma izinlerini (ESC4) ve ENROLLEE_SUPPLIES_SUBJECT bayrağı içeren kimlik doğrulama şablonlarını (ESC1) temizleyin. KB5014754 güçlü eşleme kurallarını devreye alın.
Evidence matrix
| Sinyal | Neyi kanıtlar | Negatif kontrol | Savunmacı doğrulaması |
|---|---|---|---|
| Tier 0 hesabının iş istasyonuna RDP denemesinde engellenmesi | Kademeli oturum kısıtlamasının (Tiering GPO) çalıştığını | Kısıtlanmamış bir Tier 2 hesabı ile giriş yapıp politikanın seçiciliğini görün | Domain Controller ve uç nokta Event ID 4625 (Logon Failure 0xC000006E) günlüklerini doğrulayın |
| Helpdesk kullanıcısının sunucu LAPS parolasını okuyamaması | msLAPS-Password üzerindeki genişletilmiş hakların sınırlandığını | Yetkili bir Tier 1 admin ile okuma yapıp erişimi doğrulayın | OU seviyesindeki DACL ve Get-ADObject çıktılarını denetleyin |
| Kerberoasting isteğinde RC4 bilet yerine AES dönmesi | Kerberos şifreleme desteğinin sıkılaştırıldığını | msDS-SupportedEncryptionTypes değerini kontrol edin | KDC Event ID 4769 kayıtlarında Ticket Encryption Type 0x12 (AES256) teyit edin |
| Güvensiz bir AD CS şablonunun silinmesi veya düzeltilmesi | Sertifika üzerinden yetki yükseltme yolunun kesildiğini | Normal kullanıcı ile enroll isteği atıp CERTSRV_E_TEMPLATE_DENIED alın | certutil -template çıktısını ve CA yayınlanan şablon listesini doğrulayın |
Sonuç
Active Directory güvenliği bir kural listesini işaretlemekten ibaret değildir. Sistemler, saldırganların adımladığı gerçek attack path’lerin üzerine basamak basamak inşa edilen mantıksal bir sırayla sıkılaştırılır. En erken kesme noktasını uygulamak, en karmaşık sızma senaryolarını bile hedefine ulaşamadan etkisiz hale getirir.
Bu teknik not ne kadar güncel?
En son kaynak incelemesi, içerik güncellemesi veya yayın tarihi gösterilmektedir.
Yazar teknik incelemeyi tamamladı. Bu etiket tek başına laboratuvar yeniden üretimi iddiası taşımaz.
- learn.microsoft.com · tier-model ↗
- learn.microsoft.com · security-con…vileged-access ↗
- learn.microsoft.com · laps-overview ↗
- learn.microsoft.com · laps-scenari…tive-directory ↗
- learn.microsoft.com · group-manage…ounts-overview ↗
- learn.microsoft.com · ldap-signing ↗
- learn.microsoft.com · ad-forest-re…how-to-recover ↗
- learn.microsoft.com · certificate-…plate-concepts ↗
- learn.microsoft.com · get-adgroupmember ↗
- github.com · 08-‐-Command-Reference ↗
- bloodhound.specterops.io · cypher-search ↗
