smb重放攻击 [smb中间人]
0x01 在演示smb重放攻击之前,我们还是需要先搞清楚ntlm的基本认证过程,因为smb登录基于这个,正常情况下,ntlm的简要认证详细流程如下:
|
|
0x02 下面,我们就来简单再现一下smb的整个重放攻击过程:
和上面的拓扑基本一致,只不过在此时,在client端和server端中间多了个攻击者,但双方在整个通信过程中都并不知道攻击者的存在,此时,我们本来正常的认证过程就变成了下面的样子:
0x03 接着就来简单模拟下如何利用这种一攻击手法:
我们最终要达成的目的,如下:
在攻击者的机器上准备好下面的东西,生成并监听我们的马,下载安装impacket:
|
|
在第三方机器上执行如下命令,向攻击者传送smb流量,注意,我这里的账号密码其实就是192.168.3.125正确的系统账号密码:
此时,当我们再回到攻击机上时就可以看到,当别人net use到攻击机上时,攻击者很轻易就捕捉到了smb 的登录凭证hash,然后,它又接着拿着这个hash到192.168.3.125[也就是我们的目标机器]去尝试登录,其实这就是所谓的重放,一旦登录成功,就会自动执行我们的马[类似我们用wmic远程执行代码]
可以看到,当我们重放登录成功,文件就会被正常执行,meterpreter亦被正常弹回
我们现在可以再试下,如果此时net use的密码不对,又会出现什么样的状况,很显然,下面的结果已经说的很清楚了,尝试在192.168.3.125上重放时失败了,原因也已经很清楚了,密码不对,马自然也就执行不了,因为根本没法wmic
过程中需要注意的一些点:
你可能一直在疑惑的是,受害者怎么会自己傻到net use
到攻击者的机器上呢,没错,正常情况下肯定不会,如果想让同内网下别的机器上的流量流过自己,无非就是通过欺骗,因为smbrelayx本身并没有带类似的功能,所以,它并不能自动抓取内网中的所有smb流量,如果想让所有的流量都自动流过攻击者的机器,可能还需要配合Responder来一起实现,这里只是为了给大家看下攻击后的效果,所以,我的net use 就直接指向了攻击机,这样一来smb流量自然就能流过它[攻击机]了,当我们直接net use到攻击机时,其实我们的smb hash也会一并发送给它,然后脚本会拿着这个hash到目标机器上去认证,认证成功后即可执行我们的马,此时meterpreter正常弹回,如果认证失败,则不进行任何操作,注意,因为我这里只是测试,实际中你是几乎不可能指望别人直接net use到攻击机上的,还是那句话,这就需要你配合欺骗来一起利用,让所有的smb流量都经过你,然后抓取里面的登录凭证挨个到目标机器上去重放
小结:
单从攻击的原理上来讲,其实非常简单,也并非什么新技术,类似的重放不仅仅适用于内网,web也同样适用,言辞比较粗糙,只是想把原理尽量跟大家说明白,既然已经有人帮我们实现了这样的脚本,我们就省的自己重复造轮子了,后期还会单独说明如何配合Responder全自动定向攻击特定内网机器,细心的朋友可能会发现,smb中间人,似乎跟,hash传递,票据窃取……都是非常类似的攻击手法,至于漏洞危害个人觉得还是比较大的,尤其是在windows内网中[比如域],因为它不是靠漏洞来攻击的,基于这个思路演变出来的攻击手法其实还有非常多,任何能产生smb登录的条件你甚至都可以利用,篇幅原因就先说到这里吧,个人理解可能比较有限,欢迎大家一起来深入讨论,始终坚信,抛砖才能引玉