
カーネルモードのプロセス終了ツール。署名済みBYOVDドライバを使用。すべてのWindows 10/11で動作。オフセット不要、PDB不要。Rust製。
クロスバージョン対応のWindowsプロセスターミネーター。署名済みのHONOR
カーネルドライバ(MonProcessEX.sys)を読み込み、すべての対象プロセスの
PIDを解決し、単一のIOCTLを通じてカーネルコンテキストからプロセスを終了させます。
カーネルオフセット不要、PDBダウンロード不要、ビルド固有のシェルコード不要 -
この手法はすべてのWindows 10およびWindows 11ビルドで同一に動作します。
このツールは単一の自己完結型実行ファイルです。サービスコントロールマネージャーを 通じてドライバをインストールし、キルを実行した後、サービスを停止・削除して、 永続的な痕跡を残しません。対象は設定ファイル、コマンドライン、または組み込みの デフォルト値を通じて実行時に設定可能です。
設計上クロスバージョン対応。 1つのドライバ、1つのIOCTL、1つのキル プリミティブ。すべてのWindows 10およびWindows 11ビルドで動作します。
1. moncrush.exe と MonProcessEX.sys を同じフォルダに置きます。
2. 昇格したシェルから実行します。
moncrush.exe -n "notepad.exe,calc.exe"
3. 対象が終了します。ドライバは自動的にアンロードされます。完了です。
ツールチェーン不要、オフセット不要、ビルドステップ不要。
+-------------------------------------------------------------------------------------------+
| ユーザーモード |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | 実行中の全 | | プロセスエントリ | | 対象リストと | |
| | プロセスを列挙 | -> | から対象のPIDを | -> | 照合し、PIDを | |
| | | | 解決 | | 収集 | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| output = 終了ステータス v |
+-------------------------------------------------------------------------------------------+
| カーネルモード |
| |
| MonProcessEX.sys 署名済みHONORカーネルドライバ |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> PID終了ディスパッチ | |
| | | | |
| | | カーネルモードプロセスルックアップ | |
| | v | |
| | EPROCESS を特定 -> カーネルコンテキストから終了 | |
| | | | |
| | v | |
| | プロセス終了パスを呼び出し | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| クリーンアップ |
| +---------------------------------------------------------------------------------+ |
| | SCMサービスを停止・削除 | |
| | ドライバをアンロード、永続的な痕跡なし | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
ドライバは、PIDが与えられたプロセスを終了するキルIOCTLを公開します。 ユーザーモードコンポーネントは実行中のプロセスを列挙し、各対象のPIDを 解決して、デバイスインターフェースを通じて送信します。ユーザーモードから カーネル構造には一切触れないため、この手法はWindowsのバージョン変更の影響を 受けません。
cargo build --release --target x86_64-pc-windows-gnu
リリースプロファイルはLTOと単一コード生成ユニットを有効にします。このプロジェクトは
独自の [workspace] 宣言を持つ自己完結型です。
moncrush.exe [options]
-s, --silent すべてのコンソール出力を抑制
-r, --repeat 実行を継続し、ターゲットを再チェック
-d, --dry-run 終了せずにターゲットを列挙
-j, --json 機械可読なJSON出力
-l, --list ターゲット名を表示して終了
-v, --version バージョンを表示して終了
-x, --self-destruct 成功後に自身を削除
--no-check VMおよびデバッガチェックをスキップ
--delay <ms> 実行前にスリープ
--jitter <ms> 繰り返し間隔をランダム化
--max-attempts <n> n回のキルパス後に停止(0=無限)
--svc <name> カスタムサービス名
--driver <path> カスタムドライバファイルパス
-n, --names <csv> カンマ区切りのターゲットリスト上書き
-c, --config <path> 設定ファイルからターゲットを読み込み
-h, --help このヘルプを表示
終了コード: 0 正常、2 ターゲットなし、3 ドライバ失敗、5 環境
アボート。ターゲット解決順序: --names > --config > targets.conf
(ディスク) > 組み込みデフォルト。
--no-check でバイパスします。--delay <ms> は何かを行う前にスリープし、
初期実行との時間的相関を断ち切ります。-x は成功後に実行ファイルを削除し、そのPrefetch
エントリを消去します。ターゲットリストは再コンパイルなしで完全に設定可能です:
設定ファイル。 実行ファイルの隣に targets.conf を置きます。各行に
プロセス名を1つ記述します。# で始まる行は無視されます:
MsMpEng.exe
csfalconservice.exe
SentinelAgent.exe
cortex_agent.exe
テンプレートは targets.example.conf として同梱されています。
コマンドライン。 moncrush.exe -n "MsMpEng.exe,csfalconservice.exe"
組み込みデフォルト。 設定もフラグもない場合、組み込みセットは:
MIT。 LICENSE を参照してください。
このプロジェクトは研究および許可されたテストのみを目的として公開されています。 所有していないシステムに未署名または脆弱なドライバを読み込むことは、ほとんどの 法域で違法です。適用されるすべての法律およびテスト対象システムの許可範囲への 準拠は、利用者の責任です。
| 機能 | 詳細 |
|---|
| クロスバージョン | すべてのWindows 10およびWindows 11ビルドで動作、オフセット不要 |
| カーネルモードキル | ドライバがカーネルコンテキストからPIDを終了 |
| PPLバイパス | MonProcessEX.sys のキルパスが保護プロセスチェックをバイパス |
| 署名済みドライバ | MonProcessEX.sys は実際の署名済みHONORドライバ |
| MSブロックルール非該当 | Microsoftの脆弱ドライバブロックルールに含まれない |
| 自己完結型 | SCM経由でドライバをインストール、起動、クリーンアップ |
| 依存関係ゼロ | 静的Rustバイナリ。exe + ドライバを置いて実行するだけ |
| 設定可能 | targets.conf または -n、再コンパイル不要 |
| 難読化 | デバイスパスと対象リストは保存時に暗号化 |
| 単一実行ファイル | 1つのバイナリ。シェルからはコンソール出力、ダブルクリック時はサイレント |
| ドライラン モード | 実行前にターゲットとPIDを列挙 |
| ジッター付きループ | --repeat でランダム間隔による再チェック |
| 終了コード + JSON | C2フレンドリーな自動化インターフェース |