一款面向安全研究人员的工具,帮助他们节省分析恶意Office宏的时间。
生成VBA调用图,并高亮显示潜在恶意关键词。
支持快速分析恶意宏,轻松理解执行流程。
✓ 非常快
✓ 对大多数野外恶意宏表现良好
✗ 静态分析(动态解析的调用无法识别)
示例1:
Trickbot下载器——利用对象Resize事件作为初始触发,随后触发TextBox_Change。

示例2:

更多案例请查看 Examples 文件夹。
https://github.com/decalage2/oletools/wiki/Install
pip3 install -r requirements.txt
安装 Graphviz:
https://graphviz.gitlab.io/download/#windows
将 "dot.exe" 添加到 PATH 环境变量,或直接运行:
set PATH=%PATH%;C:\Program Files (x86)\Graphviz2.38\bin
brew install graphviz
sudo apt-get install graphviz
sudo pacman -S graphviz
usage: vba2graph.py [-h] [-o OUTPUT] [-c {0,1,2,3}] (-i INPUT | -f FILE)
optional arguments:
-h, --help 显示帮助信息并退出
-o OUTPUT, --output OUTPUT
输出文件夹(默认:"output")
-c {0,1,2,3}, --colors {0,1,2,3}
配色方案编号 [0, 1, 2, 3](默认:0 - 黑白)
-i INPUT, --input INPUT
olevba 生成的文件或 .bas 文件
-f FILE, --file FILE 包含宏的 Office 文件
请注意,在 Releases 中有一个 Python 2 版本,但已不再维护。
# 直接从包含宏的 Office 文件生成调用图 [感谢 @doomedraven]
python3 vba2graph.py -f malicious.doc -c 2
# 使用 olevba 生成 VBA 代码,然后通过管道传给 vba2graph
olevba3 malicious.doc | python3 vba2graph.py -c 1
# 从 VBA 代码生成调用图
python3 vba2graph.py -i vba_code.bas -o output_folder
你会在输出文件夹中得到 4 个子文件夹:
batch.sh 脚本文件用于在一个输入文件夹中对恶意文档运行 olevba 和 vba2graph。
会删除 output 目录,请谨慎使用。
本项目代码基于 EPL-2.0 许可 授权。
本项目使用了以下第三方开源工具和库,请留意它们各自的许可协议。