漏洞分析

恢复DDE:使用电子记事本和EXCEL代码执行

TL;博士:你可以使用Excel电子表格来实现DDE执行嵌入到电子记事本中。 这绕过原Excel缓解规则集(微软发布了一个补丁,适当减轻)以及受保护的视图沙箱?

动态数据交换(DDE)近来的一个热门话题。 对于那些不熟悉DDE,它被设计成两个应用程序之间传输数据。 2014年,Contextis扑灭一个不错的博客利用DDE在Microsoft Excel利用代码执行的“= DDE()”的公式。

然后,2017年10月9日,SensePost发布了真正伟大的博客文章在Microsoft Word滥用DDEAUTO字段代码代码执行。 后不久,各种恶意软件的家庭采用这项技术,它很快就在野外见过。

在看到飙升恶意使用,将Dormann(@wdormannus - cert)发表一些注册表的变化,广泛减轻大多数DDE的威胁。 这些变化禁用DDE和阻止链接自动更新自动Word和Excel。 将添加一个OneNote块后与他私下分享下面的细节。 不幸的是唯一的修复是完全杀死嵌入文件,并不理想。 在这里你可以找到这些注册表的变化:https://gist.github.com/wdormann/732bb88d9b5dd5a66c9f1e1498f31a1b

本指南是很有用处理演员利用DDE技术越来越多。 然后,2017年11月8日,微软发布一个官方发布概述了减轻DDE的威胁对于那些不使用协议在他们的环境中,咨询下发布ADV170021附加的文档在这里。 这些变化在很大程度上只是为了词和它涉及防止执行完全,而不是停止自动链接更新。 除了这篇文章,微软还说受保护的视图将防止自动DDE执行,用户应该小心打开不可信的文档。

看到这些新的DDE缓解建议之后,我变得很好奇这些都是如何处理内不同的Office应用程序中执行的时候,出版商或电子记事本等。 当时,将Dormann要点缓解选项是唯一的来源在其他办公室应用程序(如Excel)作为词的微软只发布了官方指导。

那么,为什么电子记事本? 它允许用户将Excel电子表格嵌入报告文档,然后保存它。 这提供了终端用户能够直接引用或使用Excel功能在电子记事本。 正如你可能知道的,你可以在Excel中滥用DDE代码执行! 理想情况下,将Excel注册表变化停止DDE攻击将适用于任何Excel表嵌入电子记事本。 不幸的是,这不是如此。

实现将Excel注册表变化时(特别是“DDEAllowed”字设置为0),您将看到这样当打开一个电子表格,其中包含一个DDE公式:

所以,Excel DDE块按预期工作。 现在,让我们看看电子记事本。 为了利用Excel电子记事本的功能,你可以去“文件”下的“表格”选项卡并导入现有的Excel电子表格或创建一个新的。

所以,电子记事本让我们导入现有的电子表格。 如果我们进口DDE-laced电子表格吗? 首先,我们需要创建它。 瑞安·汉森(@ryhanson)发表了一条微博显示,你可以操纵警告框DDE执行期间和改变二进制的名字。 这可以帮助的,因为你可以改变它“MSEXCEL。 exe”而不是显示“cmd。 exe”或“powershell.exe”。

来源:https://twitter.com/ryHanson/status/918598525792935936

 

添加这个公式之后Excel电子表格并保存它,我们可以对其进行测试,以确保它显示正常。 要做到这一点,我已经删除了Excel DDE缓解注册表变化。

太好了,所以它的工作原理。 接下来,让我们测试它将Excel注册表变化的应用:

太棒了,所以这些变化确实阻止Excel DDE POC,我们刚刚创建。 现在,我们有了自己的DDE表格准备和测试,我们可以将其导入OneNote通过“插入- >电子表格- >现有Excel电子表格”

OneNote将要求您浏览到您想要导入的文件,将之前创建的DDE的电子表格。 接下来,它会问你如果你想把文件或插入电子表格。 我们将做“插入表格”

OneNote将导入电子表格并在这过程中,它将尝试执行DDE命令。 为了防止这种情况的出现,只需单击“否”

最后,保存电子记事本文件。 在这一点上,电子记事本文件有一个DDE的Excel电子表格直接嵌入到它。 现在,让我们看看会发生什么时,Excel电子表格与Excel从电子记事本文件中访问DDE缓解注册表的变化:

点击“是”命令执行结果:

因此,尽管阻塞DDE在Excel中通过“DDEAllowed”,通过OneNote访问时的功能仍然存在。 与将Dormann聊天后,唯一的减灾工作是“DisableEmbeddedFiles”设置为1。 这显然会杀死所有文件嵌入功能作为一个副作用,这并不是对可用性。

正如上面提到的,一个微软的声明指出受保护的视图将防止DDE向量当来自不受信任的源(如互联网)。 这是大多数办公室应用程序的情况下任何内容来自一个不可信的来源是在一个沙箱。 然而,电子记事本不参加受保护的视图时,不会引发来自互联网。 如果用户已安装电子记事本,攻击者可以嵌入一个核武化的Excel电子表格到一个电子记事本文件并将其发送到受害者通过连接或电子邮件附件。 当用户接收电子记事本文件并打开嵌入式电子表格,它不会开放受保护的视图他们只是看到DDE提示(可以篡改如上所述):

应该指出的是,受保护的视图2017年4月20日,据报道方面MSRC被认为不是一个安全问题。

所以,你会做什么呢? 当时,只有缓解是完全杀死嵌入电子记事本。 据报道,这是微软在2017年10月10日和1月9日,2018年,他们推出一个更新版本回到2007年。 Excel更新添加到现有的咨询ADV170021,现在咨询细节如何实现移植对Excel和Word(因为它以前只有词可用)。 额外的文档可以找到在这里。 这个更新创建了一个值可以在注册表中添加在Microsoft Excel的安全选项。 通过设置“DisableDDEServerLaunch”字1,DDE有效地将Excel的阉割。 这是很重要的,因为OneNote本身并非完全有趣。 嵌入式Excel的功能,使这种攻击的工作。 通过添加缓解Excel的选项,用户可以保护自己免受攻击。

此外,您可以使用攻击表面减少(ASR)规则在Windows 1709不仅防止DDE的攻击,但其他攻击办公室程序生成子进程。 你可以阅读更多关于ASR在这里

马特·N。

参考:https://enigma0x3.net/2018/01/29/reviving-dde-using-onenote-and-excel-for-code-execution/

本文由安全周翻译,转载请注明出处

(0)

热评文章

发表评论