黄金票据和白银票据区别
黄金票据(Golden Ticket)
黄金票据是一种伪造的 TGT(Ticket Granting Ticket),它允许攻击者以任意用户的身份(通常是域管理员)访问域内所有资源
攻击原理
黄金票据攻击的核心是获取域控制器(Domain Controller,DC)的 krbtgt 账户哈希。krbtgt
是一个特殊的服务账户,它用于加密和签名所有颁发的 Kerberos 票据。只要掌握了这个哈希,攻击者就可以在任何机器上离线伪造一个有效的 TGT
攻击步骤
- 权限提升:攻击者需要先在域内获取一个普通用户的权限,然后通过其他漏洞(如
Zerologon
或PetitPotam
)提升到域管理员权限 - 获取哈希:利用像 Mimikatz 这样的工具,从域控制器内存中导出
krbtgt
账户的哈希 - 伪造票据:使用 Mimikatz,利用导出的
krbtgt
哈希来伪造一个 TGT。这个 TGT 可以包含任何用户名、SID(用户安全标识符)和组信息,通常会伪造一个高权限用户(如Domain Admins
) - 权限维持:伪造的票据可以被攻击者用来请求其他服务票据(ST),从而访问域内所有服务和资源,且无需与域控制器进行任何交互
攻击特点
- 攻击范围广:攻击者可以以任何身份访问域内所有资源,因为伪造的 TGT 是最高级别的认证凭证
- 权限持久:只要攻击者拥有
krbtgt
哈希,就可以在任何时间、任何地点伪造新的 TGT,实现了对整个域的永久控制 - 难以检测:由于攻击不依赖特定用户的密码,且攻击流量与正常 Kerberos 流量相似,因此在没有专门监控的情况下很难被发现
白银票据(Silver Ticket)
白银票据是一种伪造的 ST(Service Ticket),它允许攻击者以任意用户的身份访问特定的服务,而不是整个域
攻击原理
白银票据攻击的核心是获取特定服务账户的哈希。在 Kerberos 中,每个服务(如HTTP
、MSSQL
、Cifs
等)在域内都有一个对应的服务账户。攻击者只要获取了某个服务账户的哈希,就可以伪造一个该服务的有效 ST。
攻击步骤
- 权限提升:攻击者需要先获取一个普通用户的权限,然后通过其他漏洞获取到目标服务所在的机器的本地管理员权限
- 获取哈希:在目标服务器上,利用 Mimikatz 等工具,从内存中导出特定服务账户的哈希
- 伪造票据:使用 Mimikatz,利用导出的服务账户哈希来伪造一个 ST。这个 ST 只能用于访问特定的服务,且同样可以包含任意用户名和组信息
- 访问服务:伪造的 ST 可以被攻击者用来直接访问该服务,无需经过域控制器进行 TGT 认证
攻击特点
- 攻击范围小:白银票据只能访问特定服务,无法像黄金票据那样横向移动到所有域内资源
- 无需域控制器:攻击者可以直接与目标服务进行交互,无需与域控制器进行任何通信,这使得攻击更加隐蔽
- 相对容易:相比于黄金票据需要域管理员权限来获取
krbtgt
哈希,白银票据只需要获取特定服务的本地管理员权限,在某些场景下这更容易实现
特性 | 黄金票据(Golden Ticket) | 白银票据(Silver Ticket) |
---|---|---|
伪造对象 | TGT(Ticket Granting Ticket) | ST(Service Ticket) |
所需哈希 | krbtgt 账户哈希 | 服务账户哈希(如 HTTP、MSSQL、Cifs 等) |
攻击目标 | 整个域内所有资源和服务 | 特定服务(如文件共享、数据库等) |
所需权限 | 域管理员权限 | 目标服务所在机器的本地管理员权限 |
影响范围 | 全域控制,可进行任意横向移动,并创建任何权限的用户 | 单点控制,只能访问特定服务,横向移动受限 |
攻击隐蔽性 | 攻击流量与正常 TGT 流量类似,难以被检测 | 攻击流量不经过 DC,更加隐蔽 |