oletools を用いた Office 系ファイルの解析 (マクロの抽出)
CTF でたまに出題される Office 系ソフトのマクロの解析について覚え書き. Office 系のマクロが悪さした, というインシデントはニュースでよく見かけるので気になって調べた.
公式 GitHub を参照のこと
検証環境
- wsl2
- Ubuntu 24.02
インストール
- pip でインストール可能
pip install oletools
基本解析
- Microsfot OLE2 files (Word 等ファイル) についてマクロなどが含まれるかどうかの解析
oleid $FILE
- Indicator, Value, Risk, Description のフィールドでファイルフォーマットや VBA マクロの有無を判定してくれる
VBA ファイル (マクロのスクリプト) を抽出
olevba
を用いる
olevba $FILE --code
- 上記コードで標準出力に抽出された VBA スクリプトが流れるため, 適宜テキストファイルなどにリダイレクトしてあげることで VBA スクリプトを取得できる
- オプションは他にもあるが基本的にはマクロの解析が使用目的のメインになると思うのでこれだけ覚えておけば大丈夫そう