OFFICE OLE2LINK(CVE-2017-0199)漏洞利用详解

漏洞概述

FireEye最近公布了一个OFFICE 0day,在无需用户交互的情况下,打开word文档就可以通过hta脚本执行任意代码。经过研究发现,此漏洞的成因主要是word在处理内嵌OLE2LINK对象时,通过网络更新对象时没有正确处理的Content-Type所导致的一个逻辑漏洞。

漏洞利用方法

首先准备一台apache服务器,web根目录下保存一个1.rtf文件,内容如下:

确保apache配置文件conf/mime.types里面有rtf的content type项:

application/rtf rtf

用word生成一个空白文档,然后在其中插入一个对象。

选择由文件创建,输入web服务器上1.rtf的URL,一定要选上“链接到文件”:

这时候会生成一个有test789文字内嵌对象的文档,这是双击该对象只能以rtf文件方式打开对象,并不能执行hta脚本。因为生成对象的时候选中“链接到文件”,所以当打开对象的时候会去服务器上请求http://192.168.1.108/1.rtf来更新对象内容。

此时在apache配置文件conf/mime.types中把

application/rtf rtf

修改成:

application/hta rtf

重启apache后,清除IE缓存:

再双击对象,此时虽然访问的还是1.rtf文件,但是服务器的Content-type会返回application/hta,而word就以hta脚本的方式打开文件:

这样的poc还是需要用户双击对象进行交互的,那么怎么样才能自动运行对象呢?这里就需要把文件保存成rtf格式:

用文本编辑器打开刚保存的rtf文件,找到object标签所在的地方:

{\object\objautlink\rsltpict

修改成:

{\object\objautlink\objupdate\rsltpict

保存文件再重新打开。此时无需用户交互就可直接运行hta脚本弹出计算器:

关键点在于objupdate,这个标签的作用是可以自动更新对象,因此无需用户交互。此时已经可以达到通过hta脚本执行任意代码的目的,至于hta脚本就是八仙过海各显神通了。

修复方案

下载微软紧急更新补丁:

https://support.microsoft.com/en-us/help/4014793/title

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-04-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Java EE7和Maven工程入门(2)

我们已经建立了父pom文件。这种特殊类型的文件用来定义我们项目即将使用的类库,它也配置了所有为了打包项目的每个模块而使用的maven工具。你可以检出第一部分代码...

902
来自专栏张尧博客

Ubuntu软件常用升级命令

5396
来自专栏北京马哥教育

6 个 Linux 运维典型问题,大牛的分析解决思路在这里

28311
来自专栏我是攻城师

如何管理Spark Streaming消费Kafka的偏移量(二)

3744
来自专栏Python中文社区

Nginx+uwsgi部署Django应用

本文目的:在centos7.x服务器上利用nginx和uwsgi部署Django应用

3354
来自专栏Java后端技术

原来实现项目多环境打包部署是如此的简单

   在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境、测试团队的测试环境、生产仿真环境、正式生产环境,不同的公司可...

1243
来自专栏吴柯的运维笔记

Nginx服务器常见问题如何优化?

Nginx常见问题处理 -要求- 对Nginx服务器进行适当优化,以提升服务器的处理性能: 1.不显示Nginx软件版本号 2.如果客户端访问服务器提示“T...

3876
来自专栏北京马哥教育

LVM详解

petmaster出品 必是精品 一、概述 LVM全称为Logical Volume Manager,即逻辑卷管理器。LVM可以弹性的调整文件系统的容...

3119
来自专栏云计算教程系列

如何在CentOS 7上安装和配置scponly

scponly是匿名FTP的安全替代品。它使管理员能够设置具有受限远程文件访问权限且无法访问交互式shell的安全用户帐户。

1700
来自专栏有困难要上,没有困难创造困难也要上!

使用Sinopia搭建私有npm仓库

40911

扫码关注云+社区

领取腾讯云代金券