当前位置: 代码迷 >> 综合 >> 使用msf(Metasploit Framework)检测MS17-010(永恒之蓝)
  详细解决方案

使用msf(Metasploit Framework)检测MS17-010(永恒之蓝)

热度:19   发布时间:2023-12-21 03:14:20.0

今天是入职的第一天,还是有点忐忑,新地点新事物,希望自己的选择没有错,努力!

废话不多说,入职后被安排的第一件事情,就是去某国企检测系统漏洞,分配给我的任务是对开启445端口的IP段进行扫描看是否存来MS17-010(永恒之蓝)漏洞。

首先利用VMware在Ubuntu环境下搭建msf(metasploit framework渗透框架)环境,由于电脑有VMware,具体的安装就不说了,Ubuntu安装教程本人参考的是这个教程:Ubuntu安装教程,msf教程是前辈给的一个教程:Metasploit Framework教程(Ubuntu和MSF的学习过程会在后续进行具体总结)。当一切准备好的,就开始对负责的IP段进行扫描。

背景:

EternalBlue由影子经纪人公布到互联网上后,被多款恶意软件利用,如WannaCryp0t、无文件的勒索软件UIWIX和SMB蠕虫EternalRock。EternalBlue在微软的MS17-010中被修复,是在Windows的SMB服务器处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任何代码。

漏洞分析:

漏洞出现在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的大小。然后会进行如下操作:

1.srv!SrvOs2FeaListSizeToNt会计算FEA list的大小并更新待转换的FEA list的大小。

2.因为错误的使用WORD强制类型转换,导致计算出来的待转换的FEA list的大小比真正的FEA list大。

3.因为原先的总大小计算错误,导致当FEA list被转化为NTFEA list时,会在非分页池导致缓冲区溢出。

  相关解决方案