1. 简介
通过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文件,其解压结果如下。
当文档中包含宏时,在word目录下会有一个二进制文件,其名字为vbaproject.bin,该文件保存了宏代码。
vbaproject是宏默认工程的名字,那如果我们修改宏工程的名字,office文档的解压文件是否会改变?答案是不会,即使改了工程名,在office文档中依然使用vbaproject.bin作为脚本的名字。例:我们创建一个新的office文档,编写宏代码,将宏代码工程的名字名为为myproj,之后将office文档解压,发现解压后vbaproject.bin的名字没有变化。
3. 脚本重定向
假设我们有这样的需求,将vbaproject.bin文件进行伪装,如一个word文档中有styles.xml的文件,我们将vbaproject.bin替换为styies.xmi(使用大写的i来伪装小写l),用以欺骗分析者的眼睛,使其很难找到脚本文件,无法进行密码替换,这便是脚本重定向。
要实现脚本重定向,需要将vbaproject.bin的名称修改为styies.xmi,之后还需要再修改三个文件,保证该文件可以被正常打开,其中一个文件是根目录的[content_types].xml,另外两个文件在解压目录的word\_rels文件夹中。
[content_types].xml中需要添加一个标签,内容为:
这一步是为了让office文档去读取xmi(i是大写的i)文件来获取宏代码,在添加时我们可以观察原始配置信息,word文档是通过读取.bin为后缀的文件来获取宏代码。
完成标签添加后,打开word\_rels文件夹,修改vbaproject.bin.rles文件的名字,将其修改为styies.xmi.rels,然后打开document.xml.rels,搜索vbaproject.bin,找到后将其修改为styies.xmi,与文件进行关联。
上诉内容修改完成后,将word文件重新压缩,并修改后缀即可,打开文件发现文件可以正常打开,宏也可以正常运行,在做重定向时文件名和配置信息可以根据个人需求进行替换。
4. 总结
vba脚本文件重定向通过修改office文件加载宏方式,替换脚本文件来达到伪装的目的,反之,我们可以通过查看[content_types].xml和document.xml.rels文件查看office文档是否对脚本文件进行重定向来发现其中的威胁。
芯森芯片级电流传感器成功入选中关村新兴领域精品成果常态化展示
结合了AR与VR优点的新技术才是真正的未来
HarmonyOS家庭宠物健康监测系统开发方案
华为MateBookXPro到底好不好用
抽取式摘要方法中如何合理设置抽取单元?
VBA脚本文件重定向简析
新疆联通首个5G+MEC独立组网投运,正式迈入商用阶段
进军新能源汽车,姚振华再战董明珠
ADI推出一款超级时序控制器,可同步操作16个ADM1266
PTC可在设备超温后的保护作用
解决复杂数据最近邻问题的通用方法
土壤养分检测仪应用领域和效果分析
数字地球产品研发企业中科星图发布2022第一季度报告
采用ZVS拓扑实现更优化的功率转换器设计
LN1419开关型单节锂电池充电芯片概述、用途及特点
三星显示将从2025年开始量产‘基于W-OLED的OLEDoS’
华为宣布了新的Mate 40系列产品阵容
T-S-T三级交换网络路径搜索算法的研究
中国移动2018年7月份运营数据公布 4G客户数达到6.83327亿
中国5g技术又有新消息,美国彻底慌了