Giriş
Active Directory Sertifika Servisleri (ADCS), kurumsal ortamlarda dijital sertifikaların yönetimi ve güvenliğinde kritik bir rol oynar. Ancak, bu sistemdeki güvenlik açıkları ciddi güvenlik ihlallerine neden olabilir. 7 Ekim 2024 tarihinde ADCS’yi hedef alan yeni bir saldırı yöntemi, ESC15 olarak adlandırıldı. Bu yöntem, yetkilendirilmemiş kullanıcıların yanlış yapılandırılmış sertifika şablonlarını kullanarak Active Directory (AD) ortamında yetki yükseltmesine izin verir.
ESC15 zafiyeti, önceki tekniklerin (özellikle ESC1) geliştirilmiş bir hali olup birçok güvenlik kontrolünü aşabilmektedir. Özellikle, Certipy aracına dru1d-foofus ve TrustedSec‘den Justin Bollinger tarafından katkı yapılarak bu saldırı vektörü otomatik hale getirildi. Bu blog yazısında, ESC15’in nasıl çalıştığı, zafiyetin tespiti ve riski azaltma adımlarını detaylı olarak inceleyeceğiz.
ESC15 Nedir?
ESC15, ADCS’de Schema Versiyonu 1 olan Sertifika Şablonları’ndaki yanlış yapılandırmaları hedefleyen bir saldırı vektörüdür. Bu yöntem, ESC1‘in üzerine geliştirilmiş olup, daha fazla güvenlik kontrolünü aşarak daha tehlikeli bir saldırı yöntemi sunmaktadır.
ESC15 Zafiyetini Sömürmek için Gerekli Şartlar:
- Certificate Template, Schema Version 1 ise.
- Certificate Template, Subject bilgisinin istek (request) içerisinde belirtilmesine izin veriyorsa
-
Certificate Template, geniş gruplar veya yetkisiz kullanıcılar tarafından kayıt (enroll) olunabilir durumdaysa.
Bu koşullar karşılandığında, saldırganlar Domain Admin gibi ayrıcalıklı kullanıcılar adına sertifika alabilir ve domain üzerindeki yetkilerini yükseltebilir.
ESC1 ve ESC15’in Ayrıntılı İncelemesi
ESC1 zafiyetinde, eğer:
- Certificate Template, kullanıcılara CSR üzerinden Subject’i belirtme izni veriyorsa,.
- Certificate Template, Domain Authentication gibi en az bir EKU (Enhanced Key Usage) içeriyorsa,
saldırganlar herhangi bir kullanıcı adına sertifika talep edebilirler. ESC15, Domain Authentication EKU‘su olmasa bile Schema Version 1 Sertifika Şablonlarını manipüle ederek daha gelişmiş bir sömürü sağlar.
Certipy’a Yapılan GitHub Katkısı
7 Ekim 2024 tarihinde, dru1d-foofus isimli GitHub kullanıcısı, Certipy deposuna ESC15 sömürüsünü otomatik hale getiren bir Pull Request sundu. Bu PR, TrustedSec‘den Justin Bollinger (@Bandrel) tarafından yapılan bir keşfe dayanıyordu. Bu katkılar sayesinde, saldırganlar artık ESC15 zafiyetini Certipy aracı ile otomatikleştirebiliyorlar.
Katkıyı görmek için tıklayın: Certipy PR #228.
ESC15 Zafiyetinin Tespiti
Sistem yöneticileri, ESC15 zafiyetine sahip Sertifika Şablonlarını tespit etmek için aşağıdaki PowerShell komutunu kullanabilirler:
Manuel Tespit Adımları:
- Certificate Authority (CA) sunucusuna giriş yapın.
- Certtmpl.msc uygulamasını açın.
- Schema Version 1 olan Certificate Templateleri belirleyin.
- Subject Name sekmesinde Supplied in the Request seçeneğinin aktif olduğunu kontrol edin.
- Security sekmesinde, enroll yetkisi olan hesaplar tespit edilir.
- Extensions sekmesinde Enhanced Key Usage alanından Domain Authentication EKU’larından herhangi birinin olduğunu kontrol edin .
Exploiting ESC15
ESC15 zafiyetini sömürmek için Certipy aracı kullanılabilir. Zafiyetin exploitation adımları;
Adım 1: Certipy’yi Klonlayın ve Yükleyin
Adım 2: Domain Admin Adına Sertifika Talep Etme
Aşağıdaki komut, Schema Version 1 sertifika şablonu kullanarak Domain Admin için bir sertifika talebinde bulunur.
Açıklama:
- -template “WebServer”: Zafiyetli template girilir.
- -upn: Sertifika talep edilecek Domain Admin hesabı girilir.
- –application-policies ‘Client Authentication‘: EKU alanını Client Authentication olarak manipüle eder.
Once the certificate is obtained, it can be used to authenticate as the domain administrator.
Adım 3: Saldırganı Domain Admins Grubuna Ekleme
Sertifikayı elde ettikten sonra, saldırgan Certipy kullanarak LDAP arayüzü üzerinden kendisini Domain Admins grubuna ekleyebilir.
Bu komut, saldırganın domain üzerinde tam yetki elde etmesini sağlar.
ESC15 zafiyetinin giderilmesi
Adım 1: Zafiyetli Certificate Templatelerin Analiz Etme
ADCS ortamınızdaki tüm Certificate Templateleri analiz edip, özellikle Schema Version 1 olanları tespit edin. Tespit edilen Certificate templatelerden Kullanılmayanlar silinmeli veya Schema Version 2‘ye yükseltilmelidir.
Adım 2: “Supplied in the Request” Seçeneğini Devre Dışı Bırakma
Yanlış yapılandırılmış Certificate Templateler üzerinden, Supplied in the Request seçeneğini devre dışı bırakarak ve bunun yerine Built from information in Active Directory seçeneğini etkinleştirerek güncelleyin. Bu, saldırganların isteğe bağlı subject bilgilerini belirlemelerini engeller.
Adım 3: ADSIEDIT ile Şablonu Güncelleme
Schema Version 1 olan şablonlar, Certtmpl.msc arayüzü üzerinden değiştirilemez. Bu değişiklikleri yapmak için ADSIEDIT kullanmanız gerekir.
Bu değişiklik yapıldığında, zafiyetin exploitationı başarısız olacaktır.
Katkıda Bulunanlar
Bu araştırma ve ESC15 zafiyetinin keşfi, TrustedSec‘den Justin Bollinger (@Bandrel) ve dru1d-foofus tarafından yapılan çalışmalara dayanılarak mümkün olmuştur. Güvenlik topluluğu, bu araştırmacılara ve katkılarına büyük bir teşekkür borçludur.
Certipy, @ly4k tarafından geliştirilen bir araç olup, ADCS ortamlarındaki güvenlik açıklarını test etmek için kullanılabilir. Projenin gelişimini GitHub üzerinden takip edebilirsiniz: Certipy GitHub Repository.
Özetle
ESC15 zafiyeti, ADCS kullanan kuruluşlar için ciddi bir risktir ve saldırganlara Domain Admin hesapları adına Certificate Template talep etme ve Privilege Escalation imkanı verir. Microsoft henüz bir yama yayınlamamış olsa da, yöneticiler yanlış yapılandırılmış Certificate Templateleri analiz ederek ve doğru yapılandırmalarla zafiyeti azaltabilirler.
Certipy ve PowerShell gibi araçları kullanarak, güvenlik ekipleri hızlıca zafiyetli Certificate Templateleri tespit edip düzeltebilirler.
Dikkatli olun ve Certificate Templatelerinizin güvenli olduğundan emin olun.