krbtgt Hesabı Nedir? Neden Ve Nasıl Resetlenmelidir?
Merhaba, bu makalede belki bir çok kurum ve kuruluşta ihmail edilen veya takip edilmeyen aslında çok önemli olan “krbtgt” hesabından bahsedeceğim. krbtgt hesabı basit olarak Active Directory doğrulama methodlarından birisi olan kerbros doğrulamasında kullanılmaktadır.
krbtgt hesabı yeni bir domain kurulumu ile otomatik oluşan varsayılan (Administrator, guest vb) hesaplardan birisidir. İsmi değiştirilemez ve hesap silinemez. Hesap disable konumdadır ve enable yapılamaz. Temel görevi “Key Distribution Center” servisi için servis hesabı olarak kullanılır. Yani KDC servisinin çalışmasını sağlayan hesaptır.
Kaynak: https://sozluk.cozumpark.com/krbtgt-account
Kerberos’un nasıl çalıştı ile ilgili bilgi almak istiyorsanız Sayın Hakan UZUNER’in makalesini okuya bilirsiniz. https://www.hakanuzuner.com/kerberos-nedir-kerberos-nasil-calisir/
Sistemlere yapılan ve başarılı olunan bir çok saldırıya baktığımızda yanlış sistem tasarımları,sistemler ve alt yapılar görülmekte. Konu Active Directory olunca Hakan UZUNER Hocam ve Gökhan YÜCELER Hocamın beraber yaptığı “Active Directory Ortamınız Güvende mi?” başlıklı webcast’i izlemenizi şiddetle tavsiye ediyorum.
krbtgt şifresini neden düzeli resetlemeliyiz ?
Kerberos saldırılarına baktığımızda bir çok farklı yöntem karşımıza çıkıyor:
- Kerberos brute-force
- ASREPRoast
- Kerberoasting
- Pass the key
- Pass the ticket
- Silver ticket
- Golden ticket
Görüldüğü gibi bu zafiyetin istismar edilmesi durumunda ciddi sorunlara neden olabilir. Bu zafiyetlerin çoğu yine yanlış kurgulanmış sistem tasarımları ve eskik yapılandırılmış sistemlerde karşımıza çıkıyor. Bunlardan en çok görüleni ve “pass to hash” olarak bilenen saldırı.
Eğer Active Directory ortamınızda “Tier” yapısı yani “hassas hesapların izole edilmesi” doğru kurgulanmamış ve örnek olarak Domain admin yetkilerine sahip bir kullanıcı sizin ortamınızdaki son kullanıcı bilgisayalarına veya sunuculara login olabiliyorsa, sonrasında ortamınızda bulunan bir saldırgan aynı bilgisayara login olup bilgisayar üzerinde cache’lenmiş Domain Admin kullanıcı bilgilerinin hash’ini çalabilir ve bu hash bilgisinden Domain Admin hesapı için şifre üretebilir. Bunun sonucunda sistemde yatay ilerleyip tüm sistemleri ele geçirebilir.
Peki ya krbtgt çalınırsa ne olur ?
İşte felaket orada başlar. Saldırganlar bu hash’i kullanarak istediği hesap için şifre üretebilir hale gelecektir.
Nasıl önlem alabiliriz?
Eğer sisteminiz de Microsoft ATA gibi ürün yoksa kullanıcı şifre hash’lerinin çalınıp çalınmadığını tespit edemeyebilirsiniz. Bu yüzden Microsoft 3 ila 6 ay’da bir toplamda iki defa 24 saat arayla krbtgt şifresinin sıfırlanmasını öneriyor.
Neden 24 saat arayla iki defa sıfırlama ?
Microsoft şöyle diyor: “The password history value for the krbtgt account is 2, meaning it includes the 2 most recent passwords. By resetting the password twice you effectively clear any old passwords from the history, so there is no way another DC will replicate with this DC by using an old password.“
krbtgt password history değeri 2’dir ve 2 defa sıfırlamak tüm eski şifrelerin değişmesini sağlar.
Özetle kural: 3 veya 6 ayda bir 24 saat arayla toplamda iki defa sıfırlama işlemi yapmak.
Soru: Şifre sıfırlama için neden 24 saat beklenmeli ?
Cevap: Bu sürenin beklenmesi tüm DC’lerde şifrenin replike edilmesi ve olası bir sorun yaşanmaması
krbtgt şifresi nasıl resetlenmeli ?
krbtgt – sağ tıkla reset ? Bu iyi bir seçenek olmayabilir. Öncesinde bir var olan ve sizin bilginiz olmayan bir sorun başınızı ağrıtabilir.
Peki nasıl yapmalı ?
Ben bunun için bir script kullanıyorum. Bu script ile önce sistemi test edip eğer bir sorun yok ise şifre değişikliği yapılabiliyor ayrıca script tüm DC’lerde replikasyonu tetikliyor.
İlk olarak scripti “https://github.com/zjorz/Public-AD-Scripts/blob/master/Reset-KrbTgt-Password-For-RWDCs-And-RODCs.ps1” adresten inidiriyoruz.
Aşağıda görüldüğü gibi hesap en son “5.12.2021” tarhinde değiştirilmiş tabi bu demo ortamı olduğu için zaman aralığı yakın. Sizin ortamınızda en az 3 ay olabilir.
İlk olarak indirdiğim scripti çalıştırıyorum.
“YES” ile devam ediyorum. Bilgi ekranları geliyor çift enter yaparak devam ediyorum.
Aşağıdaki seçenekler gelene kadar devam ediyorum.
Şifreyi değiştirmeden önce test etmek istiyorum. Bunun için “5” numaralı “Simulation Mode” ile devam ediyorum. Bu modda şifre değişikliği yapılmıyor sadece test ediliyor.
Domain FQDN’i yazıyorum. Bir sonraki adımda yine aynı işlemi tekrarlıyorum.
Sistemdeki krbtgt hesabını buluyor. “1” ile devam ediyorum.
“CONTINUE” yazarak işlemi başlatıyorum.
Script, testi bitirdi benim yapımda iki adet DC var ikisininde erişilebilir olduğunu söylüyor. Buradan, sistemin şifre değiştirmek için hazır olduğunu anlıyorum.
Artık şifremi değiştirmek için scripti yeniden çalıştırabilirim. Yukardaki tüm adımları seçim ekranı gelene kadar aynı şekilde ilerletiyorum. Seçin ekranında bu sefer “6” “RealReset Mode“‘u seçiyorum.
Yine Domain FQDN bilgilerini giriyorum.
“CONTINUE” yazarak enter’a basıyor ve şifre değiştirme işlemini yapıyorum.
Her şey başarılı bir şekilde sonuçlandı ve aşağıda görüldüğü gibi şifre değiştirildi. Bu işlemin aynısı 24 saat sonra yine yapıyoruz ve şifre değiştirme işlemini tamamlamış oluyoruz.
Makaleyi burada bitirken her 3 veya 6 ay’da bir aynı işlemleri tekrarlamanız gerektiğini hatırlatır faydalı olmasını dilerim. Saygılar.
Eline sağlık, çok güzel bir makale olmuş.
Ben teşekkür ederim hocam, çok sağol olun saygılar.
Eline sağlık Mehmet hocam. Güzel bir konu, güzel bir makale.
Çok teşekkür ederim Rıza hocam çok sağolun.
Hocam elinize kolunuza sağlık, önerdiğiniz script sayesinde 24 saat arayla işlemi yaptım.Teşekkürler tekrardan
Rica ederim, teşekkürler.
Teşekkürler, çok değerli bi konu elinize sağlık.
Teşekkür ederiz.
Merhaba,
Bu güzel makale için teşekkür ederim. Güvenlik önlemini uygulamam gerekiyor,
Ama kullanıcılar arasında krbtgt hesabı yok.
Neden görünmez acaba?
Teşekkürler
Cevap yazmanıa gerek kalmadı yine de teşekkürler.
Bazen çok basit şeyler saatlerce uğraştırabiliyor 🙂
Beşka arkadaşlar da yaşarsa faydası olsun.
Active Directory Users and Computers ekranını yıllardır standart hali ile kullanıyorum.
View dan Advanced seçtiğimde krbtgt kullanıcısı göründü.
🙂