
Vba2Graph - Создание графов вызовов из кода VBA для упрощения анализа вредоносных документов.
Инструмент для исследователей безопасности, которые тратят своё время на анализ вредоносных макросов Office.
Генерирует граф вызовов VBA с подсветкой потенциально вредоносных ключевых слов.
Позволяет быстро анализировать вредоносные макросы и легко понимать поток выполнения.
✓ Довольно быстро
✓ Хорошо работает с большинством вредоносных макросов, встречающихся в реальных условиях
✗ Статический (динамически разрешаемые вызовы не распознаются)
Пример 1:
Trickbot downloader — использует событие изменения размера объекта (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 show this help message and exit
-o OUTPUT, --output OUTPUT
output folder (default: "output")
-c {0,1,2,3}, --colors {0,1,2,3}
color scheme number [0, 1, 2, 3] (default: 0 - B&W)
-i INPUT, --input INPUT
olevba generated file or .bas file
-f FILE, --file FILE Office file with macros
Обратите внимание, что сборка под Python 2 доступна в разделе Releases, но больше не поддерживается.
# Generate call graph directly from an Office file with macros [tnx @doomedraven]
python3 vba2graph.py -f malicious.doc -c 2
# Generate vba code using olevba then pipe it to vba2graph
olevba3 malicious.doc | python3 vba2graph.py -c 1
# Generate call graph from VBA code
python3 vba2graph.py -i vba_code.bas -o output_folder
В вашей выходной папке появятся 4 папки:
Скрипт batch.sh прилагается для запуска olevba и vba2graph на папке с вредоносными документами.
Удаляет директорию output. Используйте с осторожностью.
Код этого проекта распространяется по лицензии EPL-2.0.
Этот проект использует следующие сторонние инструменты и библиотеки с открытым исходным кодом. Обратите внимание на соответствующие лицензии.