LoginSignup
2
1

More than 3 years have passed since last update.

Windows環境でのViperMonkeyインストールと使い方

Last updated at Posted at 2020-02-17

マクロ検体の解析に便利なツールの紹介です。
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コマンドの扱いにお気をつけください。
(共存している場合は、上記コマンドのpippip2に置き換える)

また、今回構築の際にはじめてChoclatelyを利用してみましたが、2.7/3.8共存環境が非常にシンプルに構築できて大変便利でしたのでぜひ使ってみてくださいませ!
下記の記事が大変わかりやすかったです。
https://qiita.com/segur/items/953abf91071632fdae4c

使い方

手元にあるPowerpointのマクロ検体で実行してみました。
vmonkey {filepath} で解析可能です。(簡単!)

動的解析の結果、この検体を実行すると下記のような動作を行うようです。
1)ファイルと閉じた時に動作開始
2)ping.exeのプロセス起動
3)レジストリのRunキーを登録

最終的に出力された↓の結果を確認してみると、一致していることがわかります。
image.png

ただ、他のpowloadやemotet検体で実行してみたのですがうまく読み取れないこともあるようです。
Powershell起動して外部通信で二次検体とりにいくはずですが↓読み取れていない。
image.png
(設定や必要なモジュールなどアドバイスありましたらいただけると幸いです!)

以上。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1