注意本文所有测试操作仅可在自己搭建的虚拟机环境中进行未经授权对他人的设备进行实验测试属于违法行为请切勿触碰法律红线。本文复现漏洞为永恒之蓝(EternalBlue),对应官方漏洞编号-CVE: CVE-2017-0144-CNVD: CNVD-2017-05028-CNNVD: CNNVD-201705-082今天在网课上系统性的了解了永恒之蓝这一经典漏洞并进行了简单实操颇有感悟下面为大家分享一些心得体会如有不足或错误欢迎各位大佬前来指正也欢迎各位新手朋友一起谈论学习。一、我们该如何理解这个漏洞永恒之蓝是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限永恒之蓝是在Windows的SMB服务处理SMB v1请求时发生的漏洞其导致攻击者在目标系统上可以执行任何代码。要点:- 核心载体SMBv1协议Windows默认开启的系统服务对应445端口- 最大危害攻击者不需要你的账号密码远程就能拿到你电脑的System最高权限比管理员权限还高完全控制你的设备。- 影响范围Win7、Windows Server 2008等未打补丁的老版本Windows系统。(由于系统更新像近几年的win11,win10系统默认不存在永恒之蓝漏洞)二、简单原理SMBv1是Windows默认开机自启的系统服务属于系统底层核心服务。但是这个老服务有个致命的bug它收到网络发来的数据包时不会严格检查内容是否合法、长度是否合规。因此攻击者可以给开放445端口的目标设备发一个构造好的恶意数据包就能触发这个bug让目标设备自动执行恶意代码。代码执行后攻击者直接拿到Windows最高的System权限能随意的在目标设备上创建隐藏影子用户修改数据文件盗取珍贵资料或者植入各种病毒等。三、简单的漏洞复现实验 (以下实操全程在个人搭建的虚拟机环境中进行未经他人授权严禁对他人电脑发起任何形式的攻击)在攻击之前可以通过扫描查看目标主机是否存在ms17-010漏洞在这里我以自己搭建的虚拟机win7系统作为演示:nmap -sV -p445 --scriptsmb-vuln-ms17-010 192.168.179.128看到确实存在该漏洞后下一步我们发起攻击。1. 实验所需要的环境- 攻击机Kali Linux其中自带的msfconsole工具可以实现攻击无需再安装其他工具- 靶机Win7未打MS17-010补丁仍存在漏洞注意要和攻击机在同一局域网2. 具体操作1. 打开Kali终端输入 msfconsole 打开所需工具2.search ms17-010 #查找模块输入该指令后你可以看到非常多的模块我们注意到紫色的ms17-010位于0(序号)所以接下来我们输入: use 0 就可以使用该漏洞模块进行攻击。3.set rhosts 192.168.179.128(在该模块下设置被攻击的主机这里以我搭建的虚拟机为例)4. 输入 run 执行攻击出现以上画面且成功建立meterpreter会话说明攻击成功已获取目标主机的控制权成功后我们可以通过 run vnc (对目标主机实行实时监控) ; screenshot (截图目标当前状态); shell (打开目标主机的命令提示符);等各种指令来获取更多我们想要得到的信息在这里就不过多赘述。四、防护方法1. 最直接根本打补丁开启Windows自动更新系统会自动安装修复这个漏洞的安全补丁最大可能的杜绝隐患。2. 关无用服务禁用SMBv1协议(不推荐)这个老协议现在基本用不到管理员身份打开CMD输入以下命令重启电脑即可生效从根源关闭攻击入口cmddism /online /disable-feature /featurename:SMB1Protocol3. 端口防火墙防护开启Windows自带防火墙不用文件共享的话直接封禁445端口的入站连接不让外部设备访问你的对应端口。4. 权限管控日常用电脑不要一直用管理员账号登录用标准用户即可就算遇到风险也能大幅降低危害。五、总结1. 这个漏洞是Windows安全的经典入门案例将系统服务、端口、权限还有后面会更新的用户组等一些知识点串了起来耐心的搞懂它对于快速建立Windows安全的基础认知将会有很大的帮助。2. 永远守住合规底线网络安全测试的前提是合法授权所有操作只能在自己的虚拟机里做绝对不要对未经授权的设备动手。(本文章仅用于安全研究与学习严禁用于非法用途。漏洞已公开多年相关编号可在 CVE/CNVD 官网查询)