逆向分析Office VBS宏类型文档

news/2025/1/21 22:08:09/文章来源:https://www.cnblogs.com/hetianlab/p/18512574

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

将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文件

image

image

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

2、oletools

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

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

这里采用pip安装模式

pip install -U oletools

运行命令

olevba -c protected_secret.docm > code.vbs

image

3、分析vbs代码

直接搜索:AutoOpen

里面有太多垃圾代码了

image

首先将输入的flag异或7

image

image

有点意思了,解码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提取出来

image

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

image

download.exe

5、分析exe

image

很简单的代码,就是位移

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)

更多网安技能的在线实操练习,请点击这里>>

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/823612.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AIGC 推动短剧出海市场蝶变:降本、提效、增质

AI掀起 短剧出海新曲线短剧出海的新一轮风浪,由AI掀起。 自2022年以来,短剧一步步迈过了验证需求、出海拓荒的蛮荒阶段,到2024年,仅过了短短两年多时间,在ReelShort、DramaBox、FlexTV、ShortMax等头部玩家的“带领”下,短剧出海已进入了史无前例的“亿”级爆发阶段,伺机…

USB协议详解第24讲(USB包-控制传输包详解)

1.控制传输包结构 控制传输由三个阶段组成,设置阶段、可选的数据阶段、状态阶段,其中设置阶段由1个SETUP事务组成,数据阶段由0个或者多个IN/OUT事务组成,状态阶段由1个IN/OUT事务组成,其中每个阶段事务包结构有所不同,下图可以直观看出控制传输写传输的包结构组成。2.设置…

深度解读RDS for MySQL 审计日志功能和原理

RDS for MySQL的审计日志功能在用户活动监控、权限变更追踪和性能优化等方面有着重要的作用。本文分享自华为云社区《【华为云MySQL技术专栏】RDS for MySQL 审计日志功能介绍》,作者:GaussDB数据库。 1. 背景 在生产环境中,当数据库出现故障或问题时,运维人员需要快速定位…

HyperWorks的RT功能及使用技巧

在Altair(HyperWorks)里,当结构中包含 T 型、X 型或更复杂的连接特征(图 2-12 所示)时,此功能非常有效。不适用于没有 T 型连接的特征(图 2-12 右侧)。图 2-12 带有 T 型特征的模型如果 R/T(半径/厚度)大于面板指定值,这个特征不被识别为目标连接特征。 -如果某个连…

GaussDB技术解读——GaussDB架构介绍之数据持久化存取层(DataNode)关键技术方案

数据持久化存取层(DataNode)关键技术方案 Datanode节点主要负责数据的持久化和快速写入、读取。数据持久化采用物理日志wal,事务提交wal刷盘, 对外提供逻辑日志功能,反解析物理日志为SQL逻辑日志。图1 datanode数据持久化 Astore:存储格式为追加写优化设计,其多版本元组采…

GaussDB企业级AI-Native分布式数据库

华为 GaussDB 是一个企业级 AI-Native 分布式数据库。GaussDB 采用 MPP(Massive Parallel Processing)架构,支持行存储与列存储,提供 PB(Petabyte,2 的 50 次方字节)级别数据量的处理能力。 华为Gauss数据库是全球首款AI-Native数据库,能够同时支持X86、ARM、GPU、NPU 等异…

国家代码和国家地区代码有什么区别

​​国家代码和国家地区代码的区别主要体现在:1.定义及用途不同;2.格式和结构差异;3.颁发机构不同;4.应用范围有别;国家代码通常是ISO标准中定义的,如ISO 3166-1中的两位或三位字母代码,而国家地区代码可能包括电话区号、邮政编码等,且格式更为多样。了解这些差异对于处…

CNCC2024:网易伏羲主题分论坛圆满落幕,专家共论推动产学研深度融合

10月26日,为期三天的2024中国计算机大会(CNCC2024)在浙江省东阳市横店镇圆明新园顺利落下帷幕。本届大会以“发展新质生产力,计算引领未来”为主题,吸引了数万名计算领域专业人士参会。本次大会邀请到了17位国内院士,800余位国内外顶尖学者、企业技术精英,通过特邀报告、…

在TMOS系统的不同taskID间交互数据

目录 TMOS系统中,每个taskID下都预留了一个事件编号0x8000,用于在不同的taskID中传递数据。由于0x8000占据了一个事件编号,故每个taskID下,用户只能最多自定义15个事件。 不同的taskID可以用于将不同的功能划分到不同的作用域中,将代码模块化,方便管理和移植。比如说某个…

Swagger UI、RESTful简介

Swagger UI 简介Swagger UI允许任何人(无论您是开发团队还是最终用户)都可以可视化API资源并与之交互,而无需任何实现逻辑。它是根据您的OpenAPI(以前称为Swagger)规范自动生成的,具有可视化文档,可简化后端实现和客户端使用。 SwaggerUI 特点无依赖 UI可以在任何开发环…

Ubuntu QTCreator 程序打包

下载linuxdeployqt官网地址:https://github.com/probonopd/linuxdeployqt/releases安装更改名字 mv linuxdeployqt-6-x86_64.AppImage linuxdeployqtView Code修改权限 chmod 777 linuxdeployqtView Code全局访问 sudo mv linuxdeployqt /usr/local/binView Code测试 linuxdep…

❗Vue中常见的性能优化(被问到要尽可能说全呀cc!!!)

Webpack层级的优化(后面会讲) 前端通用的性能优化,如图片懒加载 使用SSR