


?? 免責事項: このプロジェクトは教育およびセキュリティ研究目的専用です。作者は、このツールによって引き起こされた誤用、損害、または違法行為について一切の責任を負いません。明示的な許可を得た隔離されたラボ環境でのみ使用してください。
KillChain は、脆弱なカーネルドライバー(ProcessMonitorDriver.sys、CVE-2026-0828)を利用して、ユーザーモードから保護されたプロセスを終了させるツールです。カスタム IOCTL インターフェースを介してカーネルと通信し、標準的なプロセス保護メカニズムをバイパスします。
このツールはドライバーバイナリを実行可能ファイルに直接埋め込み、実行時に一時的な場所に抽出し、カーネルサービスとして登録し、NtLoadDriver を介してロードし、DeviceIoControl を通じて終了要求を送信します。
KillChain/
??? KillChain.cpp エントリポイント、CLI 引数解析、メインの終了ループ
??? LoadDriver.h ドライバー抽出、サービス登録、NtLoadDriver/NtUnloadDriver ロジック
??? Logger.h スレッドセーフなコンソール/ファイルログ(色分け出力付き)
??? driverBytes.h 埋め込みドライバーバイナリ(生のバイト配列)
ProcessMonitorDriver.sys (実行可能ファイル内に埋め込み)
??? IOCTL_KILL_PROCESS (0xB822200C) を公開 PID によるターゲットプロセスの終了
1. CLI 引数を解析
2. 埋め込み .sys を %TEMP%\EmbeddedDriverService.sys に抽出
3. レジストリサービスキーを作成 + SCM 経由で登録
4. NtLoadDriver を介してドライバーをカーネルにロード(SeLoadDriverPrivilege が必要)
5. デバイスハンドルを開く: \\.\STProcessMonitorDriver
6. ループ(最大 360 秒):
a. 毎回の反復で PID を名前から解決(--name 使用時)
b. ターゲット PID で IOCTL_KILL_PROCESS を送信
c. 2 回の正常終了後、必要に応じてレジストリ経由で Windows Defender を無効化
7. デバイスハンドルを閉じる; 必要に応じて --uninstall-driver クリーンアップを実行
SeLoadDriverPrivilege とレジストリアクセスに必要KillChain.sln を開くCtrl+Shift+B を押してビルド出力: x64\Release\KillChain.exe
KillChain.exe [options]
オプション:
--pid <PID> PID でプロセスを終了
--name <ProcessName> 実行可能ファイル名でプロセスを終了
--disable-defender Windows Defender もレジストリ経由で無効化
--log-level <0-3> ログの詳細レベル (0=エラーのみ, 1=通常, 2=詳細, 3=デバッグ)
--output <file> ログ出力をファイルに保存
--uninstall-driver ドライバーをアンロード、サービスとドライバーファイルを削除
--help このヘルプを表示
REM 名前で保護されたプロセスを終了
KillChain.exe --name MsMpEng.exe
REM 詳細ログをファイルに出力して PID で終了
KillChain.exe --pid 1234 --log-level 2 --output log.txt
REM プロセスを終了し、その後 Windows Defender を無効化
KillChain.exe --name notepad.exe --disable-defender
REM テスト後にドライバーをクリーンアップ
KillChain.exe --uninstall-driver
| 定数 | 値 |
|---|---|
IOCTL_KILL_PROCESS | 0xB822200C |
| フィールド | 型 | 説明 |
|---|---|---|
| 入力バッファ | ULONG64 | ターゲットプロセスの PID |
| 出力バッファ | DWORD | 未使用(ダミー) |
出力はスレッドセーフ(CRITICAL_SECTION でバックアップ)で、ANSI カラーでコンソールに書き込み、同時にログファイルにも書き込むことができます。
CVE-2026-0828 ProcessMonitorDriver.sys は、デバイスへのハンドルを持つ任意のユーザーモード呼び出し元が、標準的なアクセス制御チェックなしに任意のプロセス(保護されたシステムプロセスを含む)を終了できるようにする IOCTL を公開しています。
Eleven Red Pandas
このプロジェクトは教育および研究目的専用として提供されています。再配布または本番環境での使用は固く禁止されています。
| 機能 | 説明 |
|---|
| PID による終了 | カーネル IOCTL を介して数値 PID で任意のプロセスを終了 |
| 名前による終了 | 実行可能ファイル名でプロセスを解決して終了(毎回の反復で再チェック) |
| 永続ループ | 最大 360 秒間、ターゲットを継続的に監視して再終了 |
| Defender 無効化 | HKLM\SOFTWARE\Policies\Microsoft\Windows Defender に書き込み、リアルタイム保護を無効化 |
| 埋め込みドライバー | ドライバーバイナリは実行可能ファイルに組み込まれているため、外部の .sys ファイルは不要 |
| ドライバーアンインストール | カーネルからドライバーをアンロード、SCM サービスを削除、レジストリをクリーンアップ、一時ファイルを削除 |
| 設定可能なログ | 4 段階の詳細レベルとオプションのファイル出力 |
| デバイスパス |
\\.\STProcessMonitorDriver |
| レベル | 値 | 説明 |
|---|
LOG_ERROR | 0 | エラーのみ |
LOG_INFO | 1 | 通常の運用メッセージ (デフォルト) |
LOG_WARNING | 2 | 警告および情報メッセージ |
LOG_DEBUG | 3 | 完全なデバッグトレース |
| ステップ | Win32 / NT API |
|---|
| 一時ファイルに抽出 | CreateFile + WriteFile |
| サービス登録 | RegCreateKeyEx + CreateService (SCM) |
| カーネルにロード | NtLoadDriver (ntdll) |
| アクティブ確認 | EnumDeviceDrivers + GetDeviceDriverBaseName |
| カーネルからアンロード | NtUnloadDriver (ntdll) |
| サービス削除 | DeleteService (SCM) + RegDeleteTree |
| 一時ファイル削除 | DeleteFile |