关于程序员:漏洞考古之永恒之蓝ms17010复现总结

54次阅读

共计 1960 个字符,预计需要花费 5 分钟才能阅读完成。

永恒之蓝简介

永恒之蓝(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

施行攻打

Meterpreter 是 Metasploit 的一个扩大模块,能够调用 Metasploit 的一些性能, 对指标零碎进行更深刻的浸透,如获取屏幕、上传 / 下载文件、创立长久后门等

破绽利用

查看靶机过程:ps

监控靶机桌面:run vnc

截取靶机屏幕:screenshot

获取靶机 shell:shell

在 shell 中可失常执行命令操作:增加 / 删除用户,更改明码,权限治理,写文件(留后门)。。。革除日志(清痕迹):clearev

破绽进攻

  • 禁用 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 多平台公布

正文完
 0