
Vba2Graph - VBAコードからコールグラフを生成し、悪意のあるドキュメントの解析を容易にします。
悪意のある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 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 セクションで入手可能ですが、サポートは終了しています。
# Officeファイルから直接コールグラフを生成 [tnx @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 License の下でライセンスされています。
このプロジェクトは以下のサードパーティ製オープンソースツールおよびライブラリを利用しています。 それぞれのライセンスを確認してください。