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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/enessakircolak/cve-2025-7771
特権昇格脆弱性分析エクスプロイトIDS/IPS回避ペネトレーションテストレッドチーミング
GitHubenessakircolak/cve-2025-7771

CVE-2025-7771

ThrottleStop.sys 任意物理メモリ読み書き

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-7771 — ThrottleStop.sys 任意物理メモリの読み書き(R/W)

TechPowerUp ThrottleStop.sys ドライバ(CVE-2025-7771)向けの完全な概念実証(PoC)です。 署名済みで今もロード可能なカーネルドライバが、2つのIOCTLを通じて検証されていない物理メモリの読み書きを公開しています。 このリポジトリは、そのプリミティブを実用的な管理者からSYSTEMへのローカル権限昇格に変換し、ほとんどのパス・ファイル名ベースの検知を無効化するデバイス命名の癖を文書化しています。

同じIOCTLに対するPoCは既に存在していました(クレジット参照)。これはプリミティブのデモではなく、独立した完全なエクスプロイトチェーンです。

影響を受けるドライバ

フィールド値
SHA25616F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
SHA182ED942A52CDCF120A8919730E00BA37619661A3
MD56BC8E3505D9F51368DDF323ACB6ABC49
バージョン3.0.0.0 ("Low-Level Driver", 2004-2020)
署名者TechPowerUp LLC、DigiCert EV Code Signing
証明書の拇印524EDA9C819321C66E22C7BABEB23DAEAFFB2182
証明書の有効期間2019-08-10 から 2022-06-15

証明書は2022年に失効しましたが、署名には信頼されたカウンター署名タイムスタンプが含まれているため、Windowsは今でもこれをロードします。失効が有効なのは、その日付が署名時刻より前である場合だけであり、このような古いドライバではめったにありません。

バージョンリソースには CompanyName、OriginalFilename、InternalName がなく、そのためこのファイルをメタデータだけからベンダーに帰属させることはできません。

バグ

2つのIOCTLは、境界やアドレスの検証なしに物理メモリを読み書きします:

IOCTL操作
0x80006498物理読み取り
0x8000649C物理書き込み

どちらも METHOD_BUFFERED であるため、ユーザーポインタの逆参照はありません。欠陥は、呼び出し元が指定した物理アドレスの検証が欠落していることであり、未チェックのポインタではありません。

指摘に値する点:書き込みハンドラ 0x8000649C は FILE_READ_ACCESS として宣言されています。読み取り専用で開かれたハンドルでも物理書き込みを発行できるため、宣言されたアクセスマスクはハンドラが実際に行う処理と一致しません。

影響

デバイスを開くには管理者権限が必要なため、これ自体は権限境界の越境ではありません。すでに管理者である攻撃者に与えるものは、ユーザーモードからの任意のカーネル読み書きであり、管理者より上の階層で機能するはずの保護、すなわちHVCIコード整合性、PPL、EDR/AV自己保護を無効化します。典型的なBYOVD(Bring Your Own Vulnerable Driver)です。

具体的なデモとして、PoCは読み書きプリミティブを使用してSYSTEMトークンを窃取し、SYSTEMシェルを起動します。

CVSS 4.0: AV:L/AC:H/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H(8.7、High)。

エクスプロイトの仕組み

すべてはユーザーモードからドライバの物理読み書きIOCTLに対して実行されます。ページテーブルウォークもCR3の関与もありません。両方のプロセスは物理メモリを直接スキャンして特定されます:

  1. SYSTEMの特定。 ImageFileName が System で UniqueProcessId が4であるEPROCESSを物理メモリからスキャンします。スキャン範囲は、推測したウィンドウではなく、ファームウェアの HARDWARE\RESOURCEMAP\...\Physical Memory レジストリキーから読み取った実装済みRAM範囲に限定されるため、MMIOホールに触れることはなく、搭載RAMより上の領域を見逃すこともありません。
  2. SYSTEMトークンの読み取り。 特定したEPROCESSから Token フィールド(EPROC_TOKEN)を読み取ります。
  3. 自身のプロセスの特定。 同じ方法で物理メモリをスキャンしてPoC自身のEPROCESSを見つけ、イメージ名を8バイトパターンとして照合し、PIDで確認します。
  4. トークンの交換。 SYSTEMトークンの値を自身の Token スロットに書き込みます。トークンは _EX_FAST_REF であるため、デフォルトでは下位の参照カウントビットがマスクされます(--mask でこの動作を選択します)。
  5. 実証。 cmd.exe を起動します。whoami は NT AUTHORITY\SYSTEM を返します。

オフセット(EPROC_TOKEN、EPROC_PID、EPROC_IMG_NAME など)は特定のビルド向けであり、対象のWindowsバージョンで dt nt!_EPROCESS と照合して確認する必要があります。

実行ファイル名が重要です。ステップ3では物理メモリ内の ImageFileName を照合して自身のプロセスを特定しますが、このフィールドは15文字に制限され、スキャンは最初の8文字を照合します。コンパイル後の名前は短く、特徴的なものにしてください。バイナリをリネームする場合はこの制限内に収めてください。そうしないと自己スキャンがプロセスを見つけられません。

デバイス名は攻撃者が制御できる

このドライバは固定のデバイス名を使用しません。デバイスオブジェクト名は、登録されているサービス名から派生します。ディスク上のファイル名は無関係です。バイナリをサービス TRIXX として登録すると、ファイルがディスク上でどのような名前でも \\.\TRIXX が生成されます。

したがって、\Device\ThrottleStop や ThrottleStop.sys に基づく検知は簡単に迂回されます。検知はファイルハッシュまたは署名証明書に基づく必要があります:

root@kitploit:~
SHA256:     16F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
Thumbprint: 524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Subject:    CN=TechPowerUp LLC, O=TechPowerUp LLC, L=Spokane, S=Washington, C=US

ソース内の DEVICE_NAMES リストは、既知の製品インストールを調べるためのプローブにすぎません。デバイス名を引数として渡すと、自分で登録したサービスを対象にできます。

関連するTechPowerUpドライバ

CVEドライバ
CVE-2019-7245GPU-Z.sys
CVE-2025-5324GPU-Z.sys
CVE-2025-7771ThrottleStop.sys(このリポジトリ)

ドライバは含まれていません

バイナリはここには含まれていません。入手したコピーは上記のSHA256で検証してください。このサンプルは LOLDrivers に収録されています。

ビルド

root@kitploit:~
cl /nologo /EHsc /W4 /O2 src\ThrottleStop.cpp /Fe:myLittleLpe.exe /link advapi32.lib

使用方法

実験室での使用のみ。ロールバック用のスナップショットを用意した隔離されたVM内で実行してください。

root@kitploit:~
sc.exe create <name> type= kernel binPath= C:\path\to\ThrottleStop.sys
sc.exe start <name>

myLittleLpe.exe

sc.exe stop <name>
sc.exe delete <name>

このバイナリは引数を取りません。物理メモリマップを表示し、SYSTEMとローカルのEPROCESSをスキャンして、トークンを交換し、NT AUTHORITY\SYSTEM として動作する cmd.exe を起動します。

デモ

myLittleLpe.exe の実行例:物理メモリマップ、EPROCESSスキャン、トークン交換、SYSTEMシェル

その他のPoCと先行研究

同じドライバに関する他の公開成果(比較用):

  • Demoo1337/ThrottleStop — 同じIOCTL向けの初期のPoC
  • xM0kht4r/CVE-2025-7771 — Superfetchを介した物理読み書き+VAからPAへの変換
  • AmrHuss/throttlestop-exploit-rw — Superfetchアドレス変換を用いた物理読み書き
  • v31l0x1/ThrottleStopPPL — PPL保護のバイパス
  • Yuri08loveElaina/CVE-2025-7771 — 別の実装

クレジット

  • LOLDrivers — 脆弱ドライバのカタログ化

免責事項

防御的研究および検知エンジニアリングのために公開されています。この脆弱性はCVE-2025-7771としてすでに公開されています。ここに記載されたすべては作者が所有するシステムでテスト済みです。所有していない、またはテストを許可されていないシステムに対してこれを実行しないでください。

ツールをダウンロード