Published on

Kerberoasting: Active Directory Hizmet Hesaplarını Avlamak

Authors

Kerberoasting: Active Directory Hizmet Hesaplarını Avlamak Bir Active Directory ortamına sızdığınızda, yetki yükseltmek (Privilege Escalation) veya yanal hareket (Lateral Movement) yapmak için kullanabileceğiniz en "sessiz" ve etkili yöntemlerden biri Kerberoasting saldırısıdır. Bu yazıda, Kerberos protokolünün nasıl çalıştığını, bu zafiyetin neden kaynaklandığını ve saldırganların bunu nasıl sömürdüğünü detaylıca inceleyeceğiz.

Kerberoasting Nedir?

Kerberoasting, bir saldırganın Active Directory içerisindeki Service Principal Name (SPN) tanımlı hizmet hesaplarına ait Kerberos biletlerini (TGS - Ticket Granting Service) talep etmesi ve bu biletleri "çevrimdışı" (offline) olarak kırarak parolaları ele geçirmesi tekniğidir.

Önemli Not: Bu saldırıyı gerçekleştirmek için saldırganın Domain User (standart bir etki alanı kullanıcısı) yetkisine sahip olması yeterlidir. Domain Admin olmaya gerek yoktur.

Zafiyetin Mantığı: Neden Böyle Bir Açık Var? Bu durum aslında bir bug (hata) değil, Kerberos protokolünün çalışma mimarisinin bir sonucudur.

SPN (Service Principal Name): Active Directory'de SQL Server, IIS gibi hizmetlerin çalışabilmesi için "Hizmet Hesaplarına" (Service Accounts) ihtiyaç vardır. Bu hesapların kimlik doğrulaması yapabilmesi için bir SPN kaydı olması gerekir.

TGS Talebi: Herhangi bir domain kullanıcısı, bu hizmetlere erişmek isteyebilir. Kerberos protokolüne göre, bir kullanıcı bir hizmete erişmek istediğinde KDC'den (Key Distribution Center) bir Service Ticket (TGS) ister.

Şifreleme: KDC, istenen hizmet için bir bilet oluşturur. İşte kritik nokta burasıdır: KDC, bu bileti (TGS) hedef hizmet hesabının NTLM hash'i ile şifreleyerek kullanıcıya verir.

Zafiyet: Active Directory, kullanıcının o hizmete erişim yetkisi olup olmadığını kontrol etmeden bileti verir (yetki kontrolü hizmetin kendisinde yapılır). Saldırgan bu şifreli bileti alır, ancak sunucuya göndermek yerine kendi bilgisayarına kaydeder ve şifreyi kırmaya çalışır.

Saldırı Adımları (Exploitation)

Saldırı temel olarak üç aşamadan oluşur: Keşif, Talep Etme ve Kırma.

  1. Keşif ve SPN Taraması (Enumeration) İlk adım, ortamda SPN kaydı bulunan hesapları tespit etmektir. Bunun için dışarıdan bir araç yüklemeye bile gerek yoktur, ancak Impacket veya Rubeus gibi araçlar işi kolaylaştırır.

Impacket (Linux/Kali) ile: Ağda geçerli bir kullanıcı adı ve şifreniz olduğunu varsayalım.

Bash

GetUserSPNs.py <Domain>/<Kullanıcı>:<Şifre> -dc-ip <DC_IP_Adresi> -request

Rubeus (Windows) ile: Windows makine üzerinde çalışıyorsanız:

PowerShell

.\Rubeus.exe kerberoast /stats
  1. Bileti Talep Etme ve Çıkarma Saldırgan, hedeflediği (genellikle yüksek yetkili veya zayıf parolalı olması muhtemel) hesapların TGS biletlerini talep eder. GetUserSPNs.py aracı -request bayrağı ile bu biletleri otomatik olarak çeker ve John the Ripper veya Hashcat formatında ekrana basar.

Örnek çıktı formatı şuna benzer:

$krb5tgs$23$*svc_sql$DOMAIN.LOCAL$mssql/sql01...

Bu karmaşık dize, hizmet hesabının parolasıyla şifrelenmiş bilettir.

  1. Çevrimdışı Parola Kırma (Cracking) Saldırgan artık Active Directory ile iletişimini kesebilir. Elde edilen hash, güçlü bir GPU (Ekran Kartı) kullanılarak Hashcat ile kırılmaya çalışılır.

Hashcat Komutu (Mode 13100):

Bash

hashcat -m 13100 -a 0 hashes.txt rockyou.txt

-m 13100: Kerberos 5 TGS-REP etype 23 (Standart Kerberoasting formatı)

-a 0: Sözlük saldırısı (Dictionary attack)

hashes.txt: Kaydettiğimiz hash dosyası

rockyou.txt: Kullanılacak parola listesi

Eğer hizmet hesabının parolası zayıfsa (örn: "Password123", "Sirket2024!" vb.), Hashcat bunu dakikalar içinde kırar ve size Clear-Text (Açık Metin) parolayı verir.

Neden Bu Kadar Tehlikeli?

Tespit Edilmesi Zordur: TGS talebi normal bir Kerberos trafiğidir. Her kullanıcı günde yüzlerce bilet talep eder. Anormal sayıda istek yapılmadığı sürece SIEM ürünleri tarafından fark edilmeyebilir.

Hizmet Hesapları Genelde Yüksek Yetkilidir: Çoğu zaman hizmet hesaplarına (SQL servis hesabı gibi) "Domain Admins" yetkisi verilir veya sunucularda yerel yönetici (Local Admin) haklarına sahiptirler.

Parola Politikaları: Hizmet hesaplarının parolaları "hizmet kesintiye uğramasın" diye yıllarca değiştirilmez ve genelde karmaşık değildir.

Savunma ve Azaltma Yöntemleri (Mitigation)

Bu saldırıdan tamamen kaçınmak zordur çünkü Kerberos'un doğası budur, ancak risk minimize edilebilir

Güçlü Parolalar: Hizmet hesaplarının parolaları en az 25 karakter uzunluğunda, rastgele üretilmiş ve tahmin edilemez olmalıdır. Uzun parolaların hash'ini kırmak yıllar sürer.

Managed Service Accounts (gMSA): Mümkünse standart kullanıcı hesapları yerine, parolaları Windows tarafından otomatik yönetilen ve 120 karakterli karmaşık şifrelere sahip Group Managed Service Accounts (gMSA) kullanılmalıdır.

AES Şifreleme: Kerberos için RC4 yerine AES şifrelemesi (AES-128 veya AES-256) zorunlu hale getirilmelidir. AES kırmak, RC4'e (NTLM) göre çok daha zordur.

Honeypot SPN: Sahte bir hizmet hesabı oluşturun ve buna bir SPN atayın. Bu hesaba hiç kimsenin normal şartlarda erişmemesi gerekir. Eğer bu hesap için bir TGS talebi (Event ID 4769) gelirse, ağınızda birinin Kerberoasting yaptığını anlarsınız.

Sonuç

Kerberoasting, saldırganların yetki yükseltmek için kullandığı en güvenilir yollardan biridir. Bir sızma test uzmanı olarak, bu zafiyeti tespit etmek ve raporlamak, kurumun Active Directory hijyeni açısından kritiktir. Unutmayın, zincir en zayıf halkası (veya en zayıf parolası) kadar güçlüdür.