AD域票据攻击之增强型金票、钻石&蓝宝石票据
字数 1871
更新时间 2025-08-06 08:35:06

AD域票据攻击进阶:增强型金票、钻石票据与蓝宝石票据技术详解

0x00 前言

在AD域渗透的持久化阶段,黄金票据(Golden Ticket)和白银票据(Silver Ticket)是常用的方法,但它们存在一定的局限性且容易被检测。本文将深入探讨三种高级票据攻击技术:增强型黄金票据、钻石票据和蓝宝石票据,分析它们如何突破传统限制并绕过安全检测。

0x01 增强型黄金票据(Enhanced Golden Ticket)

基本概念

黄金票据是通过伪造域管理员权限的TGT(Ticket Granting Ticket),来换取任意服务的ST(Service Ticket),相当于获取了域内的最高权限。

制作条件

  1. 域名称
  2. 域SID值
  3. krbtgt账户的NTLM Hash或AES 256密钥

获取必要信息的方法

# 获取域名称和SID值
net time /domain
whoami /user

# 获取krbtgt账户hash密码(需要域管权限)
mimikatz # lsadump::dcsync /user:domain\krbtgt
mimikatz # lsadump::lsa /user:krbtgt /inject

制作金票并导入

mimikatz # kerberos::golden /admin:username /domain:domain /sid:sid /krbtgt:NTLM Hash
mimikatz # kerberos::ptt ticket.kirbi

普通金票的局限性

普通金票的使用权限被限制在当前域内,不能跨域使用。

增强型金票原理

通过给PAC(Privilege Attribute Certificate)增加Enterprise Admins组的权限实现跨域攻击。Enterprise Admins组存在于域林的根域中,拥有对整个域林的控制权。

实现跨域攻击步骤

  1. 获取根域的Enterprise Admins组的SID(通常为519)
  2. 使用子域krbtgt账户的密码Hash制作金票时添加该SID
mimikatz # kerberos::golden /admin:username /domain:domain /sid:sid /sids:xxx-519 /krbtgt:NTLM Hash /ptt

金票的异常行为特征

  1. 金票是离线生成的TGT
  2. 使用伪造用户(即使域内不存在该账号)

0x02 钻石票据(Diamond Ticket)

基本概念

钻石票据通过域内用户请求合法的TGT后,使用krbtgt的AES256密钥对PAC进行解密、修改、重新加密,从而绕过检测。

制作条件

  1. krbtgt账户的AES256密钥
  2. 域用户账号和密码

获取krbtgt的AES256密钥

mimikatz # privilege::debug
mimikatz # lsadump::dcsync /user:domain\krbtgt

使用Rubeus制作钻石票据

Rubeus.exe diamond /domain:DOMAIN /user:USER /password:PASSWORD /dc:DOMAIN_CONTROLLER /enctype:AES256 /krbkey:HASH /ticketuser:USERNAME /groups:GROUPS_ID(如512,518,519,520...)

导入并使用钻石票据

Rubeus.exe asktgs /ticket:ticket.kirbi /service:cifs/dc.domain.com /ptt

钻石票据的优势

  1. 有完整的Kerberos请求过程
  2. 修改的是合法TGT中的PAC,更加隐蔽

检测钻石票据的方法

  1. 4672事件(特权登录): 日志中的账号与实际域管账号不一致
  2. 4627事件(用户组信息): 检查Group Membership字段中低权限用户是否具有高权限组
  3. 4624事件(账户登录): 检查非常用IP地址段出现管理员登录的异常行为

0x03 蓝宝石票据(Sapphire Ticket)

基本概念

蓝宝石票据利用Kerberos的扩展S4U2self + U2U(User-to-User)来取得高权限用户的PAC,替换原始PAC,从而绕过检测。

攻击流程

  1. 域用户发起TGT请求
  2. 以administrator身份通过S4U2self发起自身的ST请求
  3. 使用U2U扩展获取目标用户的PAC
  4. 通过krbtgt账户密钥解密并将合法的高权限PAC附加到票据里

攻击复现步骤(域内Linux主机)

  1. 获取域SID和krbtgt账户密钥
  2. 在低权限主机上导入蓝宝石票据
  3. 成功访问域控
kerberos::ptc ignored.ccache

蓝宝石票据的关键特征

  1. S4U2self请求中包含PA-FOR-USER内容
  2. U2U实现必须指定ENC-TKT-IN-SKEY选项
  3. 请求中包含附加票证(Additional-tickets)

检测蓝宝石票据的难点与方法

由于蓝宝石票据具有合法的PAC,检测难度较大,可从以下方面入手:

  1. krbtgt密码hash被盗的行为(如DCSync攻击)
  2. 可疑工具的使用
  3. 具有S4U2Self+U2U的非常规KRB_TGS_REQ请求
  4. 高权限用户从低权限主机发出的KRB_TGS_REQ请求

0x04 防御建议

  1. 保护krbtgt账户: 定期更改krbtgt密码,实施双因子认证
  2. 监控异常事件: 重点关注4672、4627、4624等日志事件
  3. 限制特权组使用: 严格控制Enterprise Admins组成员
  4. 网络分段: 限制域控制器之间的通信
  5. 实施高级检测: 部署能够检测异常Kerberos流量的解决方案

0x05 总结

三种高级票据攻击技术各有特点:

攻击类型 特点 隐蔽性 检测难度
增强型金票 跨域攻击能力 容易
钻石票据 合法TGT+修改PAC 中等
蓝宝石票据 合法PAC获取 困难

安全团队应深入了解这些攻击技术的原理和特征,才能有效防御和检测此类高级威胁。

相似文章
相似文章
 全屏