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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/mein-0/cve-2026-29923
特権昇格脆弱性分析エクスプロイトペネトレーションテスト学習と教育バイナリエクスプロイト
GitHubmein-0/cve-2026-29923

cve-2026-29923

CVE-2026-29923 の概念実証コード。カーネルドライバー pstrip64.sys におけるローカル特権昇格の脆弱性を利用します。IOCTL を介した物理メモリの読み書きプリミティブを用いて、Windows 上で非特権ユーザーから NT AUTHORITY\SYSTEM へ昇格することを示します。

リポジトリを見る
23ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-29923 — pstrip64.sys ローカル特権昇格

CVE-2026-29923 の最小限の概念実証です。これは pstrip64.sys カーネルドライバ(EnTech Taiwan PowerStrip ≤ 3.90.736)の脆弱性で、非特権ユーザーモードプロセスが NT AUTHORITY\SYSTEM に昇格できるものです。


バグ

pstrip64.sys は IOCTL(0x80002008)を公開しており、ユーザー提供の物理アドレスを受け取り、\Device\PhysicalMemory を開いて現在のプロセスハンドルで ZwMapViewOfSection を呼び出すことで、呼び出し元プロセスの仮想アドレス空間に直接マッピングします。特権チェックはなく、HalTranslateBusAddress が強制する以上のアドレス検証もなく、シンボリックリンク \\.\PSTRIP64 に対するアクセス制御もありません。

その結果、非特権プロセスから無制限の物理メモリ読み取り/書き込みプリミティブが獲得できます。


悪用

任意の物理読み取り/書き込みが可能になると、このエクスプロイトは次の4つの手順を踏みます。

1. EPROCESS 構造体のスキャン

物理 RAM を 2MB チャンク単位で走査します。各チャンクはカーネルプールタグ Proc(0x636F7250)についてスキャンされます。このタグはプロセスの _EPROCESS 構造体を含むプール割り当てを示します。候補のヒットは、PID を信頼する前に3つの軽量ヒューリスティックで検証されます。

  • PriorityClass == 0x2 — すべての稼働プロセスは Normal 優先度で実行されます
  • ProcessLock == 0x0 — 安定したプロセスではロックフィールドがクリアされています
  • ImageFileName[0] は印刷可能な ASCII — ガベージメモリがこれに適合することはほとんどありません

2. 両方のトークンポインタの特定

2つのターゲットが必要です:

  • 自プロセスの _EPROCESS 内にある Token フィールドの物理アドレス
  • System プロセス(PID 4)の _EPROCESS に保存されているトークン値

3. 自プロセストークンの上書き

自プロセスの Token フィールドが含まれる4KBページをマッピングし、そのフィールドを System トークン値で上書きします。この時点から、Windows カーネルは自プロセスを NT AUTHORITY\SYSTEM として扱います。

4. シェルの起動

CreateProcessA を介して cmd.exe を起動します。子プロセスは親のトークンを継承するため、結果として得られるシェルは SYSTEM として実行されます。


MMIO に関する注意事項

x86 システムでは、3GB~4GB の物理アドレス範囲は MMIO 用に予約されています。この範囲内のページをマッピングしようとすると、ドライバはエラー 74(HalTranslateBusAddress の失敗)を返します。スキャンはこの範囲をスキップし、0x100000000 から再開して、Windows が4GB を超えて配置するカーネル構造体を捕捉します。


32ビット要件

ドライバのマップハンドラは、返された仮想アドレスを DWORD フィールド(LowPart)に書き込むため、64ビットの VA が32ビットに切り詰められます。64ビットビルドは破損したポインタを受け取り、即座にクラッシュします。x86 としてコンパイルしてください。


影響を受けるソフトウェア

ソフトウェアバージョン
EnTech Taiwan PowerStrip≤ 3.90.736

ドライバ ハッシュ(SHA-256):

root@kitploit:~
ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e

EPROCESS オフセット

ハードコードされたオフセットは Windows 10 22H2 x64 を対象としています。他のビルドでは更新された値が必要です — WinDbg で dt nt!_EPROCESS を使用して確認してください。


ビルド

Visual Studio の x86 開発者コマンド プロンプトを開き、次のコマンドを実行します。

root@kitploit:~
cl /EHsc /O2 exploit.c /Fe:poc.exe

または、Visual Studio でプラットフォームターゲットを x86 に設定し、Release モードでビルドします。このバイナリは Windows SDK 以外の外部依存関係は必要ありません。


使用方法

最初に pstrip64.sys をロードします(ドライバのロードには管理者権限が必要ですが、ロード後のエクスプロイト自体の実行には管理者権限は不要)。その後、次のコマンドを実行します。

root@kitploit:~
poc.exe

NT AUTHORITY\SYSTEM として実行される新しい cmd.exe ウィンドウが開きます。


緩和策

ドライバのロードをブロック(推奨)

  • 上記のドライバハッシュを組織のブロックリストに追加する
  • WDAC 経由で Microsoft の脆弱なドライバブロックリスト を有効にする
  • Hypervisor-Protected Code Integrity (HVCI) を有効にする

進行中の悪用を検出

  • 未知のドライババイナリに対する新しいカーネルモードサービスのインストールを警告する
  • 低/中整合性プロセスが SYSTEM レベルの子プロセスを生成するのを監視する
  • 正当な認証イベント以外でトークンが NT AUTHORITY\SYSTEM に変更されたプロセスをフラグする

免責事項

このコードは教育および防御研究目的でのみ公開されています。所有しているシステム、または明示的な書面によるテスト許可を得たシステムでのみ使用してください。著者は誤用について一切責任を負いません。


参考資料

  • Microsoft 脆弱なドライバブロックリスト
  • WDAC 概要
  • Windows EPROCESS 内部
  • HalTranslateBusAddress — MSDN
  • ZwMapViewOfSection — MSDN
ツールをダウンロード
フィールドオフセット
PriorityClass0x5B7
ProcessLock0x438
UniqueProcessId0x440
ImageFileName0x5A8
Token0x4B8