Microsoft Active Directory

KRBTGT Hesabı Nedir? Neden Resetlenmelidir?

KRBGT Hesabı Nedir, Ne İşe Yarar ve Neden Önemlidir?

KRBGT (Kerberos Ticket Granting Ticket) hesabı, Windows Server Active Directory ortamında güvenli kimlik doğrulama işlemlerini sağlamak için kullanılan özel bir hesap türüdür. Bu hesap, Kerberos protokolü ile çalışır ve Active Directory’nin temel güvenlik mekanizmalarından biri olan kimlik doğrulama işlemlerini gerçekleştirir.

KRBGT Hesabının Temel İşlevi

Kerberos, bir ağ içindeki kullanıcıların kimlik doğrulamasını güvenli bir şekilde sağlamak için geliştirilmiş bir protokoldür. Bu protokol, KRBGT hesabını bilet oluşturmak ve kimlik doğrulama işlemlerini yönetmek için kullanır. Herhangi bir kullanıcı veya hizmet, bir sunucuya erişim talep ettiğinde, önce KRBGT hesabı aracılığıyla bir “bilet” alır ve bu bilet, kullanıcının gerçekten yetkili olup olmadığını doğrular.

KRBGT hesabı, Ticket Granting Ticket (TGT) adı verilen biletleri oluşturur ve dağıtır. TGT, bir kullanıcının kimliğini doğrulayan ve diğer kaynaklara erişimini sağlayan bir bilettir. Böylece, kullanıcı her yeni hizmete erişmek istediğinde parolasını tekrar tekrar girmek zorunda kalmaz. KRBGT hesabı, bu sürecin temel taşıdır ve kimlik doğrulamanın kesintisiz işlemesini sağlar.

KRBGT Hesabının Parolasının Düzenli Olarak Değiştirilmesi

Kerberos’un güvenliğini sağlamak için KRBTGT hesabının parolası düzenli aralıklarla değiştirilmelidir.Bu işlem sistem yöneticileri tarafından manuel olarak yapılmalıdır. Parolanın periyodik olarak değiştirilmesi, kötü niyetli kişilerin KRBTGT hesabını ele geçirmesini ve sahte biletler oluşturarak kullanıcı kimliğini taklit etmesini zorlaştırır. KRBTGT parolasının değiştirilme sıklığı genellikle 6 ayda bir veya yılda bir önerilir, ancak bu süre, kuruluşun güvenlik politikalarına göre değişiklik gösterebilir. Parolanın iki kez değiştirilmesi gerektiğinde, iki değişiklik arasında en az birkaç saat, ideal olarak 24 saat gibi bir süre bırakılması önerilir. Bu süre, Active Directory ortamında parolanın değişikliklerinin tam olarak yayılmasını ve Kerberos bileti sisteminin yeni parolayla uyumlu hale gelmesini sağlamak içindir. İlk değişiklik, eski parolayı geçersiz kılmaya başlarken, sistem bir süre daha bu eski parolayı hatırlayabilir ve eski biletleri geçerli kabul edebilir. İkinci değişiklik ise bu biletlerin tamamen geçersiz hale gelmesini sağlar. Aradaki bu süre, domain controller’ların senkranizasyonu sağlaması vedeğişiklikleri algılayıp güncellemeleri yapabilmesi için gereklidir.

Peş Peşe İki Kez Parola Değişikliği Neden Yapılır?

KRBTGT hesabının iki defa resetlenmesinin temel nedeni, Active Directory’nin KRBTGT hesabının son iki parolasını hatırlaması ve bu parolalarla önceden oluşturulmuş Kerberos biletlerini kabul etmesidir.

Kerberos protokolü, kimlik doğrulama sırasında güvenilirlik sağlamak için önceden oluşturulmuş TGT’lerin (Ticket Granting Ticket) geçerli olmasına izin verir. KRBTGT parolası ilk kez değiştirildiğinde, eski parolayla oluşturulan TGT’ler hala geçerli kabul edilir. Bu, saldırganın eski parolayı kullanarak sahte bir TGT ile sistemi sömürmeye devam edebileceği anlamına gelir.

İki kez parola değişikliği yapıldığında ise:

İlk Değişiklik: Yeni bir parola atanır, ancak sistem eski parola ile oluşturulmuş TGT’leri hala kabul edebilir.

İkinci Değişiklik: İkinci kez yeni bir parola atanır ve bu sayede sistem, bir önceki ve daha önceki parolaların oluşturduğu biletleri geçersiz sayar.

Bu süreç, saldırganın eski parolayı kullanarak sistemde sahte biletlerle kimlik doğrulama yapma ihtimalini ortadan kaldırır. İki kez parola değişikliği, bu nedenle eski biletlerin tamamen geçersiz kılınmasını ve güvenliğin sağlanmasını garanti eder.

Örnek Kullanım Senaryosu

Kurumunuzda çalışan bir kullanıcının bilgisayarı, zararlı bir yazılım ile bir saldırgan tarafından ele geçirildiğini varsayalım. Saldırgan, genellikle phishing saldırısı, sosyal mühendislik veya sistemdeki bir güvenlik açığı aracılığıyla kullanıcının bilgisayarına erişim sağlar. Bu erişimle birlikte, arka planda çalışan zararlı yazılım, kullanıcının kimlik doğrulama bilgilerini ve diğer hassas verileri toplamaya başlar. Bu bilgiler, “mimikatz” gibi araçlar kullanılarak NTLM hash’leri şeklinde toplanır ve saldırganın, kullanıcının kimlik bilgilerini parola girmeden kullanmasını mümkün kılar. Ancak saldırganın nihai amacı, daha yüksek yetkilere sahip bir hesap olan KRBTGT hesabına ulaşmaktır.

Kullanıcının bilgisayarındaki erişimini pekiştiren saldırgan, ağda keşif işlemlerine başlar ve “Pass-the-Hash” veya “Pass-the-Ticket” gibi ileri seviye teknikleri kullanarak domain kontrolörüne (DC) erişim sağlar. Domain kontrolörüne ulaştığında, DCSync saldırısı gibi yöntemlerle KRBTGT hesabının hash’ini elde eder. Bu hash, saldırganın Kerberos protokolünü kullanarak sahte bir Golden Ticket oluşturmasına olanak tanır. Golden Ticket, saldırganın Kerberos kimlik doğrulama sistemi tarafından güvenilir kabul edilen ve doğrulanan bir bilettir. Bu bilet ile saldırgan, ağdaki herhangi bir kullanıcı gibi hareket edebilir ve hatta Domain Admin veya Enterprise Admin seviyesinde yetkiler elde edebilir.

Golden Ticket ile saldırgan, domain controller üzerinde tam kontrol sağlar. Bu erişim sayesinde saldırgan, Active Directory kullanıcılarını ve gruplarını yönetebilir, dosya paylaşım alanlarına ve kritik verilere erişebilir, yeni hesaplar oluşturabilir ve mevcut hesapların parolalarını değiştirebilir. Ayrıca, diğer sunucular ve hizmetler üzerinde de yetkili erişim sağlayarak ağın tüm kontrolünü ele geçirebilir. Bu tür bir saldırı, KRBTGT hesabının hash’ine dayandığından, parolanın düzenli olarak değiştirilmemesi durumunda saldırganın uzun süre boyunca gizli erişim sağlamasını kolaylaştırır. Bu nedenle, KRBTGT hesabının parolasının 180 günde bir 24 saat arayla iki kez değiştirilmesi, eski parolalarla oluşturulmuş TGT’lerin geçerliliğini ortadan kaldırarak güvenliğin artırılmasını sağlar.

Peki Nasıl Resetlemeliyiz ?

krbtgt hesabının en son ne zaman resetlendiğini öğrenmek Powershell konsolunu yönetici olarak çalıştırdıktan sonra aşağıdaki komutu girerek öğrenebilirsiniz.

PowerShell
Get-ADUser krbtgt -Properties PasswordLastSet
KRBTGT-01

KRBTGT hesabının en son ne zaman resetlendiğini grafik arayüzü üzerinden de kontrol edebilirsiniz. Bunun için öncelikle Active Directory Users and Computers aracını açın ve View menüsünden Advanced Features seçeneğini etkinleştirin. Bu adım, gelişmiş özelliklerin görünmesini sağlar. Ardından, Users klasöründe KRBTGT kullanıcı hesabını bulun.

KRBTGT-02

Bu hesaba sağ tıklayarak Properties seçeneğine girin ve Attribute Editor sekmesine geçin. (Bu sekmenin görünür olması için Advanced Features seçeneğinin aktif olması gerektiğini unutmayın.) Attribute Editor sekmesinde, pwdLastSet özniteliğini bulun. Bu öznitelik, KRBTGT hesabının parolasının en son ne zaman değiştirildiğini gösterir ve parola değişikliklerini takip etmenize yardımcı olur.

KRBTGT-03

KRBTGT hesap şifresi sıfırlama PowerShell Scripti

KRBTGT hesabının şifresini sıfırlamak için PowerShell betiği kullanmak, güvenlik açısından önemli bir işlemdir. Bu işlemi gerçekleştirmek için aşağıdaki adımları takip edebilirsiniz:

KRBTGT hesabının parolasını sıfırlamak için yetkili bir hesapla alan adı denetleyicisine veya yönetim sunucusuna giriş yapın. KRBTGT parola sıfırlama scriptini GitHub’dan veya buradan indirin. Bu işlemi gerçekleştirmek için genellikle kullanılan resmi betik, Reset-KrbTgt-Password-For-RWDCs-And-RODCs.ps1 adlı PowerShell betiğidir.Bu yazı hazırlandığında scriptin en güncel sürümü, şu anda 3.4 olarak geçmektedir.

Reset-KrbTgt-Password-For-RWDCs-And-RODCs.ps1

Önemli Not: Scripti çalıştırmadan önce, indirdiğiniz dosyanın engellenmiş olup olmadığını kontrol edin. Eğer dosya engellenmişse, çalıştırma sırasında hata alabilirsiniz. Scripte sağ tıklayıp Properties bölümüne girerek Unblock (Engeli Kaldır) seçeneğini işaretleyin. Ayrıca, script dijital olarak imzalanmamışsa PowerShell script çalıştırma politikaları nedeniyle hatalar alabilirsiniz.

Not: Bu scriptin ilk sürümü, Microsoft’tan Jared Poeppelman tarafından yazılmıştır. Daha sonra Jorge de Almeida Pinto, scripti yeniden yazarak birçok yeni özellik eklemiş ve güncel bir sürüm ortaya çıkarmıştır. Güvenlik ve işlevsellik açısından en güncel özelliklere sahip olan Sürüm 3’ü kullanmanız önerilir.

İndirdiğiniz KRBTGT parola sıfırlama scriptini kullanabilmek için, öncelikle Domain Controller sunucusunda C: sürücüsünde bir Scripts klasörü oluşturun. Bu klasörü oluşturduktan sonra, script dosyasını bu klasöre kopyalayın. Ardından, PowerShell uygulamasını yönetici olarak çalıştırın ve scripti çalıştırmak için aşağıdaki komutu kullanın:

PowerShell
C:\Scripts\Reset-KrbTgt-Password-For-RWDCs-And-RODCs.ps1
KRBTGT-04

Script çalıştırıldığında, ilk olarak script hakkında bir bilgilendirme metni gösterilir. Bu adımı atlamak için, script bu soruyu sorduğunda “NO” yazıp Enter tuşuna basarak bilgilendirme adımını hızlıca geçebilirsiniz.

KRBTGT-05

Script çalıştırıldığında, bir sonraki bölümde 9 farklı seçenek karşımıza çıkacaktır. Bu adımlar arasında biz, 5 ve 6 numaralı seçenekleri kullanacağız:

5 – Simulation Mode: Use KrbTgt PROD/REAL Accounts – No Password Reset/WhatIf Mode!
Bu mod, yalnızca işlemin simülasyonunu yapar ve çevrede herhangi bir değişiklik yapmaz. Bu seçenek, ne olacağını ve yapılacak adımları ayrıntılı bir şekilde göstermek için kullanılır.

6 – Real Reset Mode: Use KrbTgt PROD/REAL Accounts – Password Will Be Reset Once!
Bu seçenek, KRBTGT hesabının şifresini gerçek ortamda sıfırlar. Parola yalnızca bir kez sıfırlanacak şekilde işlem yapar ve çevrede kalıcı değişiklik sağlar.

Simulation Mode

İlk olarak, işlemin ne olacağını görmek ve çevrede bir değişiklik yapmamak için Seçenek 5‘i kullanabilirsiniz. Gerçek sıfırlama işlemi için ise Seçenek 6‘yı tercih ederek KRBTGT hesabının şifresini sıfırlayabilirsiniz.

Devam etmek için 5. Seçeneği seçiyoruz. Bu seçenek, yalnızca simülasyon modunu çalıştırarak herhangi bir değişiklik yapmadan bize işlem adımlarını gösterecektir. Bu adımı seçmek için, ekranda seçenekler göründüğünde sadece 5 yazıp Enter tuşuna basmanız yeterlidir.

KRBTGT-06

Bir sonraki aşamada, script bizden forest ve domain bilgilerini seçmemizi isteyecektir. Tek bir forest ve domain yapımız olduğu için, her iki soruya da Enter tuşuna basarak varsayılan seçimi onaylayabiliriz. Bu adımda başka bir işlem yapmamıza gerek yoktur.

Eğer birden fazla forest veya domain yapımız olsaydı, burada doğru forest ve domain’i seçmek için farklı seçenekleri manuel olarak belirtmemiz gerekirdi.

KRBTGT-07

Script, hangi KRBTGT hesabını resetlemek istediğimizi seçmemizi isteyecektir. Bu aşamada, 1 numaralı seçeneği seçin. Ardından, onaylamak için Continue yazın ve Enter tuşuna basın.

KRBTGT-08


Görüldüğü üzere, işlemler sorunsuz bir şekilde ilerledi ve herhangi bir hata ile karşılaşmadık. Şimdi, aynı scripti tekrar çalıştırarak Gerçek Sıfırlama Modu (Real Reset Mode) seçeneği ile devam edebiliriz. Bu modda, KRBTGT hesabının parolasını gerçek bir şekilde sıfırlama işlemini gerçekleştireceğiz.

KRBTGT-09
Real Reset Mode

Scripti tekrar çalıştırdıktan sonra gerçek sıfırlama işlemini başlatmak için, seçenekler ekranında 6 numaralı seçeneği seçiyoruz. Bu seçenek, Real Reset Mode: Use KrbTgt PROD/REAL Real Accounts – Password Will Be Reset Once! olarak adlandırılır ve KRBTGT hesabının parolasını gerçek bir şekilde sıfırlama işlemini yapar. Bu adımı seçmek için sadece 6 yazıp Enter tuşuna basarak devam edebilirsiniz.

KRBTGT-10

forest ve domain bilgilerini seçmek için her iki soruya da Enter tuşuna basarak varsayılan seçimi onaylayabiliriz.

KRBTGT-11

Script, resetlemek istediğimiz KRBTGT hesabını seçmemizi isteyecektir. Bu aşamada, 1 numaralı seçeneği seçin. Ardından, onaylamak için Continue yazın ve Enter tuşuna basın.

KRBTGT-12

Tüm işlemler tamamlandıktan sonra KRBTGT hesabının parolasının resetlendiğini göreceksiniz. İlk adımda yaptığımız gibi Poweshell veya gui aracılığı ile PasswordLastSet değerini aşağıdaki komut ile kontrol edebiliriz.

PowerShell
Get-ADUser krbtgt -Properties PasswordLastSet

KRBTGT-13

Görüldüğü üzere çalışma öncesi 31.10.2024 23:43 olan PasswordLastSet değeri çalışma sonrası 4.11.2024 05:29 olarak güncellenmiştir. Bu çalışmayı demo ortamımda yaptığım için iki tarih arasındaki süre biraz kısa 🙂 fakat prod ortamlarınızda kontrol ettiğinizde bu sürenin daha fazla olduğunu göreceksiniz.

Umarım faydalı bir makale olmuştur. Başka bir makalede görüşmek üzere 🙂

Paylaş

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu