哈希传递是能够在不需要账号明文密码的情况下完成认证的一个技术,比如NTLM Hash、 LM Hash都不需要明文密码因此都可以被称为Hash传递攻击。
NTLM验证靠HASH值
1.获得一台域主机的权限
2.Dump内存获得用户hash
3.通过pass the hash尝试登录其他主机
4.继续搜集hash并尝试远程登录
5.直到获得域管理员账户hash,登录域控,最终成功控制整个域
画图显示通信过程:
1、client发送账户名user到server 2、server判断本地账户名是否存在,没有则失败,有的话生成challenge,查找user对应的NTLM哈希,使用哈希加密challenge,生成一个net-ntlm hash存在内存中,将challenge发送给client 3、client接受到challenge以后,将自己的密码转换成NTLM哈希,用生成的哈希加密challenge生成response,发送response给server 4、server对比自己内存中的net-ntlm hash与client发来的response是否一致
利用:
当域内的用户想要访问域中的某个服务时,输入用户名和密码访问,本机kerberos服务会向KDC的AS认证服务发送一个AS-REQ认证请求。
该请求包中包含: 请求的用户名、客户端主机名、加密类型 和 Authenticator(用户NTLM Hash加密的时间戳)以及一些其他信息
在AS-REQ阶段,是用用户密码Hash加密的Authenticator,所以也就造成了hash传递。我们只需要获取域用户Hash,同时目标机器开放smb服务,就可以进行Hash传递攻击。
privilege::debug 提升权限(注:需以管理员权限运行) sekurlsa::logonpasswords 获取内存中保存的登录信息 sekurlsa::pth /user:administrator /domain:xiusafe.com / ntlm:a803cf45d87009c404eb89df4b1ae94c 弹出新窗口 dir \\10.10.10.254\c$