# マイクロソフトWindowsシステムの深刻な脆弱性分析: システムを完全に制御し、Web3の安全を脅かす先月、マイクロソフトが発表したセキュリティパッチで、ハッカーによって悪用されているWindowsシステムの特権昇格の脆弱性が修正されました。この脆弱性は主に初期のWindowsバージョンに存在し、Windows 11では引き起こされることはありません。この種のWindowsシステムの基盤となる脆弱性は長い間存在しており、この記事では現在のセキュリティ対策が強化されている背景の中で、ハッカーがどのようにこの脆弱性を引き続き利用できるかを分析します。私たちの分析環境はWindows Server 2016です。この脆弱性はゼロデイ脆弱性に属し、公開されておらず修正されていない脆弱性です。ゼロデイ脆弱性が発見されると、ユーザーが気づかないうちに悪用される可能性があり、非常に破壊的です。このWindowsシステムの脆弱性を通じて、ハッカーはシステムの完全な制御を取得できます。ハッカーにシステムが制御されると、深刻な結果が生じます。これには、個人情報の盗難、システムのクラッシュによるデータの喪失、財務損失、マルウェアの植え付けなどが含まれます。個人ユーザーにとっては、暗号通貨の秘密鍵が盗まれ、デジタル資産が移転される可能性があります。より広い範囲で見ると、この脆弱性はWeb2のインフラに依存するWeb3プロジェクトに危険を及ぼす可能性があります。! [Numen独占:Microsoft 0-day Vulnerability Can Knock Out Web3 Cards at the System + Physical Level](https://img-cdn.gateio.im/social/moments-11434ba86c20e2bce85872a19c94efb4)パッチコードを分析すると、問題はオブジェクトの参照カウントが多く処理されているようです。以前のwin32kソースコードのコメントによれば、元のコードはウィンドウオブジェクトのみをロックし、ウィンドウオブジェクト内のメニューオブジェクトをロックしていなかったため、メニューオブジェクトが誤って参照される可能性がありました。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります](https://img-cdn.gateio.im/social/moments-af93482f98ed83fd92288d62674084ac)脆弱性の概念実証(PoC)を実現する際、xxxEnableMenuItem関数におけるメニューオブジェクトの処理に問題があることを発見しました。返されるメニューは、ウィンドウのメインメニューである可能性もあれば、サブメニューやさらにサブサブメニューである可能性もあります。脆弱性を引き起こすために特別な四層メニュー構造を構築しました。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます](https://img-cdn.gateio.im/social/moments-171ea7cb7c6f7190c3f49a2b914eed04)(Exp)を利用して構築する前に、私たちは主に2つの方向を考慮しました: shellcodeコードを実行することと、読み書き原語を利用してトークンアドレスを変更することです。実現可能性を考慮して、私たちは後者を選択しました。全体の利用プロセスは2つのステップに分かれています: UAF脆弱性を利用してcbwndextra値を制御し、次に安定した読み書き原語を確立します。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります](https://img-cdn.gateio.im/social/moments-66af34ab04bec21e27be99bbe29c552a)最初のデータ書き込みを実現するために、ウィンドウクラスWNDClassのウィンドウ名オブジェクトを使用して、解放されたメニューオブジェクトを占有します。慎重にメモリレイアウトを構築することで、隣接するオブジェクトのメモリデータを制御し、HWNDClassのcb-extra値を変更することができます。! [Numen独占:Microsoftの0日の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます](https://img-cdn.gateio.im/social/moments-1cc94ddafacec491507491eef9195858)私たちは、連続する3つのHWNDオブジェクトのメモリレイアウトを設計し、中間オブジェクトを解放した後にHWNDClassオブジェクトを占有します。前のHWNDオブジェクトは関数による検証に使用され、後のHWNDオブジェクトは最終的な読み書きプリミティブに使用されます。漏洩したカーネルハンドルアドレスを通じて、私たちはオブジェクトの配置順序を正確に制御できます。! [Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards at the System + Physical Level](https://img-cdn.gateio.im/social/moments-697c5814db02534f63b44c0d1d692f83)読み書き原語に関して、私たちはGetMenuBarInfo()を使用して任意の読み取りを実現し、SetClassLongPtr()を使用して任意の書き込みを実現します。トークンの書き込みを除いて、他の書き込みは最初のウィンドウオブジェクトのクラスオブジェクトオフセットを利用して実現します。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックすることができます](https://img-cdn.gateio.im/social/moments-b0942592135ac96c6279544a62022329)全体として、Windows 11のプレビューバージョンはRustを使用してwin32kコードを再構築し始めましたが、古いシステムにとってこのような脆弱性は依然として安全上の懸念です。脆弱性の利用は比較的簡単で、主にデスクトップヒープハンドルアドレスの漏洩に依存しています。この脆弱性の発見は、より優れたコードカバレッジ検出の恩恵を受けている可能性があります。脆弱性検出では、トリガー関数の重要なポイントに注目するだけでなく、異常なメモリレイアウトやデータの読み書き操作にも注意を払うべきです。! [Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards on the System + Physical Level](https://img-cdn.gateio.im/social/moments-b06b098af4f07260fdc03a75da160706)
Windowsの深刻な脆弱性がWeb3の安全性を脅かす ハッカーはシステムを完全に制御できる
マイクロソフトWindowsシステムの深刻な脆弱性分析: システムを完全に制御し、Web3の安全を脅かす
先月、マイクロソフトが発表したセキュリティパッチで、ハッカーによって悪用されているWindowsシステムの特権昇格の脆弱性が修正されました。この脆弱性は主に初期のWindowsバージョンに存在し、Windows 11では引き起こされることはありません。
この種のWindowsシステムの基盤となる脆弱性は長い間存在しており、この記事では現在のセキュリティ対策が強化されている背景の中で、ハッカーがどのようにこの脆弱性を引き続き利用できるかを分析します。私たちの分析環境はWindows Server 2016です。
この脆弱性はゼロデイ脆弱性に属し、公開されておらず修正されていない脆弱性です。ゼロデイ脆弱性が発見されると、ユーザーが気づかないうちに悪用される可能性があり、非常に破壊的です。このWindowsシステムの脆弱性を通じて、ハッカーはシステムの完全な制御を取得できます。
ハッカーにシステムが制御されると、深刻な結果が生じます。これには、個人情報の盗難、システムのクラッシュによるデータの喪失、財務損失、マルウェアの植え付けなどが含まれます。個人ユーザーにとっては、暗号通貨の秘密鍵が盗まれ、デジタル資産が移転される可能性があります。より広い範囲で見ると、この脆弱性はWeb2のインフラに依存するWeb3プロジェクトに危険を及ぼす可能性があります。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Out Web3 Cards at the System + Physical Level
パッチコードを分析すると、問題はオブジェクトの参照カウントが多く処理されているようです。以前のwin32kソースコードのコメントによれば、元のコードはウィンドウオブジェクトのみをロックし、ウィンドウオブジェクト内のメニューオブジェクトをロックしていなかったため、メニューオブジェクトが誤って参照される可能性がありました。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります
脆弱性の概念実証(PoC)を実現する際、xxxEnableMenuItem関数におけるメニューオブジェクトの処理に問題があることを発見しました。返されるメニューは、ウィンドウのメインメニューである可能性もあれば、サブメニューやさらにサブサブメニューである可能性もあります。脆弱性を引き起こすために特別な四層メニュー構造を構築しました。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます
(Exp)を利用して構築する前に、私たちは主に2つの方向を考慮しました: shellcodeコードを実行することと、読み書き原語を利用してトークンアドレスを変更することです。実現可能性を考慮して、私たちは後者を選択しました。全体の利用プロセスは2つのステップに分かれています: UAF脆弱性を利用してcbwndextra値を制御し、次に安定した読み書き原語を確立します。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります
最初のデータ書き込みを実現するために、ウィンドウクラスWNDClassのウィンドウ名オブジェクトを使用して、解放されたメニューオブジェクトを占有します。慎重にメモリレイアウトを構築することで、隣接するオブジェクトのメモリデータを制御し、HWNDClassのcb-extra値を変更することができます。
! Numen独占:Microsoftの0日の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます
私たちは、連続する3つのHWNDオブジェクトのメモリレイアウトを設計し、中間オブジェクトを解放した後にHWNDClassオブジェクトを占有します。前のHWNDオブジェクトは関数による検証に使用され、後のHWNDオブジェクトは最終的な読み書きプリミティブに使用されます。漏洩したカーネルハンドルアドレスを通じて、私たちはオブジェクトの配置順序を正確に制御できます。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards at the System + Physical Level
読み書き原語に関して、私たちはGetMenuBarInfo()を使用して任意の読み取りを実現し、SetClassLongPtr()を使用して任意の書き込みを実現します。トークンの書き込みを除いて、他の書き込みは最初のウィンドウオブジェクトのクラスオブジェクトオフセットを利用して実現します。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックすることができます
全体として、Windows 11のプレビューバージョンはRustを使用してwin32kコードを再構築し始めましたが、古いシステムにとってこのような脆弱性は依然として安全上の懸念です。脆弱性の利用は比較的簡単で、主にデスクトップヒープハンドルアドレスの漏洩に依存しています。この脆弱性の発見は、より優れたコードカバレッジ検出の恩恵を受けている可能性があります。脆弱性検出では、トリガー関数の重要なポイントに注目するだけでなく、異常なメモリレイアウトやデータの読み書き操作にも注意を払うべきです。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards on the System + Physical Level