WMEye
WMEye は、Windows WMI について調査する過程で開発された実験的なツールです。このツールは、WMI とリモート MSBuild 実行を使用した横方向移動(Lateral Movement)のために開発されました。エンコード/暗号化されたシェルコードをリモートターゲットの WMI クラスプロパティにアップロードし、トリガーされると LogFileEventConsumer という特殊な WMI クラスを使用して MSBuild ベースのペイロードを書き込むイベントフィルターを作成し、最後にリモートでペイロードを実行します。
ユースケース
WMI を使用したファイルレス横方向移動。Cobalt Strike の Execute-Assembly と併用可能。
注記: これはまだ実験段階であり、実際のエンゲージメントで使用できる段階にはほど遠いです。
プレビュー

現在の動作
- リモート WMI クラスを作成
- 上記で作成した偽の WMI クラスのプロパティ値としてシェルコードを書き込む
- powershell.exe プロセスの作成をトリガーとする WMI イベントフィルターを作成
- イベントトリガー時に、LogFileEventConsumer(ログファイルを書き込むための WMI コンシューマ型)を使用してリモートシステムに MSBuild ペイロードをアップロード
- 最後に
Win32_Process Create を呼び出してリモートで MSBuild を実行
MSBuild ペイロードは、WMI クラスプロパティからエンコードされたシェルコードを取得し、デコードして実行します。
今後の機能
- WIN32_Process Create による起動方法をより良いものに置き換える
- シェルコードと XML ファイルのバイトに GZIP 圧縮を追加
- NTLM PTH サポートを追加
- LogFileEventConsumer が MSBuild ペイロードの書き込みを完了した後にイベントフィルターを削除するクリーンアップ機能を追加
このプロジェクトのユニークな点は?
- エンコード/暗号化されたシェルコードをリモートマシンの作成された偽のクラスの WMI プロパティにアップロード(既存のクラスのプロパティにシェルコードを書き込むように調整できる可能性あり)
- win32_process Create を使用して PowerShell.exe を起動する代わりに、LogFileEventConsumer を使用して MSBuild ファイルをアップロード
クレジット
https://www.fireeye.de/content/dam/fireeye-www/global/en/current-threats/pdfs/wp-windows-management-instrumentation.pdf