VBA脚本文件重定向简析

描述

1. 简介XML

通过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文件,其解压结果如下。

XML

当文档中包含宏时,在word目录下会有一个二进制文件,其名字为vbaProject.bin,该文件保存了宏代码。

XML

vbaProject是宏默认工程的名字,那如果我们修改宏工程的名字,Office文档的解压文件是否会改变?答案是不会,即使改了工程名,在Office文档中依然使用vbaProject.bin作为脚本的名字。例:我们创建一个新的Office文档,编写宏代码,将宏代码工程的名字名为为myproj,之后将Office文档解压,发现解压后vbaProject.bin的名字没有变化。

XML

3. 脚本重定向

 假设我们有这样的需求,将vbaProject.bin文件进行伪装,如一个WORD文档中有styles.xml的文件,我们将vbaProject.bin替换为styIes.xmI(使用大写的i来伪装小写L),用以欺骗分析者的眼睛,使其很难找到脚本文件,无法进行密码替换,这便是脚本重定向。

XML

要实现脚本重定向,需要将vbaProject.bin的名称修改为styIes.xmI,之后还需要再修改三个文件,保证该文件可以被正常打开,其中一个文件是根目录的[Content_Types].xml,另外两个文件在解压目录的word\_rels文件夹中。

XML

 [Content_Types].xml中需要添加一个标签,内容为:

 

 

这一步是为了让Office文档去读取xmI(I是大写的i)文件来获取宏代码,在添加时我们可以观察原始配置信息,WORD文档是通过读取.bin为后缀的文件来获取宏代码。

XML

    完成标签添加后,打开word\_rels文件夹,修改vbaProject.bin.rles文件的名字,将其修改为styIes.xmI.rels,然后打开document.xml.rels,搜索vbaProject.bin,找到后将其修改为styIes.xmI,与文件进行关联。

XML

    上诉内容修改完成后,将word文件重新压缩,并修改后缀即可,打开文件发现文件可以正常打开,宏也可以正常运行,在做重定向时文件名和配置信息可以根据个人需求进行替换。

4. 总结

VBA脚本文件重定向通过修改Office文件加载宏方式,替换脚本文件来达到伪装的目的,反之,我们可以通过查看[Content_Types].xml和document.xml.rels文件查看Office文档是否对脚本文件进行重定向来发现其中的威胁。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分