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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-1732 — Windows カーネルエクスプロイト CVE-2021-1732 向け。win32kfull.sys の use-after-free 脆弱性であり、細工されたウィンドウ作成とコールバック操作を通じてローカル権限昇格を可能にする。 | Kitploit
ツール/GitHubGitHub/beneficialcode/cve-2021-1732
特権昇格脆弱性分析エクスプロイトバイナリエクスプロイト
GitHubbeneficialcode/cve-2021-1732

CVE-2021-1732

Windows カーネルエクスプロイト CVE-2021-1732 向け。win32kfull.sys の use-after-free 脆弱性であり、細工されたウィンドウ作成とコールバック操作を通じてローカル権限昇格を可能にする。

リポジトリを見る
114年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2021-1732

  • 脆弱性は、Windows グラフィックドライバの win32kfull!NtUserCreateWindowEx 関数における、カーネルコールバックによるユーザーモードメモリ割り当てと tagWND->flag 属性設定の同期ずれに起因します。これにより、tagWND->offset 値を偽装してメモリ境界外アクセスが可能になります。
  • ドライバ win32kfull.sys が NtUserCreateWindowEx を呼び出してウィンドウを作成する際、tagWND->cbWndExtra(ウィンドウインスタンスの追加メモリ割り当て数)をチェックします。この値が空でない場合、win32kfull!xxxClientAllocWindowClassExtraBytes 関数を呼び出してユーザーレイヤ user32.dll!__xxxClientAllocWindowClassExtraBytes をコールバックし、メモリを割り当てます。割り当て後のアドレスは NtCallbackReturn 関数を使用してスタックを修正した後、カーネル層に戻り保存されて実行が継続されます。しかし、tagWND->flag 値に 0x800 属性が含まれると、その保存値はオフセットになります。
  • 攻撃者は user32.dll!_xxxClientAllocWindowClassExtraBytes 関数をフックし、NtUserConsoleControl を呼び出して tagWND->flag に 0x800 属性値を含むように変更した後、NtCallbackReturn を使用してカスタム値をカーネルの tagWND->offset に返すことができます。
  1. 脆弱性は、Windows グラフィックドライバの win32kfull!NtUserCreateWindowEx 内で発生します。
  2. ドライバ win32kfull.sys が NtUserCreateWindowEx を呼び出してウィンドウを作成する際、tagWND->cbWndExtra をチェックします。この値が空でない場合、win32kfull!xxxClientAllocWindowClassExtraBytes 関数を呼び出してユーザーレイヤ user32.dll!__xxxClientAllocWindowClassExtraBytes をコールバックし、メモリを作成します。割り当て後のアドレスは NtCallbackReturn を使用してスタックを修正した後、カーネル層に戻り保存されて実行が継続されます。しかし、tagWND->flag 値に 0x800 属性が含まれる場合は、その値にオフセットでアクセスします。
  3. NtUserConsoleControl を使用してフラグに 0x800 属性を含めるように変更します。

17763:[[gpKernelHandleTable] + 0x18 * ((hwnd->cx * [gSharedInfo+0x10]) >> 5)]

NtUserConsoleControl を呼び出すと、tagWND->offset と tagWND->flag 値に 0x800 属性が含まれるよう再設定されると述べています。フラグ値に 0x800 属性が含まれる場合、オフセットでアクセスします。ここで NtUserConsoleControl を呼び出す目的は、tagWND->flag 値に 0x800 属性を含めるように変更し、さらに NtCallbackReturn 関数を呼び出して指定値を返すことで tagWND->offset を再変更することです。なぜなら win32kfull!xxxClientAllocWindowClassExtraBytes は戻り値を tagWND->offset に格納するからです。

+0x058 KernelCallbackTable : 0x00007ffb0e9d1070 Void

00007ffb0e9d1448`

ツールをダウンロード