欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Windows内网协议学习NTLM篇之Net-NTLM利用

来源:本站整理 作者:佚名 时间:2019-12-02 TAG: 我要投稿

0x00 前言
在上一篇文章Windows内网协议学习NTLM篇之发起NTLM请求里面,讲了12种发起NTLM请求的方式。这篇文章接着上文,主要讲解拿到NTLM 请求之后的进一步利用。有Net-NTLM Hash的破解(v1 和 v2)以及Relay到支持NTLM SSP的协议,事实上,只要是支持NTLM SSP的协议,都可以Relay过去,本文主要讲的是几种比较常遇到,且能达到命令执行效果的,SMB,EWS,LDAP。
 
0x01 Net-NTLM Hash的破解
1. Net-NTLM v1 的破解
先上结论。只要获取到Net-NTLM v1,都能破解为NTLM hash。与密码强度无关。
具体操作如下。
修改Responder.conf里面的Challenge为1122334455667788(使用SpiderLabs版本的 话默认是1122334455667788,但该版本已经停止更新了,建议使用lgandx版本,这一版本默认为Random,需要修改)

将type2里面的NTLMSSPNEGOTIATEEXTENDED_SESSIONSECURITY位置0。
如果知道发来的请求一定是SMB 协议的话,Responder里面加上–lm参数即可,

其他协议就得去找改协议发送type2 处的代码,修改NegoFlags位。
比如Http协议的话,需要修改packets.py里面的NTLM_Challenge类。
原来是NegoFlags的值是\x05\x02\x89\xa2,改成\x05\x02\x81\xa2


然后获取到Net-NTLM v1。再使用ntlmv1-multi里面的ntlmv1.py转换.

获取到Net-NTLM v1是win10::WIN10-1:F1586DA184365E9431C22EF206F5A2C918659E1B1FD7F64D:F1586DA184365E9431C22EF206F5A2C918659E1B1FD7F64D:1122334455667788

转化完的格式就是NTHASH:F1586DA184365E9431C22EF206F5A2C918659E1B1FD7F64D
再将转化完的格式用crack.sh破解即可。


 
下面简要探究下原理,如果没有兴趣的可以直接跳过。看下一小节。
之前在NTLM基础介绍里面有简单介绍了下Net-NTLM v1的加密方式
将 16字节的NTLM hash空填充为21个字节,然后分成三组,每组7字节,作为3DES加密算法的三组密钥,加密Server发来的Challenge。 将这三个密文值连接起来得到response。
但是在实践中发现,加密方式的表述是有点问题的,或者说是不完整的。上面的只是Net-NTLM v1的一种加密方式,Net-NTLM v1还有另外一种加密方式。我们下面来探讨下这两种加密方式以及利用
(1)加密方式1
就是前面提到的那种。
将 16字节的NTLM hash空填充为21个字节,然后分成三组,每组7字节
将三组(每组7字节)经过运算后作为DES加密算法的密钥
运算的细节是每组七个字节再转化为8小组,每个小组7个比特位。然后7个比特位进行奇偶校验后算出第8个比特位,刚好是1个字节,8个小组,每小组一个字节,凑成8个字节的密钥。
加密Server Challenge
将这三个密文值连接起来得到response。
在Responder如果想获取到这种加密方式的话,要加上参数–lm(仅限于smb 协议)

那这种加密方式存在什么问题呢。
总共三组,每组8个字节作为key,加密Server Challenge获取response。
每组可以分开计算,已知加密内容和加密后的密文算key。使用des算法,key是八个字节。
我们控制Server Challenge为1122334455667788,然后建立从key到response的彩虹表。就可以在知道response的情况下获取key。所幸crack.sh这个网站已经帮我们弄好了,在Challenge为1122334455667788的情况下。一分钟之内就能获取ntlm hash,而且是免费的。这也是我们为啥要把Challenge设置为1122334455667788,而不是随机。
具体操作是

使用ntlmv1-multi里面的ntlmv1.py转换.然后复制NTHASH:E0F8C5B5E45247B4175698B99DBB5557CCD9241EA5A55CFB到crack.sh破解,填上邮箱,等到一分钟左右就能收到ntlm hash了。
(2)加密方式2
跟第一种加密方式基本一样。最本质的区别就在于,第一种加密方式的加密内容是Server Challenge。而这种加密方式是拼接8字节Server Challenge和8字节Client Challenge后,求其MD5,然后取MD5值的前8字节做为加密内容。
我们可以控制Server Challenge为固定的值,但是没法控制Client Challenge的值。也就是说我们没法控制加密的内容为固定的值。

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载