逆向分析Office VBS宏类型文档

2024-11-03 20 0

该题目贴合实际,在实战中经常遇到此类宏病毒。

将Office文档中嵌入以VBA(Visual Basic forApplications)编写的宏代码脚本,当运行Office文档时,便可以执行各种命令。

VBA脚本文件重定向能够将脚本默认文件vbaProject.bin进行替换,在打开文本时加载其他文件,增加分析者的分析复杂程度。

1、初步分析

在 Office 2007 之后的 Office 文档格式采用的是 OOXML 标准格式。那什么是OOXML 标准?这里的 OOXML 的全称是 Office Open XML File Formats或被称为 OpenXML 格式,这是一个基于 zip+xml定义的文档格式。简单的说就是Office文档是一些xml文档压缩文件,因此我们将一个word文档进行zip解压,可以获得一些xml文件

逆向分析Office VBS宏类型文档插图

逆向分析Office VBS宏类型文档插图1

打开发现是一堆乱码,此时就需要借助大佬们的工具了。

2、oletools

oletools对该文件进行分析,oletools将宏源码完整的还原了出来。

官网:https://github.com/decalage2/oletools/releases

这里采用pip安装模式

pip install -U oletools

运行命令

olevba -c protected_secret.docm > code.vbs

逆向分析Office VBS宏类型文档插图2

3、分析vbs代码

直接搜索:AutoOpen

里面有太多垃圾代码了

逆向分析Office VBS宏类型文档插图3

首先将输入的flag异或7

逆向分析Office VBS宏类型文档插图4

逆向分析Office VBS宏类型文档插图5

有点意思了,解码exe的base64编码,然后运行exe执行操作,最后再删除exe程序

4、运行Vbs得到exe

将重要的代码拿出来,然后生成exe

Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")

/*
省略了一大堆 base64赋值串
*/

tempPath = "D:\temp11\temp"
Set tempfile = fso.CreateTextFile(tempPath, True)
fso.GetFile(tempPath).Attributes = 2
tempfile.WriteLine xpkdb
tempfile.Close

batPath = "D:\temp11\temp.bat"
Set batFile = fso.CreateTextFile(batPath, True)
fso.GetFile(batPath).Attributes = 2
batFile.WriteLine "@echo off"
batFile.WriteLine "certutil -decode temp1 temp|certutil -decode temp temp.exe"
batFile.Close
Set objExec = objShell.Exec(batPath)

保存为vbs运行,但是我电脑有点小问题没跑运行起来

因此我们采取另一种方法,直接将base64提取出来

逆向分析Office VBS宏类型文档插图6

代码很简单,将提取出来的代码放进Cyberchef进行提取即可

逆向分析Office VBS宏类型文档插图7

download.exe

5、分析exe

逆向分析Office VBS宏类型文档插图8

很简单的代码,就是位移

6、解密

v9 = [0]*54
v9[0] = 4288
v9[1] = 4480
v9[2] = 5376
v9[3] = 4352
v9[4] = 5312
v9[5] = 4160
v9[6] = 7936
v9[7] = 5184
v9[8] = 6464
v9[9] = 6528
v9[10] = 5632
v9[11] = 3456
v9[12] = 7424
v9[13] = 5632
v9[14] = 6336
v9[15] = 6528
v9[16] = 6720
v9[17] = 6144
v9[18] = 6272
v9[19] = 7488
v9[20] = 6656
v9[21] = 7296
v9[22] = 7424
v9[23] = 2432
v9[24] = 2432
v9[25] = 2432
v9[26] = 5632
v9[27] = 4416
v9[28] = 3456
v9[29] = 7168
v9[30] = 6528
v9[31] = 7488
v9[32] = 6272
v9[33] = 5632
v9[34] = 3520
v9[35] = 6208
v9[36] = 5632
v9[37] = 4736
v9[38] = 6528
v9[39] = 6400
v9[40] = 7488
v9[41] = 3520
v9[42] = 5632
v9[43] = 5184
v9[44] = 3456
v9[45] = 7488
v9[46] = 7296
v9[47] = 3200
v9[48] = 6272
v9[49] = 7424
v9[50] = 2432
v9[51] = 2432
v9[52] = 2432
v9[53] = 7808

flag = ''
for i in range(54):
flag += chr(v9[i] >> 6 ^ 7)

print(flag)


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

办事处网络安全监控与事件响应;国外员工终端安全性怎么保障 | FB甲方群话题讨论
拿不下总统之位,那就用热加载拿下验证码识别与爆破好了!
Sooty:一款SoC分析一体化与自动化CLI工具
shiro CVE-2016-6802 路径绕过(越权)
Apache Solr 身份验证绕过漏洞(CVE-2024-45216)详解
llama_index的CVE-2024-4181漏洞根因分析

发布评论