10 KiB
AD Sertifikaları
AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı yapmak veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi paylaşarak HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
Giriş
Bir Sertifikanın Bileşenleri
- Sertifikanın Konusu, sahibini belirtir.
- Bir sertifikayı sahibiyle ilişkilendirmek için bir Genel Anahtar, özel olarak tutulan bir anahtarla eşleştirilir.
- Geçerlilik Süresi, NotBefore ve NotAfter tarihleriyle belirlenir ve sertifikanın etkin süresini işaretler.
- Sertifika Otoritesi (CA) tarafından sağlanan benzersiz bir Seri Numarası, her sertifikayı tanımlar.
- Düzenleyen, sertifikayı veren CA'ya atıfta bulunur.
- SubjectAlternativeName, kimlik esnekliğini artıran konu için ek isimlere izin verir.
- Temel Kısıtlamalar, sertifikanın bir CA veya son kullanıcı için olup olmadığını belirler ve kullanım kısıtlamalarını tanımlar.
- Genişletilmiş Anahtar Kullanımları (EKU'lar), Nesne Tanımlayıcıları (OID'ler) aracılığıyla sertifikanın belirli amaçlarını, kod imzalama veya e-posta şifreleme gibi, belirtir.
- İmza Algoritması, sertifikayı imzalamak için kullanılan yöntemi belirtir.
- İmza, düzenleyenin özel anahtarıyla oluşturulur ve sertifikanın otantikliğini garanti eder.
Özel Düşünceler
- Subject Alternative Names (SAN'lar), bir sertifikayı birden fazla kimliğe uygulanabilir hale getirir ve birden çok alan adına sahip sunucular için önemlidir. SAN belirtisini manipüle ederek saldırganların taklit risklerini önlemek için güvenli verme süreçleri önemlidir.
Active Directory (AD) içindeki Sertifika Otoriteleri (CA'lar)
AD CS, AD ormanında CA sertifikalarını belirli konteynerler aracılığıyla tanır ve her biri benzersiz rolleri olan:
- Sertifikasyon Otoriteleri konteyneri, güvenilen kök CA sertifikalarını içerir.
- Kayıt Hizmetleri konteyneri, Kurumsal CA'ları ve sertifika şablonlarını ayrıntılı olarak belirtir.
- NTAuthCertificates nesnesi, AD kimlik doğrulaması için yetkilendirilmiş CA sertifikalarını içerir.
- AIA (Yetkilendirme Bilgi Erişimi) konteyneri, ara ve çapraz CA sertifikalarıyla sertifika zinciri doğrulamasını kolaylaştırır.
Sertifika Edinme: İstemci Sertifikası İstek Akışı
- İstek süreci, istemcilerin bir Kurumsal CA bulmasiyla başlar.
- Bir CSR oluşturulur, bir genel anahtar ve diğer ayrıntıları içerir, genel-özel anahtar çifti oluşturulduktan sonra.
- CA, CSR'yi mevcut sertifika şablonlarına karşı değerlendirir ve şablonun izinlerine dayanarak sertifikayı verir.
- Onaylandıktan sonra, CA sertifikayı özel anahtarıyla imzalar ve istemciye geri gönderir.
Sertifika Şablonları
AD içinde tanımlanan bu şablonlar, sertifikaların verilmesi için ayarları ve izinleri belirtir. Bu, sertifika hizmetlerine erişimi yönetmek için kritik olan izinli EKU'ları ve kayıt veya değiştirme haklarını içerir.
Sertifika Kaydı
Sertifikalar için kayıt süreci, bir yönetici tarafından bir sertifika şablonu oluşturularak başlatılır ve ardından Kurumsal Sertifika Otoritesi (CA) tarafından yayınlanır. Bu, şablonun adını bir Active Directory nesnesinin certificatetemplates
alanına ekleyerek istemci kaydını mümkün kılar.
Bir istemcinin bir sertifika talep etmesi için kayıt hakları verilmelidir. Bu haklar, sertifika şablonunun ve Kurumsal CA'nın güvenlik tanımlayıcıları tarafından belirlenir. İstek başarılı olması için her iki konumda da izinlerin verilmesi gerekir.
Şablon Kayıt Hakları
Bu haklar, Erişim Kontrol Girişleri (ACE'ler) aracılığıyla belirtilir ve şunları içerir:
- Certificate-Enrollment ve Certificate-AutoEnrollment hakları, her biri belirli GUID'lerle ilişkilidir.
- ExtendedRights, tüm genişletilmiş izinlere izin verir.
- FullControl/GenericAll, şablona tam kontrol sağlar.
Kurumsal CA Kayıt Hakları
CA'nın hakları, Sertifika Otoritesi yönetim konsolu üzerinden erişilebilen güvenlik tanımlayıcısıyla belirtilir. Bazı ayarlar, düşük ayrıcalıklı kullanıcılara uzaktan erişim izni verir, bu da bir güvenlik endişesi olabilir.
Ek Verme Kontrolleri
Belirli kontroller uygulanabilir, örneğin:
- Yönetici Onayı: İstekleri onaylanana kadar beklemeye alır.
- Kayıt Ajanları ve Yetkili İmzalar: CSR üzerinde gereken imzaların sayısını ve gerekli Uygulama Politikası OID'lerini belirtir.
Sertifikaları Talep Etme Yöntemleri
Sertifikalar aşağıdaki yöntemlerle talep edilebilir:
- Windows İstemci Sertifika Kayıt Protokolü (MS-WCCE), DCOM arabirimlerini kullanarak.
- ICertPassage Uzak Protokolü (MS-ICPR), adlandırılmış borular veya TCP/IP aracılığıyla.
- Sertifika kayıt web arayüzü, Sertifika Otoritesi Web Kaydı rolü yüklü olduğunda.
- Sertifika Kayıt Hizmeti (CES), Sertifika Kayıt Politikası (CEP) hizmetiyle birlikte kullanılır.
- Ağ cihazları için Ağ Cihazı Kayıt Hizmeti (NDES), Basit Sertifika Kayıt Protokolü (SCEP) kullanılarak.
Windows kullanıcıları, GUI (certmgr.msc
veya certlm.msc
) veya komut satırı araçları (certreq.exe
veya PowerShell'ın Get-Certificate
komutu) aracılığıyla da sertifikalar talep edebilir.
# Example of requesting a certificate using PowerShell
Get-Certificate -Template "User" -CertStoreLocation "cert:\\CurrentUser\\My"
Sertifika Kimlik Doğrulama
Active Directory (AD), öncelikle Kerberos ve Secure Channel (Schannel) protokollerini kullanarak sertifika kimlik doğrulamayı destekler.
Kerberos Kimlik Doğrulama Süreci
Kerberos kimlik doğrulama sürecinde, bir kullanıcının Bilet Verme Biletine (TGT) yönelik isteği, kullanıcının sertifikasının özel anahtarı kullanılarak imzalanır. Bu istek, sertifikanın geçerlilik, yol ve iptal durumu gibi bir dizi doğrulama işleminden geçer. Doğrulamalar arasında sertifikayı güvenilir bir kaynaktan aldığı ve yayıncının NTAUTH sertifika deposu'nda bulunduğu doğrulanır. Başarılı doğrulamalar sonucunda bir TGT verilir. AD'deki NTAuthCertificates
nesnesi, aşağıdaki konumda bulunur:
CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=<domain>,DC=<com>
AD Sertifikaları
Sertifika kimlik doğrulaması için güveni sağlamak için merkezi bir rol oynar.
Güvenli Kanal (Schannel) Kimlik Doğrulaması
Schannel, el sıkışma sırasında başarılı bir şekilde doğrulanan bir sertifika sunan istemci tarafından erişimi yetkilendiren güvenli TLS/SSL bağlantılarını kolaylaştırır. Bir sertifikanın bir AD hesabına eşlenmesi, diğer yöntemler arasında Kerberos'un S4U2Self işlevi veya sertifikanın Alternatif Konu Adı (SAN) kullanılarak gerçekleştirilebilir.
AD Sertifika Hizmetleri Sorgulama
AD'nin sertifika hizmetleri, LDAP sorguları aracılığıyla sorgulanabilir ve Kurumsal Sertifika Yetkilileri (CA'lar) ve yapılandırmaları hakkında bilgi ortaya çıkarabilir. Bu, özel ayrıcalıklara sahip olmadan herhangi bir etki alanı doğrulama yetkisine sahip kullanıcı tarafından erişilebilir. AD CS ortamlarında sorgulama ve zafiyet değerlendirmesi için Certify ve Certipy gibi araçlar kullanılır.
Bu araçları kullanmak için kullanılan komutlar:
# Enumerate trusted root CA certificates and Enterprise CAs with Certify
Certify.exe cas
# Identify vulnerable certificate templates with Certify
Certify.exe find /vulnerable
# Use Certipy for enumeration and identifying vulnerable templates
certipy find -vulnerable -u john@corp.local -p Passw0rd -dc-ip 172.16.126.128
# Enumerate Enterprise CAs and certificate templates with certutil
certutil.exe -TCAInfo
certutil -v -dstemplate
Referanslar
- https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf
- https://comodosslstore.com/blog/what-is-ssl-tls-client-authentication-how-does-it-work.html
AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz olan The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.