Kerberoasting: Temelden Tespit İpuçlarına

Yazan: Serkan K.
Yayın: 16 Ağustos 2025
Okuma: ~8 dk
Kategori: Makale
Bu yazı, Security analist perspektifiyle Kerberoasting tekniğinin temeli, saldırı akışı, LDAP/SPN keşfi ve pratik tespit ipuçlarını bir arada sunar.

SPN ve Kerberos Temeli

Active Directory ortamlarında Service Principal Name (SPN), belirli bir servis instance’ını tanımlayan benzersiz bir kimliktir. Kerberos, SPN’leri kullanarak bir servis instance’ını ilgili service logon account ile ilişkilendirir; böylece istemci uygulamalar hesap adını bilmeden o servis hesabına kimlik doğrulama talebi oluşturabilir.

Bir TGS (Ticket Granting Service) bileti talep edildiğinde, bu bilet ilgili servis hesabının NTLM password hash değeri ile şifrelenir. Kerberoasting saldırısı tam burada devreye girer: Saldırgan TGS biletini ele geçirir ve çevrimdışı olarak kırmaya çalışır. Başarılı olursa elde edilen değer servis hesabının gerçek parolasıdır.

Saldırı başarısını belirleyen iki ana faktör: parola gücü ve kullanılan şifreleme algoritması.

Şifreleme Algoritmaları ve Risk

  • AES – Daha güvenlidir; kırma süresi uzundur.
  • RC4 – Daha hızlı kırılır; birçok ortamda hâlâ görülür.
  • DES – Çok eski; genellikle devre dışıdır.

En iyi uygulamalar RC4 ve DES'in devre dışı bırakılmasını önerir. Ancak bazı uygulamalar AES’i desteklemediğinden kurumlar RC4 kullanmaya devam edebilir. Saldırganlar belirli tekniklerle encryption downgrade yaparak biletleri RC4-HMAC (etype 0x17) ile talep edebilir. RC4’ün zayıflığı zayıf parola politikalarıyla birleştiğinde, biletler kısa sürede kırılabilir.

Rubeus ile Saldırı Akışı

Rubeus, Kerberoasting’i otomatikleştiren bir araçtır. SPN’e sahip kullanıcı hesaplarını hedefler ve Domain Controller’dan bu hesaplara ait TGS biletlerini ister.

.\Rubeus.exe kerberoast /outfile:garp.txt

Komut ne yapar?

  • Kerberos TGS biletlerini Kerberoasting tekniğiyle çıkarır.
  • Çıkan hash değerlerini garp.txt dosyasına kaydeder.

Sonraki adımlar:

  1. Rubeus → bilet hash’lerini toplar (garp.txt).
  2. garp.txt → Kali Linux’a aktarılır.
  3. Hashcat veya John the Ripper ile offline parola kırma yapılır.

Offline Kırma (Hashcat)

hashcat -m 13100 garp.txt /usr/share/wordlists/rockyou.txt
  • -m 13100 → Kerberos 5 TGS-REP etype 23 (RC4-HMAC) modu.
  • garp.txt → Rubeus’tan gelen hash’ler.
  • rockyou.txt → Denenecek parola listesi.

Kırma başarılı olursa, servis hesabının gerçek parolasına erişilir.

LDAP Kerberoasting SPN Keşfi Tespiti

LDAP tabanlı keşif, Kerberoasting için uygun hedeflerin belirlenmesi aşamasıdır. SPN’e sahip kullanıcı hesapları (çoğunlukla servis hesapları) listelenir. SPN’li hesapların TGS biletleri, zayıf parolalar ve RC4/DES gibi eski algoritmalar kullanıldığında kolayca kırılabilir. Erken tespit, bilet talebi aşamasından önce engelleme imkânı sağlar.

Örnek LDAP Filtreleri / Araçlar

  • PowerView – Tüm kullanıcılar: (&(samAccountType=805306368)(samAccountName=*))
  • PowerView – SPN’li kullanıcılar (Kerberoasting keşfi): (&(samAccountType=805306368)(servicePrincipalName=*))
  • Empire – Get-DomainSearcher: genel kullanıcı nesneleri için samAccountType=805306368
  • 805306368 → AD'de normal kullanıcı hesap tipidir.
  • servicePrincipalName=* → SPN atanmış hesapları listeler; Kerberoasting öncesi kritik adımdır.
  • samAccountName=* → Brute-force / password spraying öncesi hesap isimlerini toplamak için kullanılır.
  • BloodHound/SharpHound bu filtreleri arka planda PowerView veya .NET LDAP sorguları ile kullanır.

ETW ile Görünürlük (SilkService-Log)

WinEventLog:SilkService-Log, ETW tabanlı özel bir provider/controller olup process, network ve logon aktivitelerini standart loglardan daha ayrıntılı kaydedebilir. ETW çok veri üretse de yüksek doğruluk sağlar ve Kerberoasting gibi şüpheli davranışların ince ayrıntılarını görünür kılar.

Kerberoasting Tespiti

SPN’e sahip hesaplar için olağandışı TGS (EventCode 4769) isteklerini izleyin. Özellikle TicketEncryptionType=0x17 (RC4-HMAC) veya DES ile şifrelenmiş biletler, çevrimdışı kırma niyetine işaret edebilir.

Splunk Örneği (RC4-HMAC Odaklı)

index=* source="WinEventLog:Security" EventCode=4769 TicketEncryptionType=0x17
| stats count min(_time) as first_seen max(_time) as last_seen dc(ClientAddress) as uniq_clients by AccountName, ServiceName
| sort - count

4648 ile Korelasyon

4648 eventi, bir kullanıcının başka bir hesap/servis kimliğiyle explicit olarak logon denemesi yaptığını gösterir. Kerberoasting’de interaktif logon oluşmasa da 4648 üretilebilir. 4769 talepleriyle 4648’i karşılaştırmak, normal aktiviteleri ayırıp şüpheli davranışı öne çıkarır.

index=* source="WinEventLog:Security" (EventCode=4769 OR EventCode=4648)
| eval evt=if(EventCode=4769, "TGS", "ExplicitLogon")
| stats values(evt) as events min(_time) as first_seen max(_time) as last_seen by AccountName, ServiceName, ClientAddress
| where mvcount(events)=2
| sort - last_seen

Kısa İpuçları

  • RC4 gördüğünüzde eşikleri düşürün; kırma süresi dramatik biçimde kısalır.
  • Non-domain joined istemcilerden gelen TGS istekleri anomali sayılmalıdır.
  • AES’e geçişi zorlayın; mümkünse gMSA ve güçlü parola politikaları kullanın.
SK
Serkan Kocaağa
Blue Team odaklı içerikler.
#Kerberos #Detection #Windows #BlueTeam