自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DDE混淆的3種新方法

安全 數(shù)據(jù)安全
最近一段時間,微軟的Office產(chǎn)品已經(jīng)成為滋養(yǎng)新型攻擊方法的沃土,從相對比較簡單的數(shù)據(jù)注入方法(如DDE注入以及CSV注入)到更加復(fù)雜的基于嵌入公式對象的攻擊技術(shù),不一而足。

一、前言

最近一段時間,微軟的Office產(chǎn)品已經(jīng)成為滋養(yǎng)新型攻擊方法的沃土,從相對比較簡單的數(shù)據(jù)注入方法(如DDE注入以及CSV注入)到更加復(fù)雜的基于嵌入公式對象的攻擊技術(shù),不一而足。反病毒行業(yè)很快吸收了這些技術(shù),有許多廠商可以正確檢測并識別大多數(shù)攻擊方法。然而萬物都處于演化之中,因此攻擊場景中出現(xiàn)攻擊手段的混淆及變種也只是時間問題。思科Talos以及ReversingLabs曾發(fā)表過一篇聯(lián)合文章,介紹與CSV DDE注入有關(guān)的兩種新技術(shù)(一種混淆技術(shù)以及一個變種)。本文的目的是為大家解釋這些技術(shù)背后的一些“原理”,也會介紹3種新的混淆技術(shù)。

[[245298]]

二、CSV/DDE代碼注入

盡管網(wǎng)上關(guān)于DDE代碼注入技術(shù)已經(jīng)有許多參考資料,但這里我們還可以簡單過一下這種技術(shù)的原理。CSV(使用逗號作為分隔符)是一種簡單的數(shù)據(jù)格式,可以用來存儲結(jié)構(gòu)化數(shù)據(jù),也可以作為Excel的數(shù)據(jù)源(Excel會解析該數(shù)據(jù),然后將被分隔符切分的數(shù)據(jù)填充到單元格中)。實際上,如果文件格式與文件擴(kuò)展名不匹配,但該文件擴(kuò)展名可以使用Excel來打開,那么Excel似乎會采用CSV模式來導(dǎo)入數(shù)據(jù)。

根據(jù)微軟的描述,DDE(Dynamic Data Exchange,動態(tài)數(shù)據(jù)交換)是應(yīng)用之間傳輸數(shù)據(jù)的一種方法。Excel可以使用這種機(jī)制,根據(jù)外部應(yīng)用的處理結(jié)果來更新單元格的內(nèi)容。因此,如果我們制作包含DDE公式的CSV文件,那么在打開該文件時,Excel就會嘗試執(zhí)行外部應(yīng)用,這個過程聽起來非常簡單。

三、DDE解析

雖然聽起來簡單,但工作過程卻稍微復(fù)雜一些。當(dāng)打開文件時,Excel會逐個檢查文件的每一行。將該行的的內(nèi)容分隔并拷貝到對應(yīng)的單元格之前,Excel會檢查當(dāng)前行是否以某些命令字符開頭。這些字符可能是內(nèi)部函數(shù)所需的字符,如=、+、-以及@。根據(jù)命令的前綴,可能會出現(xiàn)以下兩種情況:

  • 如果前綴為為=、+或者-,那么后續(xù)數(shù)據(jù)就會被當(dāng)成表達(dá)式來處理;
  • 如果前綴為@,那么Excel會搜索內(nèi)部函數(shù)(比如SUM()),將參數(shù)解析成表達(dá)式。

到目前為止,前面都是大家可以從網(wǎng)上找到的公開資料,但狀態(tài)機(jī)如何處理表達(dá)式可能參考資料就相對較少。說到DDE時,相應(yīng)的表達(dá)式大致可以表示為:

  1. command|’arguments’!cell 

命令本身也是一種表達(dá)式。如果表達(dá)式中僅包含可打印字符(甚至包含一些不可打印字符,如0xAA,具體取決于代碼頁),那么緩沖區(qū)大小就為256字節(jié)。由于命令前綴或者操作符占了1個字符,因此實際上表達(dá)式只有255個字節(jié)可用。表達(dá)式可以是名稱、數(shù)字、字符串或者文件名。

即便緩沖區(qū)中有足夠大的空間,內(nèi)部程序的最大文件名長度為8個字符。這可能是MS-DOS文件名的歷史遺留問題,當(dāng)時系統(tǒng)最大只支持8字節(jié)長文件名(不包括擴(kuò)展名)。

然而,表達(dá)式通常采用遞歸定義,可以采用算術(shù)及邏輯運算符(如&、^、/、+等等)鏈接起來,甚至還可以使用左括號(表示函數(shù)參數(shù)的開始)或者冒號(用作單元格分隔符)。雖然命令不應(yīng)該被當(dāng)成表達(dá)式來處理,但由于null字節(jié)會被全部忽略掉,而空格有時候后會被忽略(比如位于命令之前的空格),因此出現(xiàn)這種情況也不足為奇。

換句話說,表達(dá)式中可以包含數(shù)量不限的null字節(jié)。Excel會忽視參數(shù)以及單元格中的null字節(jié)。重要的是,單元格引用根本不必為有效值。一旦表達(dá)式被成功解析及轉(zhuǎn)換,命令和參數(shù)就會傳遞給WinExec() API執(zhí)行。

四、更多細(xì)節(jié)

思科Talos在文中提到,攻擊樣本會使用簡單的混淆技術(shù),比如在DDE公式之前或者之后附加文本或者二進(jìn)制數(shù)據(jù)。這似乎只是冰山一角,這是因為數(shù)據(jù)解析規(guī)則不僅可以處理前綴(prefix)或后綴(suffix)形式的混淆命令,也能處理中綴(infix)形式的混淆數(shù)據(jù)。

表達(dá)式可以串聯(lián)使用,我們也可以在實際命令之前注入任意數(shù)量的表達(dá)式(每個子表達(dá)式最多可以使用255個字符),命令甚至也可以串聯(lián)起來使用,這也是命令可以使用混淆前綴的基礎(chǔ),如下所示:

  1. =AAAA+BBBB-CCCC&"Hello"/12345&cmd|'/c calc.exe'!A 
  2. =cmd|'/c calc.exe'!A*cmd|'/c calc.exe'!A 
  3. +thespanishinquisition(cmd|'/c calc.exe'!A 
  4. =         cmd|'/c calc.exe'!A 

目前在實際攻擊中看到的載荷會選擇cmd、msexcel或者msiexec作為可執(zhí)行目標(biāo)文件,,但我們可以任意選擇其他外部應(yīng)用,只要文件名少于8字符即可,而這個條件在實際環(huán)境中很容滿足。比如,regsvr32、certutil以及rundll32都滿足文件名長度要求,這為我們打開了后綴混淆攻擊的新世界:

  1. =rundll32|'URL.dll,OpenURL calc.exe'!A 
  2. =rundll321234567890abcdefghijklmnopqrstuvwxyz|'URL.dll,OpenURL calc.exe'!A 

最后,我們可以在各處添加null字節(jié)或者空格,達(dá)到中綴混淆目的??崭癫荒芮度氲矫蠲Q中,一旦嵌入就將拆分命令名,導(dǎo)致命令無法執(zhí)行。但是命令名之前以及或者參數(shù)中的空間還可以為我們所用。當(dāng)然,命令名不區(qū)分大小寫,因此我們可以使用不同的大小寫方案來進(jìn)行混淆。大家可以訪問此處下載前面我們描述的所有混淆樣例(密碼為infected)。

A1000十六進(jìn)制數(shù)據(jù)中的中綴混淆示例

圖1. A1000十六進(jìn)制數(shù)據(jù)中的中綴混淆示例

這些混淆技術(shù)當(dāng)然可以單獨使用,或者可以組合使用。我們已經(jīng)使用Excel 2013以及Excel 2017測試過本文提到的所有混淆技術(shù),在本文撰寫時沒有任何殺毒軟件廠商能夠檢測到這些技術(shù)。為了幫大家防御這類簡單的混淆攻擊,我們同樣發(fā)布了匹配的YARA規(guī)則,大家可以訪問此鏈接下載。

五、總結(jié)

在本文中,我們介紹了混淆DDE載荷的3種新技術(shù):前綴、中綴以及后綴混淆技術(shù)。由于Office產(chǎn)品在過去27年中一直在不斷完善,豐富的功能同樣給正常用戶和惡意用戶帶來廣闊的表演舞臺。在接下來的幾年時間內(nèi),可以預(yù)見的是新的攻擊方法及混淆技術(shù)將不斷演化,我們也希望能看到推陳出新的技術(shù)用來投遞攻擊載荷。

責(zé)任編輯:趙寧寧 來源: 安全客
相關(guān)推薦

2015-08-21 09:14:40

大數(shù)據(jù)

2021-09-27 10:12:42

欺騙防御rMTD網(wǎng)絡(luò)攻擊

2022-04-20 08:00:00

深度學(xué)習(xí)數(shù)據(jù)集Hub

2022-05-26 10:57:51

機(jī)器人人工智能

2010-09-02 13:59:17

background-background-CSS3

2019-07-12 13:50:36

物聯(lián)網(wǎng)大數(shù)據(jù)安全

2022-07-07 10:47:16

IngressKubernetes

2022-11-22 11:18:38

Java虛擬線程

2010-04-01 09:30:57

2024-01-23 17:33:36

2024-10-23 19:47:54

2022-03-10 12:16:14

側(cè)信道內(nèi)存攻擊網(wǎng)絡(luò)攻擊

2010-06-18 09:48:22

2021-04-26 23:31:49

黑客漏洞網(wǎng)絡(luò)攻擊

2021-11-26 10:02:22

擴(kuò)展業(yè)務(wù)領(lǐng)導(dǎo)者CIO

2021-02-18 18:13:34

LinuxARM樹莓派

2023-11-23 15:05:02

玻璃歸檔存儲微軟

2016-12-26 18:39:32

Android應(yīng)用進(jìn)程存活率

2009-07-31 08:56:59

ASP.NET頁面刷新

2023-07-06 15:29:52

數(shù)據(jù)中心能源回收
點贊
收藏

51CTO技術(shù)棧公眾號