Active Directory Güvenlik Denetim Araçları: Zafiyetleri Kendiniz Bulun
- Murat Akpınar
- Windows , Sistem yönetimi
- 20 Haziran 2026
İçindekiler
Bu seride Active Directory’yi sıfırdan kurduk, OU ve gruplarla içini doldurduk ve LDAP sertleştirme, hesap güvenliği gibi adımlarla güçlendirdik. Ama sertleştirmeyle ilgili acı gerçek şudur: “sertleştirdim” demek yetmez, doğrulamanız gerekir.
Kâğıt üzerinde her şey doğru görünse bile; unutulmuş bir aşırı yetki, yanlış yapılandırılmış bir sertifika şablonu, bir paylaşımda kalmış düz metin parola ya da eski bir GPO ayarı, tüm ormanı (forest) Domain Admin’e giden bir yola çevirebilir. İşte bu yazıda, kendi AD ortamınızı bir saldırganın gördüğü gibi tarayan araçları tanıyacağız — ama amacımız saldırmak değil, açıkları kendimiz bulup kapatmak.
⚠️ Baştan net olalım — yetki ve kapsam: Bu araçların tamamı yalnızca sahibi olduğunuz veya yazılı olarak yetkilendirildiğiniz ortamlarda çalıştırılır. İzinsiz bir AD’yi taramak birçok ülkede suçtur. Ayrıca bu araçlar davranışları gereği EDR/antivirüs alarmı üretebilir; kurumsal ortamda çalıştırmadan önce güvenlik ekibini bilgilendirin. Aşağıdaki tüm örnekler, kurulum yazısında kurduğumuz
hogwarts.locallaboratuvarına karşı çalıştırılmaktadır.
Araçlara Genel Bakış
Aşağıdaki yedi araç, AD güvenlik denetiminin farklı katmanlarını kapsar. Hiçbiri tek başına “her şeyi” bulmaz; birlikte kullanıldığında ortamın bütününü ortaya çıkarırlar.
| Araç | Neyi denetler | Çıktı | Platform / Dil |
|---|---|---|---|
| PingCastle | Tüm AD’nin genel risk skoru ve zafiyet envanteri | Puanlı HTML rapor | Windows / C# |
| BloodHound | Domain Admin’e giden gizli yetki yolları (ACL, üyelik, oturum) | İnteraktif graf | Çok platform / collector + GUI |
| Certipy | AD CS sertifika şablonu zafiyetleri (ESC1–ESC16) | Metin/JSON rapor | Linux / Python |
| Snaffler | Paylaşımlarda gezen parola, anahtar, config dosyaları | Renkli konsol/log | Windows / C# |
| ScriptSentry | Logon script’lerinde yazılabilir dosya ve düz metin kimlik | Konsol/HTML | Windows / PowerShell |
| Group3r | Riskli GPO ayarları ve kurtarılabilir GPP parolaları | Konsol/log | Windows / C# |
| ADeleg | Forest genelinde delegation ve ACL hataları | Ağaç görünümü (GUI) | Windows / C# |
Şimdi bunları denetledikleri alana göre gruplayarak ele alalım.
1. Bütünsel Skorlama: PingCastle
Bir AD denetimine nereden başlayacağınızı bilmiyorsanız, cevap PingCastle‘dır. Tüm ortamı tarar ve dört ana kategoride (Stale Objects, Privileged Accounts, Trusts, Anomalies) bulduğu her riski puanlayarak tek bir HTML raporunda özetler. Sonuçta 0–100 arası bir risk skoru alırsınız — 100 en kötüsü.
Ne bulur: Süresi geçmiş parolalar, kullanılmayan yönetici hesapları, zayıf Kerberos ayarları, güvenilmeyen trust ilişkileri, LAPS eksikliği, eski protokoller (SMBv1, NTLMv1) ve yüzlerce başka kontrol.
Kendinizi denetleyin: Domain’e üye bir makinede, standart bir kullanıcı yetkisiyle bile çalışır (çoğu kontrol için yönetici gerekmez):
# Etkileşimli menü yerine doğrudan sağlık taraması
.\PingCastle.exe --healthcheck --server hogwarts.local
# Çıktı: ad_hc_hogwarts.local.html (tarayıcıda açın)
Raporu nasıl okursunuz: Rapor, bulguları puan katkısına göre sıralar. Doğru yaklaşım, en yüksek puanı ekleyen (yani skoru en çok yükselten) maddeden başlayıp aşağı inmektir. Her bulgunun yanında “neden riskli” açıklaması ve çoğu zaman düzeltme önerisi bulunur.
Düzeltme disiplini: PingCastle’ı bir kez çalıştırıp bırakmayın. Bulguları kapattıkça skorun düştüğünü görmek için düzenli (örn. aylık) tarama yapın ve raporları saklayın; bu, sertleştirmenizin gerçekten işe yaradığının kanıtıdır.
2. Yetki Yükseltme Yolları: BloodHound
AD’deki en tehlikeli açıklar tek tek bakıldığında masum görünür: “şu grup şu OU’da yazma yetkisine sahip”, “şu kullanıcı şu makinede oturum açık”. Ama bunlar zincirlendiğinde, sıradan bir kullanıcıdan Domain Admin’e giden bir yol ortaya çıkar. BloodHound tam da bu gizli yolları bulur: AD’yi bir graf olarak modelleyip “bu kullanıcıdan Domain Admins’e en kısa yol nedir?” sorusunu yanıtlar.
Ne bulur: ACL tabanlı yetki yükseltme (GenericAll, WriteDACL, AddMember…), Kerberos delegation zafiyetleri, oturum açık ayrıcalıklı hesaplar üzerinden lateral movement, iç içe grup üyeliklerinden doğan beklenmedik yetkiler.
Kendinizi denetleyin: İki parçadan oluşur — veriyi toplayan collector (SharpHound) ve onu görselleştiren BloodHound arayüzü:
# 1) Veri toplama (domain kullanıcısı yetkisi yeterli)
.\SharpHound.exe --collectionmethods All --domain hogwarts.local
# Üretilen .zip dosyasını BloodHound arayüzüne sürükleyip bırakın.
Arayüzde hazır sorgulardan “Shortest Paths to Domain Admins” veya “Find Principals with DCSync Rights” gibi analizleri çalıştırın. Graf size, bir düğümden diğerine giden her “kenarı” (edge) ve o kenarın hangi yetkiden kaynaklandığını gösterir.
Nasıl düzeltilir: BloodHound bir yolu gösterdiğinde, o yoldaki en zayıf kenarı kırmak yeterlidir. Genellikle bu, gereksiz bir ACL’yi kaldırmak (örn. bir grubun DC üzerindeki
GenericAllyetkisini geri almak), fazladan verilmiş bir grup üyeliğini temizlemek veya bir hizmet hesabının delegation ayarını kaldırmaktır. Sertleştirme yazısında anlattığımız katmanlı yönetim (tiering), bu yolların çoğunu baştan imkânsız kılar.
3. Sertifika Zafiyetleri: Certipy
Kurulum yazısında bir Enterprise Root CA kurmuştuk. AD CS güçlü bir altyapıdır, ama sertifika şablonlarındaki yanlış yapılandırmalar, kimlik doğrulama sisteminin tamamını çökertebilecek yetki yükseltme fırsatları (literatürde ESC1–ESC16 olarak numaralandırılır) yaratır. Certipy, bu zafiyetleri otomatik tespit eder.
Ne bulur: Düşük yetkili kullanıcıların alternatif kimlikle (SAN) sertifika alabildiği şablonlar (ESC1), tehlikeli EKU tanımları, CA üzerinde aşırı geniş izinler, EDITF_ATTRIBUTESUBJECTALTNAME2 gibi kritik yanlış ayarlar ve daha fazlası.
Kendinizi denetleyin: Certipy’nin find komutu, ortamdaki tüm CA’ları ve şablonları tarayıp savunmasız olanları işaretler:
# Zafiyetli şablonları bul (yalnızca tespit — sömürü değil)
certipy find -u murat.admin@hogwarts.local -p 'Parola' \
-dc-ip 192.168.1.231 -vulnerable -stdout
Çıktı, her savunmasız şablonun hangi ESC kategorisine girdiğini ve nedenini açıkça yazar.
Nasıl düzeltilir: En yaygın bulgu olan ESC1 için: ilgili şablonda “Supply in the request” (istekte SAN belirtme) seçeneğini kapatın, kayıt (enrollment) iznini yalnızca gereken gruplara verin ve Manager approval (yönetici onayı) gerektirin. CA üzerindeki
EDITF_ATTRIBUTESUBJECTALTNAME2bayrağınıcertutilile kaldırın. Kullanılmayan şablonları yayından kaldırın — yayınlanmamış şablon, saldırı yüzeyi değildir.
4. Paylaşımlar ve Script’ler: Snaffler + ScriptSentry
Saldırganların en sevdiği hazine, dikkatlice korunan veritabanları değil, herkesin unuttuğu dosya paylaşımlarıdır. Bir backup.ps1 içindeki gömülü parola, bir web.config‘deki bağlantı dizesi ya da bir SYSVOL script’indeki düz metin kimlik, tüm sertleştirmenizi anlamsız kılabilir. İki araç bu alanı tarar.
Snaffler — paylaşımlarda kimlik avı
Snaffler, domain’deki tüm makineleri ve erişilebilir paylaşımları otomatik keşfeder, ardından içlerinde parola, özel anahtar, config ve kimlik dosyası desenlerini arar. İlginç bulguları önem derecesine göre renklendirir.
# Domain'deki paylaşımları tara, ilgi çekici dosyaları bul
.\Snaffler.exe -s -d hogwarts.local -o snaffler.log
Nasıl düzeltilir: Bulunan gömülü parolaları/anahtarları derhal değiştirin ve dosyalardan temizleyin; kimlik bilgilerini script’lere yazmak yerine gMSA (group Managed Service Account) veya bir parola kasası (vault) kullanın. Paylaşım izinlerini “Everyone / Authenticated Users okuyabilir” olmaktan çıkarıp en az yetki ilkesine çekin.
ScriptSentry — logon script’lerinin denetimi
ScriptSentry, kullanıcı oturum açtığında çalışan logon script’lerine odaklanır. İki kritik şeyi arar: (1) düşük yetkili kullanıcıların yazabildiği script dosyaları (bir saldırgan bunu değiştirip herkese kod çalıştırabilir) ve (2) script içindeki düz metin kimlik bilgileri.
# SYSVOL ve logon script'lerini denetle
Import-Module .\ScriptSentry.ps1
Invoke-ScriptSentry
Nasıl düzeltilir: SYSVOL’deki script’lerin yazma iznini yalnızca yöneticilere bırakın (kullanıcılar yalnızca okuyabilmeli). Script’lerdeki gömülü parolaları kaldırın; eşleme (mapping) gibi işleri GPO Preferences ile parolasız yapın.
5. GPO ve Yetki Devri: Group3r + ADeleg
Son grup, AD yönetiminin iki “sessiz” risk alanını kapsar: yanlış yapılandırılmış Grup Politikaları ve fazla cömert verilmiş yetki devirleri.
Group3r — riskli GPO ayarları ve GPP parolaları
Group3r, tüm GPO’ları ayrıştırıp güvenlik açısından tehlikeli ayarları işaretler. En bilinen bulgusu, eski Group Policy Preferences (GPP) özelliğiyle SYSVOL’e yazılmış ve geri çözülebilen parolalardır (MS14-025 zafiyeti): Microsoft’un şifreleme anahtarı herkese açık olduğu için bu cpassword değerleri saniyeler içinde açık metne dönüştürülebilir.
# Tüm GPO'ları denetle, riskli ayarları ve GPP parolalarını bul
.\Group3r.exe -f group3r.log
Nasıl düzeltilir: SYSVOL’de cpassword içeren tüm GPP XML’lerini silin ve söz konusu parolaları değiştirin. Group3r’ın işaretlediği tehlikeli ayarları (örn. güvenlik ayarlarını gevşeten, herkese yazma veren GPO’lar) OU/grup yazısında anlattığımız disiplinli GPO tasarımıyla düzeltin.
ADeleg — delegation ve ACL denetimi
ADeleg, forest genelindeki yetki devirlerini ve ACL’leri görsel bir ağaç halinde denetler; her nesnenin üzerinde kimin hangi yetkiye sahip olduğunu ve bunlardan hangilerinin beklenmedik / aşırı olduğunu gösterir. OU/grup yazısında kurduğumuz temiz delegasyon modelinin zamanla bozulup bozulmadığını görmenin en hızlı yoludur.
Nasıl düzeltilir: ADeleg’in “olağandışı” olarak işaretlediği yetkileri tek tek gözden geçirin. Gerçekten gerekli olmayan her WriteDACL, GenericAll, Reset Password gibi yetkiyi geri alın; delegasyonu her zaman OU bazlı ve en dar kapsamda tutun.
Bir Denetim Nasıl Yürütülür? Önerilen Akış
Bu araçları rastgele değil, genişten dara doğru bir sırayla kullanmak en verimlisidir:
graph LR
A["1. PingCastle
Genel resim + skor"] --> B["2. BloodHound
Yetki yolları"]
B --> C["3. Hedefli tarama
Certipy · Snaffler ·
ScriptSentry · Group3r · ADeleg"]
C --> D["4. Düzelt
(remediation)"]
D --> E["5. Tekrar tara
Skor düştü mü?"]
E --> A
- PingCastle ile genel bir skor ve öncelik listesi çıkarın — nereye bakacağınızı söyler.
- BloodHound ile Domain Admin’e giden yolları haritalayın — en kritik zincirler burada görünür.
- Hedefli araçlarla derine inin: sertifikalar (Certipy), paylaşımlar/script’ler (Snaffler, ScriptSentry), GPO ve delegation (Group3r, ADeleg).
- Bulguları düzeltin — bu yazıdaki remediation notları ve serinin sertleştirme yazısı yol gösterir.
- Tekrar tarayın. Denetim tek seferlik bir olay değil, döngüdür; her düzeltmeden sonra skorun düştüğünü ve yolların kapandığını doğrulayın.
Sonuç
Sertleştirme, güvenliğin yalnızca yarısıdır; diğer yarısı doğrulamadır. Bu yazıda AD ortamınızı bir saldırganın gözünden denetleyen yedi aracı, savunma perspektifiyle ele aldık:
- PingCastle bütünsel bir skor ve öncelik listesi verir.
- BloodHound Domain Admin’e giden gizli yetki yollarını haritalar.
- Certipy AD CS sertifika şablonu zafiyetlerini (ESC1–ESC16) bulur.
- Snaffler ve ScriptSentry paylaşımlarda ve logon script’lerinde saklı kimlik bilgilerini avlar.
- Group3r ve ADeleg riskli GPO ayarlarını, GPP parolalarını ve aşırı delegasyonları ortaya çıkarır.
Bu araçların hepsi ücretsiz ve açık kaynaktır; hepsinin çıktısı da tek bir şeye hizmet eder: açığı sizden önce saldırgan bulmasın. Kurduğunuz, doldurduğunuz ve sertleştirdiğiniz AD ortamını düzenli bir denetim döngüsüne bağladığınızda, seri boyunca inşa ettiğimiz yapı yalnızca çalışan değil, aynı zamanda savunulabilir bir yapı hâline gelir.