VBA隐藏技术stomping

admin 2023年6月10日04:48:40评论4 views字数 1568阅读5分13秒阅读模式
 

1.简介

 

之前我们介绍了VBA脚本文件的重定向,修改文件中的加载结构并将脚本的二进制文件进行伪装,达到宏代码隐藏的目的,细节请参考上一篇文章"VBA脚本重定向"。该技术具有一定的局限性,只使用脚本重定向技术无法绕过Microsoft OLE分析工具的检测。因此再介绍一种VBA隐藏技术"VBA stomping",stomping 是指破坏 Microsoft Office 文档中的 VBA 源代码,对Microsoft OLE分析工具进行欺骗,干扰其分析结果。

 

2.OLE分析工具原理

 

    介绍OLE分析工具原理之前,我们使用OLE分析工具"oletools"来分析一份使用了VBA重定向脚本技术的OFFICE文档,该文档内嵌了自动执行弹窗功能的VB脚本。

Sub AutoOpen()
MsgBox "Hello World"
End Sub

VBA隐藏技术stomping

    我们使用oletools对该文件进行分析,oletools将宏源码完整的还原了出来,因自动运行是敏感操作,oletools标注了IOC。

VBA隐藏技术stomping

    因此,在实现欺骗这类工具前,我们需要了解OLE解析工具是如何将我们的宏代码提取出来的,通过查看oletools的源码,找到宏检测部分,可以发现检测工具是通过搜索"Attribut"这个特征来定位宏的位置。

VBA隐藏技术stomping

    根据该信息,我们打开VBA脚本的二进制文件,然后搜索"Attribut"字符,在该字符附近,我们可以看到VBA宏的源码相关字符,OLE分析工具便是将这些内容进行提取,并展示出来,然后对其中的敏感字符进行匹配,提示IOC。

VBA隐藏技术stomping

3.stomping

    因此我们需要stomping的部分便是VBA二进制脚本中Attribute附近的字符,但是,如果我们破坏了这部分字符,宏代码是否能够正常执行?

    在回答这个问题之前,需要引入P-Code这个知识点,P-code,即Pseudo Code(伪代码),这一概念最早出现在Pascal编译器中,它是为了提供跨平台可移植性而产生的,实现这一编译机制的Pascal编译器被称为"Pascal P Compiler"。

    VBA二进制脚本文件中即包含了源码字符,又包含了P-Code,VBA中的P-Code,其本质是对源码字符的编译压缩,因此实现的功能是相同的,即VBA二进制脚本中存在两份功能一致的代码,只是存在的形式不同,而oletools不会去解析P-Code。

    需要注意的是,执行P-Code的条件的前提条件是编译脚本的VBA版本需要与运行时版本一致,因为不同版本VBA编译的P-Code代码存在差异,解释器无法解析不同版本的P-Code,因此会读取源代码并重新编译当前版本可执行的P-Code。

    如果满足脚本编译环境和执行环境的VBA版本一致,可以修改源码部分,这样oletools解析的结果就是我们修改后的代码,而解释器依旧会执行旧代码,我们将脚本二进制中的源码部分进行修改,修改代码如下。

Sub showdata()
   getnum "12345 67890"
End Sub

VBA隐藏技术stomping

    修改后,打开文件,可以发现宏执行结果没有改变,证明修改源码部分不会影响宏的执行。

VBA隐藏技术stomping

    接下来,我们使用工具检测一下该文件。发现工具检测出的代码为我们修改后的代码,解析结果与实际执行内容不同,到达欺骗目的,因为没有了自动执行函数AutoOpen,工具没找到IOC指标,认为该文件正常。

VBA隐藏技术stomping

4.总结

由于各种工具对VBA的检测角度不同,单一宏隐藏技术不能不能满足我们的要求,因此在对抗检测工具时,我们需要打出一套组合拳,将文件重定向与VBA stomping相结合,使其无法通过解析源码方式分析脚本,也无法通过找到脚本的二进制文件来提取P-Code。

 

原文始发于微信公众号(蛇矛实验室):VBA隐藏技术stomping

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月10日04:48:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   VBA隐藏技术stompinghttp://cn-sec.com/archives/1795148.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息