网络安全中的黄金票据与白银票据:深度解析
在网络安全的神秘世界里,票据伪造原理宛如一把神秘的钥匙,而其中 Kerberos 协议中的白银票据(Service Ticket)和黄金票据(Ticket Granting Ticket)的区别更是核心知识要点。
一、票据伪造原理:高铁之旅的类比
想象一下我们乘坐高铁的过程,这与网络中的认证流程有着奇妙的相似之处。在网上购买高铁票就如同向服务端发起请求获取票据。当我们到达高铁站进行票检,这类似从身份验证服务(Authentication Service,AS)获取到票据授予票据(Ticket Granting Ticket,TGT)信息后发送给票据授予服务(Ticket Granting Service,TGS)进行验证。只有通过票检(TGS 验证成功),我们才能凭借票据找到乘务员获取自己的座位(对应找到服务器)。
然而,这里存在一些值得深入探讨的问题。在 AS 确定客户端登录者身份时,密钥分发服务 / 密钥分发中心(Key Distribution Service/Key Distribution Center,KDS/KDC)返回的 msgb 是使用 TGS 密钥加密的 TGT。一旦获取到 krbtgt(密钥分发服务账号)用户的 NTLM(NT LAN Manager)哈希,攻击者就能主动利用该哈希去解密 TGS 生成的 TGT,然后发送给 KDC(密钥分发中心)。若 KDC 通过解密伪造的 TGT 获取到伪造的 session key,并成功解密认证信息且与 TGT 中的数据对比成功,那么黄金票据伪造就达成了。
二、黄金票据:域内身份的万能钥匙
(一)强大功能
黄金票据在身份验证领域有着独特的地位,它能够伪造任意用户的身份。一旦成功伪造,就如同拥有了魔法,可以任意伪造域内的所有用户身份,进而顺利登录到任意一台服务器。比如,当伪造域管理员(Domain Administrator)用户身份后,就能在域内畅通无阻地登录任意服务器,仿佛拥有了最高权限。
(二)局限性
不过,黄金票据并非无懈可击。要获取黄金票据,必须先获取到 krbtgt 的用户信息。但 krbtgt 用户是在域控(Domain Controller)中的关键用户,这意味着只有获取到域控权限之后才有可能实现伪造黄金票据的目的,这无疑是一道高高的门槛。
票据伪造原理基础认知
(一)概念类比
在网络认证中,可将其类比为乘坐高铁的流程。网上购票如同向服务端请求获取票据,到达高铁站票检类似从身份验证服务(Authentication Service,AS)获取票据授予票据(Ticket Granting Ticket,TGT)后发送给票据授予服务(Ticket Granting Service,TGS)验证。只有票检通过(TGS 验证成功)才能找到对应 “座位”(服务器)。
(二)伪造原理细节
在 AS 确认客户端登录者身份时,密钥分发服务 / 密钥分发中心(Key Distribution Service/Key Distribution Center,KDS/KDC)返回用 TGS 密钥加密的 TGT(msgb)。获取 krbtgt(密钥分发服务账号)用户的 NTLM(NT LAN Manager)哈希后,可用于解密 TGS 生成的 TGT 再发给 KDC。若 KDC 能成功解密伪造 TGT 获取 session key、解密认证信息并与 TGT 数据对比成功,即完成票据伪造。
二、黄金票据操作指南与特性
(一)操作前提
- 要获取黄金票据,需先获取域控(Domain Controller)中 krbtgt 用户信息。通常需要较高权限或通过特定漏洞利用等手段来尝试获取相关信息。
(二)功能特点
- 黄金票据可伪造任意域内用户身份,实现登录任意服务器。比如伪造域管理员(Domain Administrator)身份后可在域内自由穿梭访问服务器。
(三)操作示例(理论步骤)
- 首先获取 krbtgt 用户的 NTLM 哈希值,这一步可能涉及到对域控服务器的渗透测试或者利用已知漏洞获取相关权限来提取哈希。
- 利用工具(如 mimikatz 等),输入相关命令来伪造黄金票据。例如:
mimikatz "kerberos::golden /user:Administrator /domain:example.com /sid:S-1-5-21-xxxxxxxxx /krbtgt:xxxxxxxxx /ticket:golden.ticket"
(以上命令仅为示例,实际中需根据具体情况修改参数)
三、白银票据:服务访问的专属通行证
(一)伪造机制
当客户端向服务器发送用 server 密钥(服务器的 NTLM 哈希加密)的服务票据(Service Ticket)TIKI 时,TIKI 中包含供服务器解密认证的 session key。一旦获取到 SERVER 的 NTLM 哈希,就可以直接伪造并解密 TICKET,进而伪造对应的数据。服务器在接收 TICKET 和认证信息后,使用自己的 NTLM 哈希正常解密完成对比,白银票据伪造便大功告成。
(二)独特特点
白银票据主要是针对服务访问时使用的票据。与黄金票据不同,即使成功伪造了白银票据,也仅仅只能访问到特定指定的一个服务。因为在白银票据的过程中,KTC(票据缓存)和 AS 并没有和对应的服务器进行交互,无法验证票据的正确性和准确性。所以,只要获取到目标服务器的哈希之后,就可以任意伪造对应的信息,但访问范围仅限于该服务。
白银票据操作指南与特性
(一)伪造机制与前提
- 当知道目标 SERVER 的 NTLM 哈希后,客户端向服务器发送用 server 密钥(服务器的 NTLM 哈希加密)的服务票据(Service Ticket)TIKI,其中包含供服务器解密认证的 session key。
(二)特点与局限
- 只能访问指定的一个服务。因为在白银票据流程中,票据缓存(KTC)和 AS 未与对应服务器交互,无法全面验证票据。
(三)操作示例(理论步骤)
- 利用工具获取目标服务器的 NTLM 哈希值,比如通过漏洞扫描或者对服务器相关服务的弱口令利用等获取。
- 使用工具(如 mimikatz)伪造白银票据并发送访问请求。例如:
mimikatz "kerberos::silver /target:server01.example.com /service:cifs /rc4:xxxxxxxxx /user:testuser /domain:example.com /ticket:silver.ticket"
(同样,实际操作中需根据目标服务器和域的真实情况修改参数)
在网络安全领域,黄金票据和白银票据各有独特之处,了解它们的原理、操作指南有助于我们更好地防范和理解相关安全风险。同时,在进行相关测试或操作时,请务必在合法授权的环境下进行。后续若有新的技术或信息,将持续完善本内容。