マクロ検体の解析に便利なツールの紹介です。
ViperMonkeyはPythonベースのエミュレータで、マクロ検体を放り込んで動きをつかむことができます。
環境構成
仮想環境:VMware fusion
ゲストOS:Windows 10 Pro
→以降のインストール手順についてはWindowsをベースにしたものになります。
インストール手順
Github公式のReadmeの手順を参考にインストールします。
基本的に手順の通りで問題ないかと思うのですが、若干詰まったところがありましたので同様の事象の方は参考にしてください。
なお、公式ReadmeではPythonインストールについて2通りの手順が記載されていますので2通り紹介します。
方法①PyPyを利用したインストール(公式推奨)
PyPyを利用した方が高速で解析できるため公式推奨されているようです。
構築手順
1.Pypyインストール
こちらのURLよりPyPyをダウンロード
2.Pipのインストールと最新化
pipの有無確認
pypy -m pip
(pipがない場合、インストール)
pypy -m ensurepip
pip最新化
pypy -m pip install -U pip
3.レポジトリの取得
4.依存関係の確認
pypy -m pip install -U -r requirements.txt
5.起動
下記コマンドで実行できることを確認
pypy vmonkey.py
pypy版 構築のポイント
Pypyの環境変数追加
通常のCpython等と同じように、コマンドプロンプトから直接呼び出すためには環境変数に追加する必要があります。
環境変数の追加手順についてはググってくださいませ;;
VC runtime libraryのインストール
下記2つのライブラリが入っていないと動かないかも。
https://www.microsoft.com/ja-JP/download/details.aspx?id=52685
https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266
ERROR: Failed building wheel for cryptographyのエラー
下記のようなエラーが出る場合、多くの場合pipを最新化することで解決するようです。
ERROR: Failed building wheel for cryptography
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
方法②CPython(一般的なPython)を利用したインストール
構築手順
1.Python2.7のインストール
下記サイトよりダウンロードできます。
https://www.python.org/downloads/
2.pipが最新版であることの確認
pip install -U pip
3.ViperMonkeyパッケージのインストール
pip install -U pip
4.起動
vmonkey
構築のポイント
すでにPython 3.8を利用している方が多いのではないかと思います。
追加で2.7をインストールして共存する場合が多いと思いますのでpipコマンドの扱いにお気をつけください。
(共存している場合は、上記コマンドのpip
をpip2
に置き換える)
また、今回構築の際にはじめてChoclatelyを利用してみましたが、2.7/3.8共存環境が非常にシンプルに構築できて大変便利でしたのでぜひ使ってみてくださいませ!
下記の記事が大変わかりやすかったです。
https://qiita.com/segur/items/953abf91071632fdae4c
使い方
手元にあるPowerpointのマクロ検体で実行してみました。
vmonkey {filepath}
で解析可能です。(簡単!)
動的解析の結果、この検体を実行すると下記のような動作を行うようです。
1)ファイルと閉じた時に動作開始
2)ping.exeのプロセス起動
3)レジストリのRunキーを登録
最終的に出力された↓の結果を確認してみると、一致していることがわかります。
ただ、他のpowloadやemotet検体で実行してみたのですがうまく読み取れないこともあるようです。
Powershell起動して外部通信で二次検体とりにいくはずですが↓読み取れていない。
(設定や必要なモジュールなどアドバイスありましたらいただけると幸いです!)
以上。