PTH、PTT、PTK 三者区别
Pass-the-Hash (PtH)
PtH 是最广为人知的技术,它指的是一种攻击方法。攻击者通过窃取用户在内存中的 NTLM 哈希,并直接使用这个哈希来作为凭据进行身份验证,而不需要知道明文密码
- 工作原理: 当 Windows 用户登录时,系统会生成一个 NTLM 哈希并存储在内存中。PtH 攻击者可以利用 Mimikatz 等工具从内存中抓取这个哈希,然后将它传递给目标服务(如 SMB、WMI),假冒该用户进行登录
- 应用场景: 最典型的应用是横向移动。如果攻击者拿到了域管理员的 NTLM 哈希,就可以在其他机器上直接使用这个哈希来建立远程连接、执行命令,甚至完全控制整个域
- 常用工具: Mimikatz 是 PtH 攻击的核心工具,它的
sekurlsa::logonpasswords
和sekurlsa::pth
功能就是为此而生
Pass-the-Ticket (PtT)
PtT 则是利用 Kerberos 协议的攻击技术。它指的是攻击者窃取了用户在内存中的 Kerberos 票据(Ticket Granting Ticket, TGT),然后将这个票据注入到当前会话中,从而获得访问权限
- 工作原理: Kerberos 认证依赖于 TGT。当用户成功登录域时,域控制器会颁发一个 TGT。PtT 攻击者可以利用工具从内存中导出这个 TGT,并将其加载到另一台机器的内存中。加载后,该机器就可以向域内的其他服务发起访问请求,而不需要提供哈希或密码
- 与 PtH 的区别:
- 协议不同: PtT 针对的是 Kerberos 协议,而 PtH 针对的是 NTLM 协议
- 对象不同: PtT 操作的是 Kerberos 票据,PtH 操作的是 NTLM 哈希
- 更隐蔽: Kerberos 认证通常比 NTLM 更难被检测,因为它不涉及明文密码或哈希在网络中的传输