1. 簡介
通過Office文檔進(jìn)行宏攻擊是一種非常常見的手段,宏的功能十分強大,將Office文檔中嵌入以VBA(Visual Basic for Applications)編寫的宏代碼腳本,當(dāng)運行Office文檔時,便可以執(zhí)行各種命令。但是宏代碼通常很難隱藏,分析人員可以直接打開宏編輯器查看宏的源碼,分析腳本的功能。雖然微軟提供了工程加密工具對腳本進(jìn)行保護(hù),在打開編輯器時需要輸入密碼進(jìn)行驗證后才能查看腳本,但是這種加密可以通過替換腳本中的加密模塊進(jìn)行驗證繞過。VBA腳本文件重定向能夠?qū)⒛_本默認(rèn)文件vbaProject.bin進(jìn)行替換,在打開文本時加載其他文件,增加分析者的分析復(fù)雜程度。
2. vbaProject.bin
在 Office 2007 之后的 Office 文檔格式采用的是 OOXML 標(biāo)準(zhǔn)格式。那什么是 OOXML 標(biāo)準(zhǔn)?這里的 OOXML 的全稱是 Office Open XML File Formats 或被稱為 OpenXML 格式,這是一個基于 zip+xml 定義的文檔格式。簡單的說就是Office文檔是一些xml文檔壓縮文件,因此我們將一個word文檔進(jìn)行zip解壓,可以獲得一些xml文件,其解壓結(jié)果如下。
當(dāng)文檔中包含宏時,在word目錄下會有一個二進(jìn)制文件,其名字為vbaProject.bin,該文件保存了宏代碼。
vbaProject是宏默認(rèn)工程的名字,那如果我們修改宏工程的名字,Office文檔的解壓文件是否會改變?答案是不會,即使改了工程名,在Office文檔中依然使用vbaProject.bin作為腳本的名字。例:我們創(chuàng)建一個新的Office文檔,編寫宏代碼,將宏代碼工程的名字名為為myproj,之后將Office文檔解壓,發(fā)現(xiàn)解壓后vbaProject.bin的名字沒有變化。
3. 腳本重定向
假設(shè)我們有這樣的需求,將vbaProject.bin文件進(jìn)行偽裝,如一個WORD文檔中有styles.xml的文件,我們將vbaProject.bin替換為styIes.xmI(使用大寫的i來偽裝小寫L),用以欺騙分析者的眼睛,使其很難找到腳本文件,無法進(jìn)行密碼替換,這便是腳本重定向。
要實現(xiàn)腳本重定向,需要將vbaProject.bin的名稱修改為styIes.xmI,之后還需要再修改三個文件,保證該文件可以被正常打開,其中一個文件是根目錄的[Content_Types].xml,另外兩個文件在解壓目錄的word\_rels文件夾中。
[Content_Types].xml中需要添加一個標(biāo)簽,內(nèi)容為:
這一步是為了讓Office文檔去讀取xmI(I是大寫的i)文件來獲取宏代碼,在添加時我們可以觀察原始配置信息,WORD文檔是通過讀取.bin為后綴的文件來獲取宏代碼。
完成標(biāo)簽添加后,打開word\_rels文件夾,修改vbaProject.bin.rles文件的名字,將其修改為styIes.xmI.rels,然后打開document.xml.rels,搜索vbaProject.bin,找到后將其修改為styIes.xmI,與文件進(jìn)行關(guān)聯(lián)。
上訴內(nèi)容修改完成后,將word文件重新壓縮,并修改后綴即可,打開文件發(fā)現(xiàn)文件可以正常打開,宏也可以正常運行,在做重定向時文件名和配置信息可以根據(jù)個人需求進(jìn)行替換。
4. 總結(jié)
VBA腳本文件重定向通過修改Office文件加載宏方式,替換腳本文件來達(dá)到偽裝的目的,反之,我們可以通過查看[Content_Types].xml和document.xml.rels文件查看Office文檔是否對腳本文件進(jìn)行重定向來發(fā)現(xiàn)其中的威脅。
審核編輯:劉清
-
XML
+關(guān)注
關(guān)注
0瀏覽量
33085 -
VBA
+關(guān)注
關(guān)注
0文章
18瀏覽量
11912
原文標(biāo)題:VBA腳本文件重定向
文章出處:【微信號:蛇矛實驗室,微信公眾號:蛇矛實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論