首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Microsoft Office之DDE攻击

Microsoft Office可以说是使用最广泛的办公软件。然而就是因为这样,也使它成为了黑客的主要攻击目标之一,例如在网络安全对抗赛中红队会用它来窃取域哈希,甚至执行任意代码。

从以往的攻击手法上看,在Microsoft Office中执行任意代码往往是通过宏来实现的。那么,有没有其它方法可以实现任意代码执行呢?答案是肯定的。SensePost就发现了一种利用DDE(动态数据交换)协议,来执行任意代码的方法。办公产品内有许多可通过DDE接收代码并执行的地方,本文我将为大家演示一些这类攻击的常用手法。此外,关于本文的payload可以结合DDE Payloads作为参考。

Word

在Microsoft Word中,最简单的方法是插入一个字段代码,如SensePost文中所述,并在formula中嵌入payload。

在括号内添加以下payload内容,将会在下次打开文件时弹出一个对话框。如果用户选择“Yes”选项,则payload将被执行。

或者,我们也可以像Paul Ritchie在其博客中描述的那样,使用宏将payload插入字段代码。

以上示例中的payload只是打开了计算器,但我们也可以将其修改为其它任意代码(甚至恶意的)。

Mike Czumaky在他的博客中也为我们提供了一种很好的思路,从外部托管的另一个Word文档加载恶意的DDE。 INCLUDE字段代码可被用来与该攻击向量结合外部URL使用。

Excel

在Microsoft Excel DDE有效载荷可以通过formula的使用来利用。以下两个formula将执行代码(本例中为计算器),第二个formula将使警告消息框看上去更合理,以更好的欺骗用户。

当用户打开恶意Excel电子表格时,将出现以下对话框。

第二个formula仍将执行代码,但对话框中的消息内容将被修改,此时我们可以看到不再是要求用户启动CMD.EXE,而是要求启动MSEXCEL.exe。

Outlook

在Outlook中也有许多可执行DDE payload的地方。例如,你已经获取到了域凭据,则可以更好的伪装电子邮件发送给其他用户,以获取更多内部的shell。

Message

发送包含DDE的Outlook消息也可以自动执行代码。这同样适用于以附件形式发送的电子邮件。

但需要注意的是,因为某些电子邮件服务器会将所有电子邮件转换为HTML,为了避免我们的DDE payload失效,我们需要将电子邮件以RTF格式发送。

当用户打开我们发送的邮件后,DDE payload将会被执行。

Contact

创建新的联系人或修改现有的联系人,并将DDE payload放入Notes区域可导致执行代码。

联系人需要发送给目标用户。

当用户打开联系人时,将执行嵌入的DDE payload。

Calendar Invite

同样,该方法也适用与calendar invitation功能。例如,发送一个添加了DDE paylaod的会议邀请,一旦目标用户与其进行了交互(打开或取消),则DDE paylaod就将被执行。

参考

https://medium.com/red-team/dde-payloads-16629f4a2fcd

http://staaldraad.github.io/2017/10/23/msword-field-codes/

http://willgenovese.com/office-ddeauto-attacks/

https://www.secarma.co.uk/labs/is-dynamic-data-exchange-dde-injection-a-thing/

文章转自FreeBuf.COM

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180123B07VYX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券