AD CS Domain Persistence
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bu, https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf adresinde paylaşılan alan kalıcılığı tekniklerinin bir özetidir. Daha fazla ayrıntı için kontrol edin.
Bir sertifikanın CA sertifikası olduğunu nasıl anlarsınız?
Bir sertifikanın CA sertifikası olduğu, birkaç koşulun sağlanması durumunda belirlenebilir:
Sertifika, CA sunucusunda depolanır ve özel anahtarı makinenin DPAPI'si veya işletim sistemi bunu destekliyorsa TPM/HSM gibi bir donanım tarafından korunur.
Sertifikanın Hem Verici (Issuer) hem de Konu (Subject) alanları CA'nın ayırt edici adıyla eşleşir.
CA sertifikalarında yalnızca "CA Version" uzantısı bulunur.
Sertifika, Genişletilmiş Anahtar Kullanımı (EKU) alanlarından yoksundur.
Bu sertifikanın özel anahtarını çıkarmak için, CA sunucusundaki certsrv.msc
aracı, yerleşik GUI aracılığıyla desteklenen yöntemdir. Ancak, bu sertifika sistemde depolanan diğerlerinden farklı değildir; bu nedenle, çıkarım için THEFT2 tekniği gibi yöntemler uygulanabilir.
Sertifika ve özel anahtar, aşağıdaki komut ile Certipy kullanılarak da elde edilebilir:
CA sertifikası ve özel anahtarını .pfx
formatında edindikten sonra, geçerli sertifikalar oluşturmak için ForgeCert gibi araçlar kullanılabilir:
Sertifika sahteciliği hedeflenen kullanıcının aktif olması ve Active Directory'de kimlik doğrulama yapabilmesi gerekmektedir. krbtgt gibi özel hesaplar için sertifika sahteciliği etkisizdir.
Bu sahte sertifika, belirtilen son tarihine kadar geçerli olacak ve kök CA sertifikası geçerli olduğu sürece (genellikle 5 ila 10+ yıl arasında) geçerliliğini koruyacaktır. Ayrıca, makineler için de geçerlidir, bu nedenle S4U2Self ile birleştirildiğinde, bir saldırgan herhangi bir alan makinesinde kalıcılığı sürdürebilir kök CA sertifikası geçerli olduğu sürece. Ayrıca, bu yöntemle oluşturulan sertifikalar iptal edilemez çünkü CA bunlardan haberdar değildir.
NTAuthCertificates
nesnesi, Active Directory'nin (AD) kullandığı cacertificate
niteliği içinde bir veya daha fazla CA sertifikası içerecek şekilde tanımlanmıştır. Alan denetleyicisi tarafından yapılan doğrulama süreci, kimlik doğrulama sertifikası için İhraççı alanında belirtilen CA ile eşleşen bir girişi kontrol etmeyi içerir. Eşleşme bulunursa kimlik doğrulama devam eder.
Bir saldırgan, bu AD nesnesi üzerinde kontrol sahibi olduğu sürece NTAuthCertificates
nesnesine kendinden imzalı bir CA sertifikası ekleyebilir. Normalde, yalnızca Enterprise Admin grubunun üyeleri ile Domain Admins veya orman kök alanındaki Yönetici'ler bu nesneyi değiştirme iznine sahiptir. certutil.exe
kullanarak NTAuthCertificates
nesnesini certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA126
komutuyla veya PKI Health Tool kullanarak düzenleyebilirler.
Bu yetenek, daha önce belirtilen ForgeCert yöntemini kullanarak dinamik olarak sertifikalar oluşturmakla birleştirildiğinde özellikle önemlidir.
AD CS bileşenlerinin güvenlik tanımlayıcıları üzerinde kalıcılık sağlama fırsatları bolca mevcuttur. "Domain Escalation" bölümünde açıklanan değişiklikler, yükseltilmiş erişime sahip bir saldırgan tarafından kötü niyetle uygulanabilir. Bu, aşağıdaki gibi hassas bileşenlere "kontrol hakları" (örneğin, WriteOwner/WriteDACL/vb.) eklenmesini içerir:
CA sunucusunun AD bilgisayar nesnesi
CA sunucusunun RPC/DCOM sunucusu
CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>
içindeki herhangi bir torun AD nesnesi veya konteyner (örneğin, Sertifika Şablonları konteyneri, Sertifikasyon Otoriteleri konteyneri, NTAuthCertificates nesnesi vb.)
AD CS'yi kontrol etme haklarına sahip AD grupları, varsayılan olarak veya organizasyon tarafından (örneğin, yerleşik Sertifika Yayıncıları grubu ve üyeleri)
Kötü niyetli bir uygulama örneği, alan içinde yükseltilmiş izinlere sahip bir saldırganın, User
sertifika şablonuna WriteOwner
iznini eklemesi olacaktır; burada saldırgan, bu hakkın sahibi olur. Bunu istismar etmek için, saldırgan önce User
şablonunun sahipliğini kendisine değiştirecektir. Ardından, mspki-certificate-name-flag
şablonda 1 olarak ayarlanacak ve ENROLLEE_SUPPLIES_SUBJECT
etkinleştirilecektir; bu, bir kullanıcının talepte bir Subject Alternative Name sağlamasına olanak tanır. Sonrasında, saldırgan şablonu kullanarak, alternatif ad olarak bir alan yöneticisi adı seçerek kayıt olabilir ve elde edilen sertifikayı DA olarak kimlik doğrulama için kullanabilir.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)