沙虫漏洞(CVE-2014-4114)利用测试方法

本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

漏洞时间

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文件中,但我现在的演示是恶意代码 放在了远程共享上。

漏洞演示

  1. 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.执行下面命令。

 

产生一个a.ppsx 的文件。和一个slide1.gif的木马文件,slides.inf 的文件  slide1.gif中的攻击载荷为 meterpreter/reverce_tcp木马连接本地IP 192.9.205.174:7777 端口

生成的 aa.ppsx中可以写任何东西,普通PPT文件。

本地监听 7777端口。

修改ppsx内容。

修改名称,以邮件或者各种方式发给需要攻击者。

攻击者打开,反弹回shell