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 更难被检测,因为它不涉及明文密码或哈希在网络中的传输
Pass-the-Key (PtK)
PtK 是一种更新、更高级的哈希传递技术,它通常与 AES 加密有关。攻击者不再传递 NTLM 哈希或 Kerberos 票据,而是利用用户的 AES 密钥来伪造 Kerberos 认证过程
- 工作原理: 在 Windows 2008 及更高版本的系统中,Kerberos 票据的加密和解密都可能使用 AES 密钥。PtK 攻击者从内存中提取出这个 AES 加密密钥,然后用它来伪造 Kerberos 票据,实现身份验证。这种方法通常用于绕过某些安全限制或在更现代的 Kerberos 环境中进行攻击
- 与 PtH/PtT 的区别:
- 对象不同: PtK 利用的是 AES 密钥,而不是 NTLM 哈希或 Kerberos 票据
- 安全性更高: AES 密钥是更强大的加密凭据,攻击者拿到它后,几乎可以完全伪造 Kerberos 认证过程
- 应用场景: 在一些对 Kerberos 票据有额外安全控制的环境中,PtK 可能是更有效的选择
特性 | Pass-the-Hash (PtH) | Pass-the-Ticket (PtT) | Pass-the-Key (PtK) |
---|---|---|---|
攻击对象 | NTLM 哈希 | Kerberos 票据 (TGT) | AES 密钥 |
利用协议 | NTLM | Kerberos | Kerberos |
核心工具 | Mimikatz、Impacket | Mimikatz、Impacket | Mimikatz |
常见场景 | Windows 2003/2008 老环境,横向移动 | Windows 2008+ Kerberos 环境,权限维持 | 现代 Kerberos 环境,更隐蔽的攻击 |
核心思想 | 伪造哈希 | 注入票据 | 伪造密钥 |