本文讲的是实例讲解如何绕过 Office 文档的反分析技术,今天我们来试着分析一个使用Word文档的恶意VBA项目。该文档的作者对文件中的VBA项目进行了密码保护,以防止对恶意代码的检查,同时也使用了一些防止密码删除的技术。因此自动分析工具就基本不起作用了,但我们还是展示了如何跨越所有这些反分析障碍的技术,下面我们开始。

我们首先打开文档,然后就会接到一个钓鱼消息,声称该文档是使用早期版本的Microsoft Office创建的,想要查看内容的话我们必须启用宏。

当我们启用宏时,文档开始指向cfai66.fr

要了是解什么使文档发送到一个法国域名,我们必须在“开发人员”选项卡中检查文档的宏。但是,作者用密码保护着VBA项目,来防止我们检查。这就限制了我们从Microsoft Office内部准确分析VBA脚本的能力。

要继续分析,我们可以尝试使用Office文件的一些常见的十六进制编辑技术手动删除密码。首先,我们在文档中搜索字符串“DPB”并将其更改为“DPx”。Office的某些版本会将其解释为损坏的密码哈希。但是,这对我们的文档不起作用,我们仍然收到密码提示。

接下来,我们尝试用我们创建的受密码保护的VBA启用文档替换我们文档的“CMG”,“DPB”和“GC”值。遗憾的是,我们的文件的作者有意地搞砸了“CMG”的价值,以摒弃这个领域的长度。我们尝试将我们的新CMG复制到恶意文档也失败了。此外,我们还尝试了在CMG的引号内外填充数据以保留文件的长度,但也失败了。左边的是新文件,右边的是恶意文件。 

由于我们的密码删除尝试都失败了,我们只能继续使用受欢迎的Office产品分析工具OfficeMalScanner检查我们的文档。使用scan / brute选项运行该工具并没有产生任何结果:

使用info 选项重新运行该工具可以显示3个VBA对象:

要动态分析这些VBA对象,我们可以使用一个名为ViperMonkey的新工具。ViperMonkey是用Python编写的VBA仿真引擎,旨在分析和解组Microsoft Office文件(Word,Excel,PowerPoint,Publisher等)中包含的恶意VBA宏。

然而,ViperMonkey无法完全分析VBA,因为

1.)不会识别VBA函数UBound

2.)无法评估“i = UserForm1.T.Top”的变量赋值,因为它无法定位UserForm1.T.Top的值。

看来我们必须手动逆向Module1 的VBA脚本。首先,我们将脚本加载到新的Word文档中,以便我们可以使用内置的VBA调试器进行调试。调试脚本后,我们很快就发现了导致ViperMonkey失败的代码。

此代码无法运行,因为Form1无法使用OfficeMalScanner工具转储,除非Form1的元数据被转储,并且Form1.T.Top的值无法找到。这是一个阻止自动VBA分析的好方法,因为不能获取密码保护形式的变量(我所知道的)。我们将不得不手动跟踪代码并逆向使用此变量的函数来尝试确定什么它的价值应该是。

跟踪i = Form1.T.Top的变量赋值最终将i分配给变量T,之后将我们带到第56行。

变量fr将被赋值T-11,然后在线60变量Wet将被赋值1-fr。

第62行指出,如果Wet = 0,则rd将是变量rd的字符表示。

如果我们以相反的逻辑顺序取这些语句,我们得到以下内容:

如果rd作为Char,Wet必须等于0:

Wet= 0Wet= 1  -  fr(1)= 0fr = T(12)-11 = 1T(12)= i(12)= UserForm1.T.Top(12)UserForm1.T.Top == 12

如果我们用12的值替换UserForm1.T.Top并调试脚本,我们慢慢地就会看到可读的文本填充变量onearm。这时,我们已经成功地逆向了VBA的逻辑,并在变量中显示了以下批处理文件:

该脚本将从cfai66.fr网站下载恶意的PNG文件(实际上是一个EXE)(不确定这是否已被盗用的合法网站),并在我们的机器上执行。此文件是一个通用的木马程序,不属于特定的广告系列。

删除文件

i.bat
npzdi.exe

网络通信

cfai66.fr/parabola.png
cfa-noisylegrand.com/parapola.png

检测

https://otx.alienvault.com/pulse/599514487e26f94848cf58a2/

结论

这是一个有趣的使用Word文档来进行的VBA项目,并且采用了密码保护来阻碍分析。经过几次密码删除尝试,使用OfficeMalScanner和ViperMonkey自动进行工具分析,我们最终手动逆向了VBA函数从而发现了在调试过程中导致脚本失败的缺失值。

原文发布时间为:2017年8月20日
本文作者:鲁班七号
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
原文链接

实例讲解如何绕过 Office 文档的反分析技术相关推荐

  1. 绕过Office文档的受保护视图

    介绍 我想分享最近发现的一个有趣现象,提前说明,这是我基于最新的Windows 10操作系统以及最新的的MS Office 365所发现的.这也是我在开发网络钓鱼工具PhishAPI时偶然发现的. 大 ...

  2. 大咖齐聚CCIG论坛——文档图像智能分析的产业前沿

    目录 1 文档图像智能分析技术 2 大咖齐聚CCIG@2023 3 议题介绍 3.1 从模式识别到类脑研究 3.2 视觉-语言预训练模型演进及应用 3.3 篡改文本图像的生成和检测 3.4 智能文档处 ...

  3. 文档图像智能分析与处理:CCIG技术论坛的思考与展望

    文档图像智能分析与处理:CCIG技术论坛的思考与展望 文档识别与理解的发展趋势 视觉-语言预训练模型在文档处理中的应用 篡改文本图像的生成与检测的研究进展 华为云OCR技术的进展与行业实践 智能文档处 ...

  4. Office文档模型深入---Outlook文档模型与开发实战(1)

    简介   本篇为Office文档模型深入系列第4篇,原计划是Excel的图表,之后是Word,因为项目转手需要总结Outlook,先改变下顺序,后面的内容会慢慢补上.本篇为Outlook子系列的第一篇 ...

  5. office受保护视图_使用受保护的视图激发恶意Office文档

    office受保护视图 介绍 (Intro) I wanted to share an interesting behavior I discovered with Microsoft Office ...

  6. 仿百度文库方案[openoffice.org 3+swftools+flexpaper](三) 之 使用JODConverter将office文档转换为pdf...

    第三步,使用JODConverter将office文档转换为pdf JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用 OpenOffice ...

  7. 『转载』在vs2008(2005)winform中,打开office文档

    最近在准备毕业设计,这个阶段应该是可行性分析阶段吧,在查阅相关的技术问题,由于涉及office,所以今天写下这篇文章,以备日后查阅.这篇文章也是参阅msdn而来的,我在这里提供了实例和下载,方便大家调 ...

  8. solr从pdf、office文档中建立索引

    2015年05月28日 ⁄ hadoop ⁄ 评论数 1 使用solr从pdf.office文档中建立索引和从数据库中建立相似,只不过这里需要tika来解析这些文档.8.1 配置一个handler 这 ...

  9. Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪_实现在线预览Office文档

    Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪 前置条件 安装LibreOffice 安装OpenOffice 安装Unoconv 安装ImageMagick.x86_64 安装G ...

最新文章

  1. 16岁应该遵循什么_16岁就被张艺谋选中,刘浩存到底有什么来头?
  2. AI4U:以用户友好为目标,智源重大研究方向“机器学习”学者候选人发布
  3. 存储过程---角色权限叠加
  4. 科学计算机怎么调亮度,LED显示器背光很刺眼怎么办?显示器刺眼如何设置?
  5. RocketMQ控制台安装教程
  6. mysql 数据库函数入门
  7. jquery加载完成后方法只执行一次_JavaScript的超级库--jQuery内容整理(3)
  8. Qt总结之十五:QByteArray详解
  9. 【leetcode】二叉树的深度以及树是否平衡的问题
  10. java+编写守护线程_学习Java编程-守护线程
  11. 华擎主板bios设置图解_华擎主板bios设置图解 如何进入bios设置 BIOS设置图解教程...
  12. 打表法判断素数 c语言,素数打表(4种方法)
  13. wirelessmon
  14. 杭电ACM-LCY算法进阶培训班-专题训练(Hash及其应用)
  15. android 获取手机内存及SD卡内存可用空间
  16. 【计算机组成与结构】中央处理器
  17. Android Studio 默认keystore 以及自定义keystore
  18. mysql命令创建用户_使用MySQL命令行新建用户并授予权限的方法
  19. c语言编程a4988驱动步进电机,A4988 步进电机驱动模块测试
  20. [转载]17岁高考落榜生成为世界顶尖IT高手

热门文章

  1. Ehome:智能家居之led控制系统
  2. week 2(python)
  3. 在评论中使用邮箱的QQ头像
  4. Truthful Double Spectrum Auction (TDSA)
  5. 平面设计师个人简历模板
  6. iOS6、7、8、9区别和新特性
  7. ~30万 | 上海交大鲁洪中课题组2023年诚招系统生物学和合成生物学方向博士后2名...
  8. C语言实训 easyx 2048小游戏(带背景音乐)
  9. 文献阅读(63)NIPS2012-ImageNet Classification with Deep Convolutional Neural Networks
  10. 有趣!滴滴这样使用派单算法协调数千万的订单