1. 程式人生 > 其它 >無需開啟巨集即可滲透:在Office文件中利用DDE執行命令

無需開啟巨集即可滲透:在Office文件中利用DDE執行命令

概述

最近,國外的安全研究員發現了一種在文件中使用DynamicData Exchange (DDE)協議發起滲透的方法。使用該方法可以繞過MSWord和MSExcel巨集限制,不需要使用MSWord和MSExcel的漏洞就可以執行命令。騰訊反病毒實驗室哈勃系統第一時間復現了該滲透方法,本文將詳細介紹該滲透方法的構造過程。

背景

Windows提供了應用程式間資料傳輸的若干種方法。其中一種就是使用動態資料交換(DDE)協議。DDE協議是一套訊息和指示的集合。通過傳送訊息以及共享記憶體實現應用程式的資料共享和交換。應用程式可以使用DDE協議實現一次性資料傳輸以及持續的資料交換(當新資料可用時,應用程式傳送更新通知給另一個應用程式)[1]。

在MSWord和MSExcel裡,可以使用DDE來執行命令。下面我們以MSWord為例進行說明。

方法

新建一個Word文件,通過Ctrl+F9新增一個域,然後修改域程式碼為:

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

“DDEAUTO”關鍵字指示Word這是一個DDE域,並且在開啟文件時自動執行域程式碼。在域程式碼中,緊跟“DDEAUTO”關鍵字後面的是要執行的可執行程式的路徑,後面跟隨的是可執行程式的引數。

此外,也可以修改關鍵字“DDEAUTO”為“DDE”,即修改域程式碼為:

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

,並儲存文件。

而此時,如果希望嵌入的DDE能夠在開啟文件時自動執行,需要在word/settings.xml嵌入以下程式碼:

<w:updateFieldsw:val="true"/>

此時,當我們開啟包含DDE域程式碼的文件時,會有顯示兩次提示資訊:

當均點選“是”,會執行DDE域程式碼,彈出記事本:

上述兩個對話方塊風險提示屬性較弱,不像是一個安全風險的提示,使用者很容易忽視該類提示進而允許執行惡意的域程式碼。當然,也可以在正文中加入一些誘導性和迷惑性很強的文字,誘導使用者點選以上兩個對話方塊,從而使使用者暴露在風險之中。

擴充套件

除了彈出記事本外,配合PowerShell或者各類指令碼程式的強大能力,可以下載或者釋放惡意payload,此類滲透方法的危害將顯現無疑。

(執行PowerShell)

(執行bat指令碼)