那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

VBA腳本文件重定向簡析

蛇矛實驗室 ? 來源:蛇矛實驗室 ? 2023-05-15 10:24 ? 次閱讀

1. 簡介0017898e-f10e-11ed-90ce-dac502259ad0.png

通過Office文檔進行宏攻擊是一種非常常見的手段,宏的功能十分強大,將Office文檔中嵌入以VBA(Visual Basic for Applications)編寫的宏代碼腳本,當運行Office文檔時,便可以執行各種命令。但是宏代碼通常很難隱藏,分析人員可以直接打開宏編輯器查看宏的源碼,分析腳本的功能。雖然微軟提供了工程加密工具對腳本進行保護,在打開編輯器時需要輸入密碼進行驗證后才能查看腳本,但是這種加密可以通過替換腳本中的加密模塊進行驗證繞過。VBA腳本文件重定向能夠將腳本默認文件vbaProject.bin進行替換,在打開文本時加載其他文件,增加分析者的分析復雜程度。

2. vbaProject.bin

在 Office 2007 之后的 Office 文檔格式采用的是 OOXML 標準格式。那什么是 OOXML 標準?這里的 OOXML 的全稱是 Office Open XML File Formats 或被稱為 OpenXML 格式,這是一個基于 zip+xml 定義的文檔格式。簡單的說就是Office文檔是一些xml文檔壓縮文件,因此我們將一個word文檔進行zip解壓,可以獲得一些xml文件,其解壓結果如下。

0065ecd2-f10e-11ed-90ce-dac502259ad0.png

當文檔中包含宏時,在word目錄下會有一個二進制文件,其名字為vbaProject.bin,該文件保存了宏代碼。

00824fda-f10e-11ed-90ce-dac502259ad0.png

vbaProject是宏默認工程的名字,那如果我們修改宏工程的名字,Office文檔的解壓文件是否會改變?答案是不會,即使改了工程名,在Office文檔中依然使用vbaProject.bin作為腳本的名字。例:我們創建一個新的Office文檔,編寫宏代碼,將宏代碼工程的名字名為為myproj,之后將Office文檔解壓,發現解壓后vbaProject.bin的名字沒有變化。

00a2bf04-f10e-11ed-90ce-dac502259ad0.png

3. 腳本重定向

假設我們有這樣的需求,將vbaProject.bin文件進行偽裝,如一個WORD文檔中有styles.xml的文件,我們將vbaProject.bin替換為styIes.xmI(使用大寫的i來偽裝小寫L),用以欺騙分析者的眼睛,使其很難找到腳本文件,無法進行密碼替換,這便是腳本重定向。

00f2e7f4-f10e-11ed-90ce-dac502259ad0.png

要實現腳本重定向,需要將vbaProject.bin的名稱修改為styIes.xmI,之后還需要再修改三個文件,保證該文件可以被正常打開,其中一個文件是根目錄的[Content_Types].xml,另外兩個文件在解壓目錄的word\_rels文件夾中。

011deeb8-f10e-11ed-90ce-dac502259ad0.png

[Content_Types].xml中需要添加一個標簽,內容為:

這一步是為了讓Office文檔去讀取xmI(I是大寫的i)文件來獲取宏代碼,在添加時我們可以觀察原始配置信息,WORD文檔是通過讀取.bin為后綴的文件來獲取宏代碼。

012b82e4-f10e-11ed-90ce-dac502259ad0.png

完成標簽添加后,打開word\_rels文件夾,修改vbaProject.bin.rles文件的名字,將其修改為styIes.xmI.rels,然后打開document.xml.rels,搜索vbaProject.bin,找到后將其修改為styIes.xmI,與文件進行關聯。

017affea-f10e-11ed-90ce-dac502259ad0.png

上訴內容修改完成后,將word文件重新壓縮,并修改后綴即可,打開文件發現文件可以正常打開,宏也可以正常運行,在做重定向時文件名和配置信息可以根據個人需求進行替換。

4. 總結

VBA腳本文件重定向通過修改Office文件加載宏方式,替換腳本文件來達到偽裝的目的,反之,我們可以通過查看[Content_Types].xml和document.xml.rels文件查看Office文檔是否對腳本文件進行重定向來發現其中的威脅。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • XML
    XML
    +關注

    關注

    0

    文章

    188

    瀏覽量

    33142
  • VBA
    VBA
    +關注

    關注

    0

    文章

    19

    瀏覽量

    11938

原文標題:VBA腳本文件重定向

文章出處:【微信號:蛇矛實驗室,微信公眾號:蛇矛實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MATLAB函數和腳本文件的詳細解釋

    MATLAB中的函數和腳本文件是用來組織和執行代碼的兩種不同方式。下面是對MATLAB函數和腳本文件的詳細解釋。
    發表于 07-05 12:24 ?4677次閱讀

    嵌入式 學習-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之輸入輸出重定向

    shell腳本編寫之輸入輸出重定向shell輸出重定向通常是指將執行命令的輸出信息從默認的標準輸出(即當前終端)重新定向到指定文件中。輸入
    發表于 09-24 10:06

    printf重定向怎么做

    要求顯示效果:分析過程:1.printf重定向怎么做?翻書找到2.邏輯怎么寫?紙**3.自己生成源代碼,添加代碼,測試邏輯添加的代碼#ifdef _GNUC_#define
    發表于 08-11 07:51

    實現printf函數的重定向

    目錄重定向函數屬性設置重定向函數在配置好串口之后需要在相關文件中添加以下函數以實現printf函數的重定向//注意添加頭文件#include
    發表于 08-24 07:09

    單片機printf重定向的函數免費下載

    本文檔的主要內容詳細介紹的是單片機printf重定向的函數免費下載。
    發表于 07-03 17:42 ?0次下載
    單片機printf<b class='flag-5'>重定向</b>的函數免費下載

    管道符、重定向與環境變量

    1.標準輸入重定向(STDIN,文件描述符為0):默認從鍵盤輸入,也可從其他文件或命令中輸入。 3.錯誤輸出重定向(STDERR,文件描述符
    發表于 04-29 08:48 ?642次閱讀

    ADV7182A評估板腳本文件

    ADV7182A評估板腳本文件
    發表于 05-28 11:19 ?5次下載
    ADV7182A評估板<b class='flag-5'>腳本文件</b>

    ADV7281A-M評估板腳本文件

    ADV7281A-M評估板腳本文件
    發表于 05-29 12:53 ?3次下載
    ADV7281A-M評估板<b class='flag-5'>腳本文件</b>

    ADV7280A-M評估板腳本文件

    ADV7280A-M評估板腳本文件
    發表于 06-01 21:36 ?9次下載
    ADV7280A-M評估板<b class='flag-5'>腳本文件</b>

    Keil下使用STlink重定向printf的配置

    Keil下使用STlink重定向printf的配置1. printf 重定向Keil默認下使用Micro LIB庫,該庫調用 fputs 實現 printf,所以需要重新定義fputs函數,以重定向
    發表于 12-27 18:43 ?18次下載
    Keil下使用STlink<b class='flag-5'>重定向</b>printf的配置

    shell腳本基礎:重定向和管道符

    標準輸出的目標位置通常指向的是終端屏幕。可以使用>符號修改標準輸出的目標位置。比如下面的示例就會將ps命令的輸出重定向到result.txt文件。描述符和>之間不能有空格
    的頭像 發表于 05-04 11:09 ?1269次閱讀
    shell<b class='flag-5'>腳本</b>基礎:<b class='flag-5'>重定向</b>和管道符

    Linux I/O重定向詳解

    Linux I/O重定向可以定義為,更改從命令讀取輸入到命令發送輸出的方式。你可以重定向命令的輸入和輸出。對于重定向符號,可以是 或者 | 。
    的頭像 發表于 05-04 14:34 ?876次閱讀

    在bash中如何進行各種文件重定向呢?

    本文會用以下測試程序,來演示在bash中,如何進行各種文件重定向
    的頭像 發表于 08-25 09:31 ?1269次閱讀
    在bash中如何進行各種<b class='flag-5'>文件</b><b class='flag-5'>重定向</b>呢?

    Oracle如何執行sql腳本文件

    Oracle是一種關系型數據庫管理系統,可用于存儲、查詢和管理大量的數據。在Oracle中,可以通過執行SQL腳本文件來一次性地執行多個SQL語句或者批量處理數據。在下面的文章中,我將詳細介紹
    的頭像 發表于 12-06 10:51 ?6872次閱讀

    2分鐘搞懂輸出重定向

    視頻最后我們通過重定向把標準輸出寫到了文件中,但是錯誤輸出還是留在了屏幕上。
    的頭像 發表于 01-15 16:41 ?599次閱讀
    大发888娱乐场下载 注册| 缅甸百家乐官网网站| 华人百家乐博彩论| 百家乐发牌的介绍| 澳门百家乐官网官网网站| 百家乐官网现金网平台排行| 垦利县| 大众娱乐城| 宝马会娱乐城网址| bet365忠实奖金| 大发888黄金版网址| 全讯网123| 威尼斯人娱乐场下载| 大发百家乐的玩法技巧和规则| 百家乐讲坛汉献| 单机百家乐小游戏| 百家乐看| 帝王百家乐官网新足球平台| 百家乐官网固定打法| 百家乐官网太阳城球讯网| 沙龙网上娱乐| 上林县| 百家乐官网注册| 百家乐官网一直下注庄家| 百家乐官网优博u2bet| 百家乐官网赌场牌路分析| 百家乐官网娱乐官网网| 欧凯百家乐官网的玩法技巧和规则 | 百家乐官网博赌场娱乐网规则 | 百家乐娱乐城彩金| 百家乐真人视屏游戏| 网上百家乐骗钱| 威尼斯人娱乐城真人游戏| 大发888游戏交易平台| 宝胜网| 静乐县| 百家乐官网游戏技巧| 女优百家乐官网的玩法技巧和规则| 百家乐官网伴侣| 澳门百家乐海洋阿强| 扑克百家乐麻将筹码防伪|