🔖 在前三节《[01]应急响应-Linux 计划任务与 DFIR 排查实践(一)》、《[02]应急响应-Linux 计划任务与 DFIR 排查实践(二)》、《[03]应急响应-Linux 计划任务与 DFIR 排查实践(三)》中,我们深入探讨了cron 、at、anacron和Systemd Timers服务,从基础排查到隐藏任务的分析排查,这一节我们来看看在钓鱼等场景中经常遇到的恶意文档类型文件如何进行分析。
0x00 免责声明
本公众号文章中的程序、方法、信息和工具仅用于安全研究、教学、网络安全人员对网站及服务器的检测维护,禁止用于其他非法用途。使用者对不当使用造成的后果承担全部法律及连带责任,作者和公众号不担责。文中安全漏洞情报依公开信息整理,据此行动风险自担,如有侵权请告知。
0x01 简介
OleTools是一个用于分析的 Python 工具包 Microsoft OLE2 文件 (也称为结构化存储、复合文件二进制格式或复合文档文件格式)、 例如 Microsoft Office 97-2003 文档、MSI 文件或 Outlook 消息,主要用于恶意软件分析, 取证和调试。它基于 olefile 解析器。
它还提供了用于分析 RTF 文件和基于 OpenXML 格式的文件的工具 (又名 OOXML),例如 MS Office 2007+ 文档、XPS 或 MSIX 文件。🌟oletools 可以检测、提取和分析 VBA 宏、OLE 对象、Excel 4 宏 (XLM) 和 DDE 链接。🌟
1.1 OleTools 中的工具 🗝️
1.1.1 分析恶意文档的工具
oleid:分析 OLE 文件以检测恶意文件中常见的特定特征。
olevba:从 MS Office 文档(OLE 和 OpenXML)中提取和分析 VBA 宏源代码。
msodde:从 MS Office 文档、RTF 和 CSV 中检测和提取 DDE/DDEAUTO 链接
pyxswf:检测、提取和分析可能嵌入在 MS Office 文档(例如 Word、Excel)和 RTF 等文件中的 Flash 对象 (SWF),这对于恶意软件分析特别有用。
oleobj:从 OLE 文件中提取嵌入对象。
rtfobj:从 RTF 文件中提取嵌入的对象。
1.1.2 用于分析 OLE 文件结构的工具
olebrowse:一个简单的 GUI,用于浏览 OLE 文件(例如 MS Word、Excel、Powerpoint 文档),以查看和提取单个数据流。
OLEmeta:从 OLE 文件中提取所有标准属性(元数据)。
Oletimes:提取所有流和存储的创建和修改时间戳。
oledir:显示 OLE 文件的所有目录条目,包括自由条目和孤立条目。
olemap:显示 OLE 文件中所有扇区的映射。
0x02 下载与使用
2.1 下载安装
要获取最新的开发版本,请执行以下操作:
On Linux/Mac: sudo -H pip install -U https://github.com/decalage2/oletools/archive/master.zip
On Windows: pip install -U https://github.com/decalage2/oletools/archive/master.zip
-
下载和安装/更新最新稳定版本的推荐方法 的 OleTools 是使用 pip:
在 Linux/Mac 上:sudo -H pip install -U oletools[full]
在 Windows 上:pip install -U oletools[full]🔥
关键字 [full]
表示将安装所有可选依赖项,例如 XLMMacroDeobfuscator。如果你喜欢没有可选依赖项的轻量级版本,只需从命令行中删除 [full]
即可。
2.2 基础功能🗯️
2.2.1 mraptor 🎯
mraptor
是一个用于扫描和分析 Office 文件(如 .doc
, .xls
等)中否存在可疑的宏和潜在恶意行为的工具
1. 基本用法:
mraptor -h
Usage: mraptor [options] <filename> [filename2 ...]
Options:
-h, --help show this help message and exit
-r 递归扫描一个文件夹及其子文件夹
-z ZIP_PASSWORD, --zip=ZIP_PASSWORD 分析一个 ZIP 压缩文件并提供密码
-f ZIP_FNAME, --zipfname=ZIP_FNAME 分析 ZIP 文件中特定类型的文件
-l LOGLEVEL, --loglevel=LOGLEVEL 设置日志级别为
-m, --matches 显示匹配的宏字符串
2. 结果说明:
-
文件是否安全(
SAFE
)或可疑(SUSPICIOUS
)。 -
检测到的标志,如
AutoExec
(自动执行)、Execute
(执行代码)。
2.2.2 oleid 🎯
-
用途:分析 OLE 文件以检测潜在的安全威胁,例如:
-
是否包含 VBA 宏。
-
是否嵌入了 Flash 对象。
-
是否存在文件碎片化等问题。
-
输出:以 ASCII 表格的形式显示检测结果。
1. 基本用法
oleid [options] <filename> [filename2 ...]
1、分析一个 OLE 文件,查看是否包含可疑特性:
oleid example.doc
2、分析多个文件的特性:
oleid file1.doc file2.xls
选项 |
描述 |
|
必需,指定要分析的文件的路径,可以是一个或多个文件。 |
|
可选,显示帮助信息并退出。 |
2. 结果说明
2.2.3 olevba 🎯
olevba
是一个用于分析包含 VBA 宏的 Office 文件(如 Word 或 Excel 文件)的工具,主要用于提取宏代码、分析宏行为、解码和反混淆 VBA 宏中的恶意代码。
1. 基本用法
命令基本语法:
olevba [options] <filename> [filename2 ...]
# 可以指定一个或多个文件,支持通配符。
选项 |
描述 |
|
显示帮助信息并退出。 |
|
递归查找子目录中的文件。 |
|
如果文件是 ZIP 格式的压缩文件,提供密码解压并分析其中的文件。 |
|
如果文件被加密,尝试使用提供的密码进行解密(可以多次指定)。 |
|
如果文件是 ZIP 格式,指定要分析的文件,支持通配符(如 |
|
仅显示分析结果,不显示宏源代码。 |
|
仅显示 VBA 源代码,不进行分析。 |
|
显示所有混淆的字符串及其解码后的内容(例如:Hex、Base64、StrReverse、Dridex、VBA)。 |
|
显示 VBA 源代码开头的属性行。 |
|
显示宏源代码,并将所有混淆的字符串替换为解码后的内容。 |
|
设置日志级别( |
|
尝试反混淆 VBA 表达式(该过程较慢)。 |
|
不会在打开子流失败时抛出错误(此选项已弃用,默认启用)。 |
|
显示反汇编的 P-code(使用 |
|
禁用 P-code 的提取和分析。 |
|
不提取 XLM Excel 宏。这可以加速对大文件的分析。 |
输出模式:
选项 |
描述 |
|
仅显示结果的总结表格(适用于多个文件的分析,默认为多个文件时)。 |
|
显示完整的详细结果(适用于单个文件时,默认为单个文件时)。 |
|
以 JSON 格式输出详细结果(永远不会是默认输出格式)。 |
2. 常见用法示例
1. 分析单个文件
分析一个文件并显示详细的宏信息:
olevba -d 111.doc
2. 分析多个文件
分析多个文件并以总结表格的形式显示结果:
olevba -t 111.doc 112.xls 113.ppt
3. 仅显示分析结果
只显示文件分析结果,不显示宏源代码:
olevba -a 111.doc
4. 解码混淆的字符串
如果宏代码中有混淆的字符串,使用 --decode 解码并显示内容:
olevba --decode 111.doc
5. 显示 VBA 代码并解密
显示宏源代码,并且将混淆的字符串替换为解码后的内容:
olevba --reveal 111.doc
6. 处理 ZIP 文件
如果文件是 ZIP 压缩包,使用密码打开并分析其中的文件:
olevba -z mypassword 111.zip
7. 反混淆 VBA 表达式
反混淆 VBA 表达式(这会使分析变慢,但有助于识别恶意代码):
olevba --deobf 111.doc
第一部分结束
结语🗯️
这一节内容不多,但是常见的一些存在恶意宏的文档应该能够分析一二了,拿到宏代码直接放到GPT中解释一番,功能行为一目了然。若是存在一些动态加载的行为,也可以尝试在虚拟环境中进行动态分析。
下一节我们会继续讲解恶意文档分析-工具篇,我尽可能找几个案例讲解一下,感兴趣的小伙伴可以持续关注一下哦~✨
原文始发于微信公众号(Y1X1n安全):[04]恶意文档分析-工具篇-OleTools(一)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论