
frida-wshookは、WScript/CScriptで実行される悪意のあるスクリプトファイルでよく使われる一般的な関数をフックするためにfrida.reを使用する分析・インストルメンテーションツールです。
このツールはWindows API関数をインターセプトし、対象のスクリプト言語内で関数スタブやプロキシを実装しません。これにより、以下のような複数のスクリプトタイプの分析をサポートできます:
デフォルトでは、スクリプトファイルはcscript.exeで実行され、以下を出力します:
警告!!! 悪意のあるスクリプトは専用の分析システムで実行してください。 理想的には、スナップショット付きのVMを使用し、スクリプトが制御不能になった場合にリセットできるようにしてください。
一般的なメソッドはフックされていますが、Windowsはネットワーク、ファイルシステム、コマンド実行とやり取りするための多数のAPIを提供しています。そのため、これらの機能に珍しいAPIを利用するスクリプトに遭遇する可能性は十分にあります。
pip install frida
frida-wshookはWindows 10およびWindows 7でテストされており、通常は Windows 7以降の環境で動作します。x64システムではCScriptはC:\Windows\SysWow64ディレクトリからロードされます。
WindowsXPでも動作する可能性はありますが、CScriptがレガシーAPI呼び出しを使用してインストルメンテーションをバイパスする可能性があると考えています。
このスクリプトは、スクリプトホストが呼び出せるAPIを制御できるいくつかのオプションのコマンドライン引数をサポートしています。
usage: frida-wshook.py [-h] [--debug] [--disable_dns] [--disable_com_init]
[--enable_shell] [--disable_net]
script
frida-wshook.py your friendly WSH Hooker
positional arguments:
script Path to target .js/.vbs file
optional arguments:
-h, --help show this help message and exit
--debug Output debug info
--disable_dns Disable DNS Requests
--disable_com_init Disable COM Object Id Lookup
--enable_shell Enable Shell Commands
--disable_net Disable Network Requests
デフォルトパラメータでスクリプトを分析:
python wshook.py bad.js
詳細デバッグを有効化:
python wshook.py --debug bad.js
シェル(実行)コマンドを有効化:
python frida-wshook.py --enable_shell bad.vbs
WSASendを無効化:
python frida-wshook.py --disable_net bad.vbs
スクリプトが使用するProgIdを確認:
python frida-wshook.py --disable_com_init bad.vbs