光之使者 发表于 2024-10-29 12:28:22

逆向分析Office VBS宏类型文档

该题目贴合现实,在实战中经常遇到此类宏病毒。
将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文件
https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525118.png
https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525119.png
打开发现是一堆乱码,此时就需要借助大佬们的工具了。
2、oletools

oletools对该文件进行分析,oletools将宏源码完整的还原了出来。
官网:https://github.com/decalage2/oletools/releases
这里采用pip安装模式
pip install -U oletools运行命令
olevba -c protected_secret.docm > code.vbshttps://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525120.png
3、分析vbs代码

直接搜索:AutoOpen​
里面有太多垃圾代码了
https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525121.png
首先将输入的flag异或7
https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525122.png
https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525123.png
有点意思了,解码exe的base64编码,然后运行exe执行操纵,最后再删除exe步伐
【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】
 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC毛病分析陈诉
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权势巨子CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂口试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)
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提取出来
https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525124.png
代码很简单,将提取出来的代码放进Cyberchef进行提取即可
https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525125.png
download.exe
5、分析exe

https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525126.png
很简单的代码,就是位移
6、解密

v9 = *54
v9 = 4288
v9 = 4480
v9 = 5376
v9 = 4352
v9 = 5312
v9 = 4160
v9 = 7936
v9 = 5184
v9 = 6464
v9 = 6528
v9 = 5632
v9 = 3456
v9 = 7424
v9 = 5632
v9 = 6336
v9 = 6528
v9 = 6720
v9 = 6144
v9 = 6272
v9 = 7488
v9 = 6656
v9 = 7296
v9 = 7424
v9 = 2432
v9 = 2432
v9 = 2432
v9 = 5632
v9 = 4416
v9 = 3456
v9 = 7168
v9 = 6528
v9 = 7488
v9 = 6272
v9 = 5632
v9 = 3520
v9 = 6208
v9 = 5632
v9 = 4736
v9 = 6528
v9 = 6400
v9 = 7488
v9 = 3520
v9 = 5632
v9 = 5184
v9 = 3456
v9 = 7488
v9 = 7296
v9 = 3200
v9 = 6272
v9 = 7424
v9 = 2432
v9 = 2432
v9 = 2432
v9 = 7808

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

print(flag)更多网安技能的在线实练习习,请点击这里>>
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 逆向分析Office VBS宏类型文档