Abusing Active Directory Certificate Service

Abusing Active Directory Certificate Service yazımızda sizlere CA Servisinde bulunan sertifika template’lerden kaynaklı security problemlerine değineceğiz. Bu yazı ilk seri olarak başlamaktadır. Bu yazıda ESC1 yöntemini anlatacağız. Aldığımız tüm domain bazlı önemlere ek olarak Sertifika Servisini gözden geçirdik mi ?

Sertifika Servisinden Domain Admine hatta Administrator(RID 500) hesabına ulaşabilirmiyiz gibi soruların cevabını bulacağız.

Senaryo

  • CA Server: CA2019NEW
  • CA Service Name:CA2019NEW
  • DC IP:10.10.10.18
  • RID500: Not Renamed, Administrator

Certifica Sunucumuzda Yeni bir Sertifika Template Oluşturduk. İsmi ESC1 olarak ve Template Şu özelliklere Sahip;

  • Client Authentication: True
  • Enabled: True
  • Enrollee Supplies Subject: True
  • Requires Management Approval: False
  • Permission: Domain Users or Authenticated Users has Enroll Permission

Template’in tüm özellikleri aşağıdaki gibi sıralanmıştır.

Sonrasında Template publish edilerek kullanıma sunulmuştur.

CERTIPY ile ESC1

İlk olarak kali üzerinde aşağıdaki komutu çalıştırıyoruz. Ve sertifikalara ulaşıyoruz.

certipy find -vulnerable -dc-ip 10.10.10.18 -u username -p password
Abusing Active Directory Certificate Service Find

Sonrasında Dışarıya certificate template’ler txt ve json olarak çıkarıldı.

Sonuç olarak cat komutu ile txt dosyasını açtığımızda ESC1 atağa uyan sertifikamızı görmekteyiz.

ESC1 Template

VE TEHLİKE BAŞLIYOR………………

Sonrasında Sertifikaya request’de bulunanım UPN’imiz administrator olsun.

certipy req -dc-ip 10.10.10.18 -u standartuser@koray.intra -p 'Password1' -ca CA2019NEW -target CA2019NEW.koray.intra -template ESC1 -upn Administrator@koray.intra -dns Administrator.koray.intra
  • target: CA Hostname
  • ca: CA Name
  • template:Template ismi

Komut sonrasında pfx dosyasına sahibiz.

Abusing Active Directory Certificate Service

Şimdi sıra geldi administrator ile authentication olmaya ve NT Hash’i ele geçirmiş olduk artık istediğimiz sunucuya girebiliriz. Özelliklede Domain Controllerlara 🙂

Abusing Active Directory Certificate Service Certipy

SONRASINI ZATEN BİLMEKTEYİZ……..

Domain Controller’daki share’den başlayarak NTDS dumping’e kadar her türlü yöntem denenmektedir. Tüm DC leri aynı yöntemle operasyonun dışında bırakabilirsiniz gibi bir çok impact yaratmaktadır.

Abusing Active Directory Certificate Service
Abusing Active Directory Certificate Service

Mitigation

En son olarak bu ataktan kurtulmak için neler yapılabilir. Bu bölümde bundan detaylıca bahsedeceğiz. Öncellikle bu özelliklere sahip sertifikaları nasıl bulabiliriz.

ADSI Edit üzerinden ;

  • MSPKI-Enrollment-flag: Manager approval (disable 0)
  • MSPKI-RA-Signature: Authorized signature required(no 0)
  • MSPKI-Certificate-Name-Flag: Supply object in request (Yes 1)
  • MSPKI-Certificate-Application-Policy : Template EKU (Client Authentication :1.3.6.1.5.5.7.3.2)

Bu konuda Microsoft Makelesindeki Powershell script kullanılabilir. Link

Peki sertifika tarafında neler yapılabilir.

İlk olarak Authenticated User , Domain Users ve Domain Computers Enroll yetkisini kaldırılmalıyız.

Mitigation Cert Template

İkinci olarak Supply in the request’i Build from this Active Directory information kısmına çekilmelidir.

Build from Active Directory Information

Üçüncü olarak CA Manager Approval açılabilir.

CA Manager Approval

Sonuç olarak Certification Template’de yapılan hatalardan dolayı Domainde administrator kullanıcısının ve diğer kullanıcıların NT Hashleri ele geçirme gibi durumlara düşebilmekteyiz.Abusing Active Directory Certificate Service yazımızın ilk serisinde ESC1 ataktan bahsettik , diğer yazılarımı aşağıdaki kategorilerden takip edebilirsiniz.