1、永恒之蓝介绍
(1)概述
永恒之蓝
永恒之蓝(EternalBlue)是一个由美国国家安全局(NSA)开发的漏洞利用程序,于2017年4月14日被黑客组织影子经纪人(Shadow Brokers)泄漏。这一工具利用了Windows操作系统中的SMB(Server Message Block)协议漏洞,通过445/TCP端口进行传播,从而可以远程执行代码并获取系统最高权限。
尽管微软在2017年3月14日发布了针对这一漏洞的补丁(MS17-010),许多用户仍未及时安装更新,因此在随后的一系列网络攻击中受到了严重影响。
WannaCry勒索病毒
2017年5月12日,不法分子利用永恒之蓝漏洞改造了WannaCry勒索病毒,导致全球大规模感染。受影响的包括英国的国家医疗服务系统(NHS)、俄罗斯的多个机构、欧洲各国的公司和组织,以及中国国内的多所高校和大型企业。WannaCry通过加密受害者的文件,要求支付赎金才能解密恢复文件。
NotPetya勒索软件
2017年6月27日,另一种勒索软件NotPetya(伪装成Petya)利用永恒之蓝漏洞在欧洲地区广泛传播。与WannaCry不同,NotPetya的主要目的是破坏系统而不是索要赎金,因为即便支付赎金,受害者也无法获得解密密钥。真正的Petya作者后来公布了解密密钥并声明与NotPetya攻击无关,但该密钥只能解密Petya加密的文件,无法解密NotPetya加密的文件。
(2)SMB协议
SMB(Server Message Block)协议是微软(Microsoft)和英特尔(Intel)于1987年制定的一种客户机/服务器请求/响应协议,主要用于Microsoft网络的通讯。通过SMB协议,可以在计算机间共享文件、打印机和命名管道等资源。电脑上的网上邻居功能也是通过SMB实现的。SMB协议工作在会话层(Session Layer)、表示层(Presentation Layer)以及小部分应用层(Application Layer),并且可以在TCP/IP协议之上运行,使用的端口为TCP 139和TCP 445。SMB利用NetBIOS的应用程序接口(API)来实现这些功能。
(3)漏洞原理
漏洞出现在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的大小。
然后会进行如下操作:
- srv!SrvOs2FeaListSizeToNt会计算FEA list的大小并更新待转换的FEA list的大小
- 因为错误的使用WORD强制类型转换,导致计算出来的待转换的FEA list的大小比真正的FEA list大
- 因为原先的总大小计算错误,导致当FEA list被转化为NTFEA list时,会在非分页池导致缓冲区溢出
(4)漏洞危害
永恒之蓝是在 Windows 的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。
通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
2、使用工具介绍——MSF
Metasploit Framework 是一个功能强大的开源安全漏洞检测工具,用于编写、测试和使用 exploit 代码,广泛应用于渗透测试、shellcode 编写和漏洞研究。该框架主要采用面向对象的 Ruby 编程语言编写,并包含由 C 语言、汇编语言和 Python 编