Skip to main content

哈希传递 Pass The Hash

哈希传递,即Pass The Hash,是一种可以让我们使用NTLM哈希对Windows服务进行认证,而无需明文密码。我们在 NTLM 篇中讲过NTLM的认证步骤,让我们再来回顾一下:

image.png

哈希传递认证可以跳过上图中的第一步,通过使用例如 mimikatz 之类的工具实现。需要注意的是,哈希传递攻击仅可以用于 NTLM 认证,而非 Kerberos 认证。一些安全工具,例如 impacket, 不仅可以通过 PTH 认证,而且还可以实现代码执行。而这之后的原理则是攻击者通过 SMB 协议使用 NTLM 哈希连接目标服务器。大部分工具通过 Service Control Manager API 开启一个新的 Windows 服务并且通过命名管道来通信。这项技术需要与目标 SMB 服务的连通,并且可以访问目标主机的 ADMIN$ (在 ADMIN$ 中写入一个服务二进制文件),这意味着需要本地管理员权限。接下来,我们来看看常见的 PTH 用法。

1:使用 mimikatz 进行 pth 认证并生成新的用户上下文

 

2:impacket 中的 psexec

 

3:impacket 中的 mssqlclient

 

4:impacket 中的 secretdump

 

5:CME 中的各项功能

 

6:xfreerdp 的 PTH 认证

 

Metasploit 也支持 PTH 认证并且获得代码执行,但考虑到 MSF 载荷的特征十分明显,因此不在此介绍,学员们可以自行尝试。