Active Directory Certificate Services (AD CS), çoğu kurumda yıllardır kimsenin dokunmadığı ama domain’in anahtarlarını taşıyan servistir. Yanlış yapılandırılmış tek sertifika şablonu, sıradan domain kullanıcısının Domain Admin adına sertifika almasına dakikalar içinde tüm ortamı ele geçirmesine yol açabilir.
SpecterOps’un 2021’ yayımladığı Certified Pre-Owned araştırması saldırı yollarını ESC1, ESC2… şeklinde numaralandırdı. günden beri liste ESC16’ya kadar uzadı Certipy, Certify gibi saldırı araçları açıkları otomatik olarak buluyor. Savunma tarafının aynı hızda tarama yapabilmesi gerekiyor.
yazıda, Jake Hildreth’in geliştirdiği açık PowerShell modülü Locksmith 2 AD CS altyapınızı nasıl denetleyeceğinizi bulunan açıkları nasıl kapatacağınızı anlatıyorum.
Locksmith 2 nedir?Locksmith 2, AD CS altyapısındaki sertifika şablonlarını, sertifika otoritelerini (CA) PKI nesnelerini ESC tekniklerine göre tarayan PowerShell modülüdür. AD yöneticileri, savunma ekipleri sızma testi yapanlar için tasarlanmıştır.
Öne çıkan özellikleri:
- ESC1–ESC16 arası tekniklerin otomatik taranması
- Her bulgu için hazır PowerShell düzeltme (remediation) scripti kısmen geri alma scripti
- Pipeline’ işlenebilen nesne çıktısı (LS2Issue)
- CSV, Excel PDF’e aktarılabilen interaktif HTML dashboard
- Domain’e üye olmayan makinelerden çalışabilme
- Adım adım düzeltme için interaktif TUI
Orijinal Locksmith’e göre kod yapısı yeniden düzenlenmiş, raporlama zenginleştirilmiş risk analizi derinleştirilmiştir. Özellikle Find-LS2RiskyPrincipal bulguları yapılandırma yerine kişi/hesap bazında görebilmek yeni bakış açısı getiriyor.
Gereksinimler kurulumAraç yalnızca okuma yetkisiyle çalışır; tarama için Domain Admin gerekmez.
GereksinimDeğerPowerShell5.1 veya üzeriYetkiAD Configuration partition’ında okumaAğDC’ye LDAP (389) Global Catalog (3268) erişimiHesapHerhangi domain kullanıcısı veya bilgisayar hesabıPowerShell Gallery’den kurulum:
Install-Module -Name Locksmith2 -Scope CurrentUser -Forcekoddan kurulum:
git clone cd Locksmith2 Import-Module \Locksmith2.psd1 Desteklenen ESC teknikleriLocksmith 2 üç nesne türünde 12 ana tekniği tarıyor: şablonlar, CA’lar PKI altyapı nesneleri.
TeknikNe anlama geliyorHedefAlt tekniklerESC1Talep edenin SAN belirleyebildiği, kimlik doğrulamaya uygun şablonŞablon—ESC2Any Purpose / SubCA kullanımına izin veren şablonŞablon—ESC3Enrollment Agent kısıtlamalarının eksikliğiŞablonESC3c1, ESC3c2ESC4Şablon üzerinde tehlikeli ACL veya sahiplikŞablonESC4a (ACL), ESC4o (owner)ESC5PKI nesneleri (container, CA bilgisayarı) üzerinde tehlikeli yetkilerAltyapı nesnesiESC5a (ACL), ESC5o (owner)ESC6CA’ EDITF_ATTRIBUTESUBJECTALTNAME2 bayrağı açıkCA—ESC7CA Administrator / Certificate Manager rollerinin yetkisiz kişilerde olmasıCAESC7a (admin), ESC7m (manager)ESC8NTLM relay’e açık web enrollment uç noktalarıCA—ESC9Zayıf sertifika eşleme (security extension yok)Şablon—ESC11CA’nın RPC arayüzünde şifreleme zorunlu değilCA—ESC13Gruba bağlı OID içeren issuance policyŞablon—ESC16CA genelinde security extension devre dışıCA—Tekniklerin ayrıntıları için SpecterOps’un Certified Pre-Owned raporuna bakabilirsiniz.
Kullanım Tam tarama: Invoke-Locksmith2Tek komutla tüm ESC tekniklerini tarar:
Invoke-Locksmith2 [-Forest <String>] [-Credential <PSCredential>] [-Mode <Int>] [-SkipVersionCheck] [-SkipPowerShellCheck] [-ExpandGroups] [-Rescan]-Mode parametresi çıktının biçimini belirler:
ModÇıktıVerilmezseLS2Issue nesneleri pipeline’a döner (varsayılan)0Bulgular konsolda tablo olarak (eski Locksmith Mode 0)1Bulgular düzeltme scriptleri konsolda liste olarak (eski Locksmith Mode 1) Hedefli tarama: Find-LS2* cmdlet’leriSadece belirli tekniği kontrol etmek istediğinizde:
Find-LS2VulnerableTemplate -Technique ESC1 # ESC1, ESC2, ESC3c1, ESC3c2, ESC4a, ESC4o, ESC9, ESC13 Find-LS2VulnerableCA -Technique ESC8 # ESC6, ESC7a, ESC7m, ESC8, ESC11, ESC16 Find-LS2VulnerableObject -Technique ESC5a # ESC5a, ESC5oFarklı forest veya kimlik bilgisiyle çalışacaksanız önce Set-LS2Forest Set-LS2Credential ortamı ayarlayın.
HTML dashboard Invoke-Locksmith2 | Out-Null New-LS2Dashboard -FilePath \adcs-rapor.html -ShowDashboard, önceki taramanın sonuçlarını kullanır; PSWriteHTML modülü araçla birlikte geldiği için ayrıca kurulum gerekmez.
Riskli hesapları bulmakFind-LS2RiskyPrincipal, bulguları hesap bazında toplar en çok AD CS riski taşıyan kullanıcı veya servis hesaplarını gösterir:
Find-LS2RiskyPrincipal -Top 10 -MinimumIssueCount 2Taramada toplanan ham verilere Get-LS2Stores erişebilirsiniz (ör. -Name IssueStore).
Örnek denetim akışıPratikte önerdiğim sıra
AD CS, saldırganlar için domain’e giden en kısa yollardan biri olmaya devam ediyor. Locksmith 2 ise riski ücretsiz, okuma yetkisiyle tek komutla görünür kılıyor. Saldırganlar ortamınızı Certipy tarayacaksa, aynı resmi onlardan önce sizin görmeniz gerekir.