
ゲストVMのロックを解除するDLLインジェクションツール
V M I n j e c t o r
(c) 2012 by Marco Batista
<marco.batista [at] secforce.com>
Licensed under GPLv3 (see LICENSE file)
VMInjector は、VMware Workstation/Player 上で動作する主要なオペレーティングシステムの OS ログイン認証画面を、直接メモリ操作によってバイパスするために設計されたツールです。
VMInjector は、VMware ゲストのメモリを操作して OS の認証画面をバイパスするツールです。 VMware は、ゲスト OS に割り当てられたリソース (RAM メモリを含む) を管理します。VMInjector は、VMware プロセスに DLL ライブラリを注入し、マッピングされたリソースへのアクセスを取得します。DLL ライブラリは、VMware プロセスが所有するメモリ空間を解析し、ゲストの RAM イメージに対応するメモリマップド RAM ファイルを特定します。割り当てられた RAM ファイルを操作し、認証を担当する関数にパッチを適用することで、攻撃者は基盤となる仮想ホストへの不正アクセスを取得します。 VMInjector は現在、ロックされた Windows、Ubuntu、Mac OS X オペレーティングシステムをバイパスできます。 メモリ内パッチは非永続的であり、ゲスト仮想マシンを再起動すると、通常のパスワード機能が復元されます。
VMInjector は、仮想ホストのパスワードを忘れてリセットが必要な場合に使用できます。 最も一般的には、このツールはペネトレーションテスト中に使用され、VMware ホストへのアクセスを取得し、攻撃者がそのホスト上で実行されているゲストへの追加アクセスを狙う場合に使用されます。
Windows マシン (管理者アクセス権付き); VMware workstation または player エディション; ロックされたゲスト VM;
VMInjector は 2 つの部分で構成されています: DLL 注入アプリケーション (Python スクリプトまたは提供される変換済み実行ファイル) DLL ライブラリ (x86 および x64)
このツールは、両方の DLL を提供することで x86 および x64 の両方のビットアーキテクチャをサポートします。独自の DLL インジェクタを使用して、ホスト上で実行されているゲスト仮想マシンを選択することもできます。
ツールを実行するには、コマンドラインから提供されている VMInjector (32 または 64) 実行ファイルを実行します。 VMWare は各ゲストを別々のプロセスで実行します。VMInjector は、バイパスが必要なゲストを実行しているプロセスを指定する必要があります。ユーザーがプロセスを選択すると、選択したターゲットに DLL が注入されます。 DLL が注入されると、ユーザーは OS を指定する必要があり、メモリパッチを実行できます。
このツールは法的な目的のみを対象としています。コードは GPLv3 ライセンスの下で公開されています。
2006 年にゲスト仮想マシンへのシェルコード注入に関する貴重な研究をしてくださった Michael Ligh 氏に感謝いたします。
また、IEEE 1394 FireWire のトリックを使用してロックされた Windows、Ubuntu、OS X マシンをロック解除できるツールである Inception の研究について、Carsten Maartmann-Moe 氏にも感謝いたします。これは、(現在は廃止された) winlockpwn ツールによって最初に紹介されました。