漏洞考古之永恒之蓝(ms17-010)复现总结

字节逸梦
• 阅读 2262

永恒之蓝简介

永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。

甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。

不过在该病毒出来不久就被微软通过打补丁修复。

SMB协议

SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;

SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。

SMB原理

首先客户端发送一个SMB negport 请求数据报,并列出它所支持的所有SMB的协议版本。

服务器收到请求消息后响应请求,并列出希望使用的SMB协议版本。如果没有可以使用的协议版本则返回0XFFFFH,结束通信。

协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SessetupX请求数据包实现的。

客户端发送一对用户名和密码或一个简单密码到服务器,然后通过服务器发送一个SessetupX应答数据包来允许或拒绝本次连接。

当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问的网络资源的名称,之后会发送一个TconX应答数据报以表示此次连接是否接收或拒绝。

连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。

漏洞原理

漏洞出现在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时,会在非分页池导致缓冲区溢出
具体原理参考文末: NSA Eternalblue SMB 漏洞分析 - 360 核心安全技术博客

漏洞危害

永恒之蓝是在 Windows 的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。

通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。

漏洞复现

实验环境

目标主机 ->  Win7:192.168.11.136
攻击机->  Kali:192.168.11.130

完整过程

扫描目标主机是否存在该漏洞

nmap --script smb-vuln* 目标主机IP

漏洞考古之永恒之蓝(ms17-010)复现总结

实施攻击

漏洞考古之永恒之蓝(ms17-010)复现总结
漏洞考古之永恒之蓝(ms17-010)复现总结
漏洞考古之永恒之蓝(ms17-010)复现总结
漏洞考古之永恒之蓝(ms17-010)复现总结
漏洞考古之永恒之蓝(ms17-010)复现总结

Meterpreter是Metasploit 的一个扩展模块,可以调用 Metasploit 的一些功能,对目标系统进行更深入的渗透,如获取屏幕、上传/下载文件、创建持久后门等

漏洞利用

查看靶机进程:ps

监控靶机桌面:run vnc

截取靶机屏幕:screenshot

获取靶机shell:shell

在shell中可正常执行命令操作:添加/删除用户,更改密码,权限管理,写文件(留后门)。。。

清除日志(清痕迹):clearev

漏洞考古之永恒之蓝(ms17-010)复现总结
漏洞考古之永恒之蓝(ms17-010)复现总结

漏洞考古之永恒之蓝(ms17-010)复现总结
漏洞考古之永恒之蓝(ms17-010)复现总结
漏洞考古之永恒之蓝(ms17-010)复现总结

漏洞防御

  • 禁用SMB1协议
  • 打开Windows Update,或手动安装补丁
  • 使用防火墙阻止445端口的连接,或者使用进/出站规则阻止445端口的连接
  • 不要随意打开陌生的文件
  • 安装杀毒软件,及时更新病毒库
     

 

参考资料

[13]NSA Eternalblue SMB 漏洞分析 - 360 核心安全技术博客:https://blogs.360.cn/post/nsa...

[14]MS17-010: EternalBlue’s Buffer Overflow in SRV Driver (trendmicro.com):https://www.trendmicro.com/en...

本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Linux应急响应(三):挖矿病毒
0x00前言随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式。新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染的成功率,通过利用永恒之蓝(EternalBlue)、web攻击多种漏洞(如Tomcat弱口令攻击、WeblogicWLS组件漏洞、Jboss
Stella981 Stella981
3年前
Python之joblib:joblib库的简介、安装、使用方法之详细攻略
Python之joblib:joblib库的简介、安装、使用方法之详细攻略目录joblib库的简介joblib库的安装joblib库的使用方法1、输出值的透明快速磁盘缓存2、令人尴尬的并行助手:使它容易编写可读并行代码和调试它迅3、快速压缩持久化joblib库的简介    
Stella981 Stella981
3年前
Linux提权的几种常用方式
在渗透测试过程中,提升权限是非常关键的一步,攻击者往往可以通过利用内核漏洞/权限配置不当/root权限运行的服务等方式寻找突破点,来达到提升权限的目的。1、内核漏洞提权提起内核漏洞提权就不得不提到脏牛漏洞(DirtyCow),是存在时间最长且影响范围最广的漏洞之一。低权限用户可以利用该漏洞实现本地提权,同时可以通过该漏洞实现D
Stella981 Stella981
3年前
Solon rpc 之 SocketD 协议
Solonrpc之SocketD协议系列Solonrpc之SocketD协议概述(https://my.oschina.net/noear/blog/4888445)Solonrpc之SocketD协议消息上报模式(https://my.oschina.net/noear/bl
Wesley13 Wesley13
3年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Wesley13 Wesley13
3年前
mysql数据库的查询
1、“查”——之单表查询INSERTINTOstudent2(name,grade,gender)VALUES('songjiang',40,'男'),('wuyong',100,'男'),('qinming',90,'男'),('husanniang',88,'女'),('sunerniang',66,'女'),('wus
大数据平台红蓝对抗 - 磨利刃,淬精兵!
背景目前大促备战常见备战工作:专项压测(全链路压测、内部压测)、灾备演练、降级演练、限流、巡检(监控、应用健康度)、混沌演练(红蓝对抗),如下图所示。随着平台业务越来越复杂,红蓝对抗的作用愈来愈明显,下面将详细介绍大数据平台在大促备战工作中是如何开展红蓝对
江湖有缘 江湖有缘
10个月前
Linux系统之touch命令的基本使用
Linux系统之touch命令的基本使用
勒索软件介绍
本文分享自天翼云开发者社区《》,作者:沈军勒索攻击介绍勒索软件是当前主要网络攻击威胁,一般通过木马病毒的形式传播,将自身掩盖为看似无害的文件,利用钓鱼邮件或软件漏洞等方式进行攻击,攻击后将受害者主机硬盘上的文件进行加密,以此来达到勒索的目的。所有的勒索软件