VBoxCloak
マルウェアアナリストが、解析を回避しようとするマルウェアからVirtualBox Windows VMを隠すためのPowerShellスクリプトです。少なくとも数ポイントはpafishレーティングを下げることが保証されています ;)
このスクリプトは以下の処理を行います。
- マルウェアがVM検出に通常使用するレジストリキーの名前を変更します。
- VirtualBoxプロセス(VBoxServiceやVBoxTrayなど)を強制終了します。
- VirtualBoxドライバファイルを削除します(これらのドライバはメモリにロードされているため、VirtualBoxはクラッシュしません)。
- System32およびSysWOW64ディレクトリ内のVirtualBoxサポートファイルを削除または名前変更します。
詳細については、私のブログ記事をご覧ください:
https://securityliterate.com/hiding-virtual-machines-from-malware-introducing-vmwarecloak-vboxcloak/
注:このスクリプトはすべてのVM検出テクニックをカバーするわけではありません!VMを検出する方法は多数あり、その多くは単純なPowerShellスクリプトでは修正できません。例えば、RDTSCやタイミング検出などの手法はカバーされておらず、CPUID検出も対象外です。
Windows 7およびWindows 10でテスト済み。Windows XPやWindows 11でも動作する可能性があります。
バグを見つけましたか?お知らせください!
使用方法
- Windows VirtualBox VM上で、管理者としてVBoxCloak.ps1を実行するだけです。
- マルウェアを起動します。うまくいきます。
- 終了したら、VMをクリーンな状態に戻します。
使用例:
レジストリ変更、VBoxファイル削除、VBoxプロセス強制終了を行う場合:
レジストリ変更のみ行う場合:
VBoxファイル削除のみ行う場合:
VBoxプロセス強制終了のみ行う場合:
警告と免責事項
- このコードはベータ版です。より良いコードにできたとは思いますが、時には迅速で簡易な方法が最善です。
- 自己責任で使用してください!VM内でのみ使用し、ホストでは使用しないでください。
- 実行前にVMのスナップショットを必ず作成してください。
- 「files」や「procs」コマンドライン引数を使用すると、VMのパフォーマンスが低下する可能性があります。これは、グラフィックスやキーボード入力などのサポート機能に必要なファイルを削除するためです。問題が発生した場合は、VMをクリーンな状態に戻してください。