简介
Pass The Hash 即PTH,也是内网渗透中较未常见的一个术语,就是通过传递Windwos 本地账户或者域用户的hash值,达到控制其他服务器的目的
在进入企业内网之后,如果是Windows PC或者服务器较多的环境,极有可能会使用到hash传递来进行内网的横传,现在企业内部一般对于口令强度均有一定的要求,抓取到本地hash后可能无法进行破解,同时从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash.在Windows Server 2012 R2及之后版本的操作系统中,默认不会在内存中保存明文密码,这时可以通过传递hash来进行横传。
适用场景:内网中大量主机密码相同。
原理
hash 传递的原理是在认证过程中,并不是直接使用用户的密码进行认证的,而是使用用户的hash值,因此,攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不需要提供明文密码。在Windows系统中,通常会使用NTLM身份认证,NTLM是口令加密后的hash值。PTH是基于smb服务(139端口和445 端口)。详细可以查看这篇文章进行了解。:https://www.4hou.com/posts/V0xO
哈希传递
msf hash 传递
现在有多种hash传递的方式,本篇文章使用msf 来进行hash传递,也没啥别的理由,就是因为操作比较简单,
hash 传递的模块
执行单个命令的PTH模块
auxiliary/admin/smb/psexec_command
执行直接就获取到meterpreter的PTH模块
exploit/windows/smb/psexec
支持对一个网段进行PTH进行验证的模块
exploit/windows/smb/psexec_psh
需要在高权限下才可以执行hashdump的操作,个人在使用merterpreter中自带的hashdump时总是报错,不知道为什么,错误提示的意思应该是权限不够,可是我都在系统权限下执行了还是报告,错误截图如下,目前还不知道原因

而使用其他模块却可以成功
run post/windows/gather/hashdump
hash值的部分就是图中500后面的值,第一个是LM,第二个是NTML,在实际操作中,经过实验,确定LM的值对错与否是不重要的,只要NTML的值正确即可。

下面这张图为exploit/windows/smb/psexec,使用时的配置,SMBPASS 就是抓取的hash.

可以看到执行成功后的效果 
在测试时 win12 hash 抓取时候会报以下的报错,所有的模块都不好使,不知道为啥,而且跟UAC时没有关系的,因为hash传递之后获取就是system 权限的session了。

通过导入mimikatz可以成功导出

不过在msf 中使用mimikatz 有一点小小的插曲,因为之前没有在msf 中使用过mimikatz 所以相当不熟练,而且连实验都没有做过。
在msf中使用mimikatz
通过load mimikatz 进行导入,这里下面发黄的提示的工具kiwi就是msf内置的mimikatz模块的升级版,后续会进行学习的。

help mimikatz 查看帮助,执行命令的话就使用mimikatz_command 命令进行使用

mimikatz_command -f a:: 输入一个错误的模块,可以列出所有模块

获取hash的话就是
mimikatz_command -f samdump::hashes
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W4RcQqSZ-1637850072244)(18978A9C096242158FD69AA722E3C925)]](https://img-blog.csdnimg.cn/3bccb3e739ba4fd6b473ea02f09e42b7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Of6Zuo6YaJ5rKJ5rWu,size_20,color_FFFFFF,t_70,g_se,x_16)
总结
传递hash是在没办法获取密码时可以进行横传的方法,而且可以用在windows Server 2012以及之上版本的(笔者只实验了到了 2012) ,LM 的值对错对于是否能够传递hash无关。
参考
https://www.cnblogs.com/Xy–1/p/13216686.html https://blog.csdn.net/fageweiketang/article/details/86580213 https://hackergu.com/metasploit-%E6%9D%83%E9%99%90%E4%B8%8Ehashdump%E4%B9%8B%E9%97%B4%E7%9A%84%E8%AE%A4%E8%AF%86/ http://www.xiaoheidiannao.com/70971.html https://blog.csdn.net/weixin_45116657/article/details/103147716
|