0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹VBA隱藏技術(shù)stomping

蛇矛實(shí)驗(yàn)室 ? 來(lái)源:蛇矛實(shí)驗(yàn)室 ? 2023-06-11 10:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.簡(jiǎn)介

之前我們介紹了VBA腳本文件的重定向,修改文件中的加載結(jié)構(gòu)并將腳本的二進(jìn)制文件進(jìn)行偽裝,達(dá)到宏代碼隱藏的目的。該技術(shù)具有一定的局限性,只使用腳本重定向技術(shù)無(wú)法繞過(guò)Microsoft OLE分析工具的檢測(cè)。因此再介紹一種VBA隱藏技術(shù)"VBA stomping",stomping 是指破壞 Microsoft Office 文檔中的 VBA 源代碼,對(duì)Microsoft OLE分析工具進(jìn)行欺騙,干擾其分析結(jié)果。

2.OLE分析工具原理

介紹OLE分析工具原理之前,我們使用OLE分析工具"oletools"來(lái)分析一份使用了VBA重定向腳本技術(shù)的OFFICE文檔,該文檔內(nèi)嵌了自動(dòng)執(zhí)行彈窗功能的VB腳本。

SubAutoOpen()
MsgBox "Hello World"
End Sub

6064c11a-074a-11ee-962d-dac502259ad0.png

我們使用oletools對(duì)該文件進(jìn)行分析,oletools將宏源碼完整的還原了出來(lái),因自動(dòng)運(yùn)行是敏感操作,oletools標(biāo)注了IOC。

607c3afc-074a-11ee-962d-dac502259ad0.png

因此,在實(shí)現(xiàn)欺騙這類工具前,我們需要了解OLE解析工具是如何將我們的宏代碼提取出來(lái)的,通過(guò)查看oletools的源碼,找到宏檢測(cè)部分,可以發(fā)現(xiàn)檢測(cè)工具是通過(guò)搜索"Attribut"這個(gè)特征來(lái)定位宏的位置。

608fe552-074a-11ee-962d-dac502259ad0.png

根據(jù)該信息,我們打開VBA腳本的二進(jìn)制文件,然后搜索"Attribut"字符,在該字符附近,我們可以看到VBA宏的源碼相關(guān)字符,OLE分析工具便是將這些內(nèi)容進(jìn)行提取,并展示出來(lái),然后對(duì)其中的敏感字符進(jìn)行匹配,提示IOC。

60d63444-074a-11ee-962d-dac502259ad0.png

3.stomping

因此我們需要stomping的部分便是VBA二進(jìn)制腳本中Attribute附近的字符,但是,如果我們破壞了這部分字符,宏代碼是否能夠正常執(zhí)行?

在回答這個(gè)問(wèn)題之前,需要引入P-Code這個(gè)知識(shí)點(diǎn),P-code,即Pseudo Code(偽代碼),這一概念最早出現(xiàn)在Pascal編譯器中,它是為了提供跨平臺(tái)可移植性而產(chǎn)生的,實(shí)現(xiàn)這一編譯機(jī)制的Pascal編譯器被稱為"Pascal P Compiler"。

VBA二進(jìn)制腳本文件中即包含了源碼字符,又包含了P-Code,VBA中的P-Code,其本質(zhì)是對(duì)源碼字符的編譯壓縮,因此實(shí)現(xiàn)的功能是相同的,即VBA二進(jìn)制腳本中存在兩份功能一致的代碼,只是存在的形式不同,而oletools不會(huì)去解析P-Code。

需要注意的是,執(zhí)行P-Code的條件的前提條件是編譯腳本的VBA版本需要與運(yùn)行時(shí)版本一致,因?yàn)椴煌姹綱BA編譯的P-Code代碼存在差異,解釋器無(wú)法解析不同版本的P-Code,因此會(huì)讀取源代碼并重新編譯當(dāng)前版本可執(zhí)行的P-Code。

如果滿足腳本編譯環(huán)境和執(zhí)行環(huán)境的VBA版本一致,可以修改源碼部分,這樣oletools解析的結(jié)果就是我們修改后的代碼,而解釋器依舊會(huì)執(zhí)行舊代碼,我們將腳本二進(jìn)制中的源碼部分進(jìn)行修改,修改代碼如下。

Subshowdata()
getnum "12345 67890"
End Sub

60fa84f2-074a-11ee-962d-dac502259ad0.png

修改后,打開文件,可以發(fā)現(xiàn)宏執(zhí)行結(jié)果沒(méi)有改變,證明修改源碼部分不會(huì)影響宏的執(zhí)行。

611e1f84-074a-11ee-962d-dac502259ad0.png

接下來(lái),我們使用工具檢測(cè)一下該文件。發(fā)現(xiàn)工具檢測(cè)出的代碼為我們修改后的代碼,解析結(jié)果與實(shí)際執(zhí)行內(nèi)容不同,到達(dá)欺騙目的,因?yàn)闆](méi)有了自動(dòng)執(zhí)行函數(shù)AutoOpen,工具沒(méi)找到IOC指標(biāo),認(rèn)為該文件正常。

614674ca-074a-11ee-962d-dac502259ad0.png

4.總結(jié)

由于各種工具對(duì)VBA的檢測(cè)角度不同,單一宏隱藏技術(shù)不能不能滿足我們的要求,因此在對(duì)抗檢測(cè)工具時(shí),我們需要打出一套組合拳,將文件重定向與VBA stomping相結(jié)合,使其無(wú)法通過(guò)解析源碼方式分析腳本,也無(wú)法通過(guò)找到腳本的二進(jìn)制文件來(lái)提取P-Code。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    805

    瀏覽量

    42224
  • VBA
    VBA
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    12048
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1658

    瀏覽量

    50020
  • OLE
    OLE
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    11748

原文標(biāo)題:VBA隱藏技術(shù)stomping

文章出處:【微信號(hào):蛇矛實(shí)驗(yàn)室,微信公眾號(hào):蛇矛實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何實(shí)現(xiàn)VBA編譯器崩潰

    本篇文章為VBA腳本隱藏技術(shù)的最后一篇,將介紹如何在保證VBA腳本正常執(zhí)行的情況下,使分析人員無(wú)法打開編譯器。
    發(fā)表于 07-15 10:02 ?1199次閱讀
    如何實(shí)現(xiàn)<b class='flag-5'>VBA</b>編譯器崩潰

    請(qǐng)求ENA VBA援助

    大家好,我正在嘗試讓VBA應(yīng)用程序在第二個(gè)5071C上運(yùn)行。 VBA應(yīng)用程序已在另一臺(tái)5071C上運(yùn)行,但我無(wú)法在第二臺(tái)機(jī)器上運(yùn)行它。我收到“Microsoft Forms - 無(wú)法加載對(duì)象,因?yàn)?/div>
    發(fā)表于 05-17 12:23

    什么是VBA?為什么這么多軟件支持VBA?

    什么是VBA?什么是VBS?二者有什么不同?為什么這么多軟件支持VBA?
    發(fā)表于 07-02 06:35

    空間域LSB的信息隱藏檢測(cè)技術(shù)研究

    基于圖象的信息隱藏檢測(cè)技術(shù)是隱寫分析技術(shù)的基礎(chǔ),對(duì)于保障網(wǎng)絡(luò)信息安全和提高信息隱藏算法的安全性具有重要意義。本文針對(duì)基于空間域圖象的LSB 信息偽裝的方法,
    發(fā)表于 05-26 14:32 ?25次下載

    基于Turbo碼的信息隱藏技術(shù)的研究

    文章首先介紹了Turbo 碼的編碼結(jié)構(gòu)和用于Turbo 碼迭代譯碼的最大后驗(yàn)概率譯碼算法;然后提出了在幾種不同方案下Turbo 碼的信息隱藏技術(shù),對(duì)隱藏信息前后的譯碼效果進(jìn)行了理論分
    發(fā)表于 08-24 10:00 ?14次下載

    VBA程序源代碼

    VBA程序源代碼
    發(fā)表于 02-09 15:16 ?12次下載

    VBA開發(fā)手冊(cè)

      本章將為你介紹AutoCAD   VBA工程及VBA交互開發(fā)環(huán)境(VBA IDE)。盡管大部分VBA環(huán)境在行為上都是相似的,但Auto
    發(fā)表于 08-11 16:00 ?0次下載

    VBA 基礎(chǔ)及與VB的區(qū)別

      Visual Basic 的應(yīng)用程序版(VBA)是Microsoft 公司長(zhǎng)期追求的目標(biāo),使可編程應(yīng)用軟件得到完美的實(shí)現(xiàn),它作為一種通用的宏語(yǔ)言可被所有的Microsoft 可編程應(yīng)用軟件所共享。在沒(méi)有VBA
    發(fā)表于 08-11 17:03 ?3390次閱讀

    AutoCAD VBA二次開發(fā)教程

    AutoCAD VBA二次開發(fā)教程,學(xué)習(xí)二次開發(fā)的頂起
    發(fā)表于 11-02 16:16 ?0次下載

    Excel 2010VBA編程與實(shí)踐

    主要介紹了Excel 2010VBA的編程知識(shí),與部分實(shí)際案例。
    發(fā)表于 11-20 16:14 ?0次下載

    Excel VBA程序開發(fā)自學(xué)寶典

    VBA自學(xué)提供了很好的教材,方式簡(jiǎn)單易懂容易掌握
    發(fā)表于 11-20 16:14 ?0次下載

    VBA數(shù)據(jù)處理全流程寶典

    學(xué)習(xí)VBA理想教材
    發(fā)表于 05-27 08:00 ?0次下載

    excel vba代碼 示例講解

    excel vba代碼 示例講解
    發(fā)表于 09-07 09:36 ?25次下載
    excel <b class='flag-5'>vba</b>代碼 示例講解

    密文域可逆信息隱藏技術(shù)發(fā)展

    隱藏是實(shí)現(xiàn)云環(huán)境下隱私保護(hù)的研究重點(diǎn)之一。針對(duì)當(dāng)前密文域可逆信息隱藏技術(shù)技術(shù)要求,介紹了該技術(shù)
    發(fā)表于 12-09 10:28 ?0次下載
    密文域可逆信息<b class='flag-5'>隱藏</b><b class='flag-5'>技術(shù)</b>發(fā)展

    基于vba自動(dòng)批量修改照片大小

    基于vba自動(dòng)批量修改照片大小
    發(fā)表于 02-11 16:35 ?1次下載

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品