
カーネルモードのプロセス終了ツール。署名済みBYOVDドライバを使用。すべてのWindows 10/11で動作。オフセット不要、PDB不要。Rust製。
クロスバージョンのWindowsプロセス終了ツール。署名済みのHONORカーネルドライバ(MonProcessEX.sys)をロードし、各対象プロセスのPIDを解決し、単一のIOCTLを通じてカーネルコンテキストから終了させる。カーネルオフセット不要、PDBダウンロード不要、ビルド固有のシェルコード不要 — この手法はすべてのWindows 10およびWindows 11ビルドで同一に動作する。
このツールは単一の自己完結型実行ファイルである。Service Control Managerを通じてドライバをインストールし、キルを実行し、その後サービスを停止・削除するため、永続的な痕跡を残さない。対象は実行時に設定ファイル、コマンドライン、または組み込みのデフォルトを通じて設定可能である。
設計によるクロスバージョン対応。 1つのドライバ、1つのIOCTL、1つのキルプリミティブ。すべてのWindows 10およびWindows 11ビルドで動作する。
1. Keep moncrush.exe and MonProcessEX.sys in the same folder.
2. Run from an elevated shell.
moncrush.exe -n "notepad.exe,calc.exe"
3. Targets die. Driver unloads itself. Done.
ツールチェーン不要、オフセット不要、ビルド手順不要。
| 機能 | 詳細 |
|---|---|
| クロスバージョン | すべてのWindows 10およびWindows 11ビルドで動作、オフセット不要 |
| カーネルモードキル | ドライバがカーネルコンテキストからPIDを終了させる |
| PPLバイパス | MonProcessEX.sysのキルパスが保護プロセスチェックをバイパスする |
| 署名済みドライバ | MonProcessEX.sysは実際の署名済みHONORドライバ |
| MSブロックルールに含まれない | Microsoftの脆弱なドライバブロックルールに存在しない |
| 自己完結 | ドライバはSCM経由でインストール、起動、クリーンアップされる |
| 依存関係ゼロ | 静的Rustバイナリ。exe + ドライバを配置して実行するだけ |
| 設定可能 | targets.confまたは-n、再コンパイル不要 |
| 難読化 | デバイスパスと対象リストは保存時に暗号化される |
| 単一実行ファイル | 1つのバイナリ。シェルからはコンソール出力、ダブルクリック時はサイレント |
| ドライランモード | 実行前にターゲットとPIDを列挙する |
| ジッター付きループ | --repeatでランダム化された間隔で再チェックする |
| 終了コード + JSON | C2フレンドリーな自動化インターフェース |
+-------------------------------------------------------------------------------------------+
| USER MODE |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | enumerate all | | resolve target | | match against | |
| | running | -> | PID via process | -> | target list, | |
| | processes | | entry | | collect PIDs | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| output = termination status v |
+-------------------------------------------------------------------------------------------+
| KERNEL MODE |
| |
| MonProcessEX.sys signed HONOR kernel driver |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> PID termination dispatch | |
| | | | |
| | | kernel-mode process lookup | |
| | v | |
| | EPROCESS located -> terminated from kernel context | |
| | | | |
| | v | |
| | process exit path invoked | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| CLEANUP |
| +---------------------------------------------------------------------------------+ |
| | SCM service stopped and deleted | |
| | driver unloaded, no persistent artifact | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
ドライバはPIDを指定してプロセスを終了させるキルIOCTLを公開する。ユーザーモードコンポーネントは実行中のプロセスを列挙し、各ターゲットのPIDを解決し、デバイスインターフェースを通じて送信する。ユーザーモードからカーネル構造体に触れることはないため、この手法はWindowsバージョンの変更に対して免疫がある。
cargo build --release --target x86_64-pc-windows-gnu
リリースプロファイルはLTOと単一のコード生成ユニットを有効にする。プロジェクトは独自の[workspace]宣言を持つ自己完結型である。
moncrush.exe [options]
-s, --silent suppress all console output
-r, --repeat keep running, re-check targets
-d, --dry-run enumerate targets without killing
-j, --json machine-readable JSON output
-l, --list print target names and exit
-v, --version print version and exit
-x, --self-destruct delete self after successful run
--no-check skip VM and debugger checks
--delay <ms> sleep before executing
--jitter <ms> randomize repeat interval
--max-attempts <n> stop after n kill passes (0=infinite)
--svc <name> custom service name
--driver <path> custom driver file path
-n, --names <csv> comma-separated target list override
-c, --config <path> load targets from config file
-h, --help show this help
終了コード: 0 正常、2 ターゲットなし、3 ドライバ失敗、5 環境中断。ターゲット解決順序: --names > --config > targets.conf(ディスク) > 組み込みデフォルト。
--no-checkでバイパスする。--delay <ms>は何かを行う前にスリープし、初期実行との時間的相関を断ち切る。-xは成功した実行後に実行ファイルを削除し、そのPrefetchエントリを消去する。対象リストは再コンパイルなしで完全に設定可能である:
設定ファイル。 実行ファイルの隣にtargets.confを配置し、1行に1つのプロセス名を記述する。#で始まる行は無視される:
MsMpEng.exe
csfalconservice.exe
SentinelAgent.exe
cortex_agent.exe
テンプレートはtargets.example.confとして同梱されている。
コマンドライン。 moncrush.exe -n "MsMpEng.exe,csfalconservice.exe"
組み込みデフォルト。 設定もフラグもない場合、組み込みセットは以下の通り: