# マイクロソフト0day脆弱性分析: Web3インフラの安全性を脅かす可能性先月、マイクロソフトのセキュリティパッチには、攻撃が可能なwin32k特権昇格の脆弱性が含まれていました。この脆弱性は、初期のシステムバージョンにのみ存在し、Windows 11では発生しないようです。この種の脆弱性の悪用は長い間続いており、この記事では、現在の新しい緩和策が改善されている背景の中で、攻撃者がこの脆弱性をどのように利用し続ける可能性があるかを分析します。私たちはWindows Server 2016環境で全体の分析プロセスを完了しました。! [Numen独占:Microsoft 0-day Vulnerability Can Knock Out Web3 Cards at the System + Physical Level](https://img-cdn.gateio.im/social/moments-11434ba86c20e2bce85872a19c94efb4)0day脆弱性とは、公開されておらず修正されていない脆弱性を指し、ハッカーが気付かれないまま悪用することができ、しばしば非常に大きな破壊力を持っています。今回発見された0day脆弱性はWindowsシステムのレベルにあり、ハッカーはこれを通じてWindowsの完全な制御権を取得できます。制御を受けた後は、個人情報の盗取、システムのクラッシュ、データの喪失、財務損失、マルウェアの埋め込みなどの結果を引き起こす可能性があります。小規模では秘密鍵が盗まれ、デジタル資産が移転される可能性があり、大規模ではWeb2インフラストラクチャに基づいて運営される全体のWeb3エコシステムに危険を及ぼす可能性があります。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります](https://img-cdn.gateio.im/social/moments-af93482f98ed83fd92288d62674084ac)パッチ分析によると、これはオブジェクト参照カウントが多く処理された問題のようです。しかし、以前のソースコードのコメントを見ると、以前のコードはウィンドウオブジェクトのみをロックしており、ウィンドウオブジェクト内のメニューオブジェクトをロックしていなかったため、メニューオブジェクトが誤って参照される可能性があります。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます](https://img-cdn.gateio.im/social/moments-171ea7cb7c6f7190c3f49a2b914eed04)脆弱性関数のコンテキストを分析すると、xxxEnableMenuItem()に渡されるメニューは通常、上位関数でロックされていることがわかります。では、ここでどのメニューオブジェクトを保護する必要があるのでしょうか?さらに分析すると、xxxEnableMenuItemで返されるメニューには2つの可能性があります:ウィンドウのメインメニューまたはメニューのサブメニュー(、さらにはサブサブメニュー)です。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります](https://img-cdn.gateio.im/social/moments-66af34ab04bec21e27be99bbe29c552a)POCを構築するために、特別な4層メニュー構造を設計し、関数検出を通じて各メニューに特別な設定を行いました。xxxRedrawTitleがユーザー層を返す際に、メニューCとメニューBの参照関係を削除し、メニューCを正常に解放しました。これにより、xxxEnableMenuItem関数が戻る時点で、参照されているメニューCオブジェクトはすでに無効になっています。! [Numen独占:Microsoftの0日の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます](https://img-cdn.gateio.im/social/moments-1cc94ddafacec491507491eef9195858)EXPの実装に関しては、主に2つの方向を考慮しました: shellcodeの実行と、読み書き原語を利用してトークンアドレスを変更することです。高バージョンのWindowsのセキュリティメカニズムを考慮し、後者を選択しました。全体の利用プロセスは2つの部分に分かれます: UAF脆弱性を利用してcbwndextra値を制御する方法と、安定した読み書き原語を確立する方法です。! [Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards at the System + Physical Level](https://img-cdn.gateio.im/social/moments-697c5814db02534f63b44c0d1d692f83)私たちは、精巧に設計されたメモリレイアウトを通じて、ウィンドウクラスのウィンドウ名オブジェクトが解放されるメニューオブジェクトを利用し、xxxRedrawWindow関数内でデータを書き込むタイミングを見つけました。安定したメモリレイアウトを実現するために、連続した3つのHWNDオブジェクトの構造を設計し、ヒープメモリに漏れたカーネルハンドルアドレスを使用してオブジェクトの配置順序を正確に判断しました。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックすることができます](https://img-cdn.gateio.im/social/moments-b0942592135ac96c6279544a62022329)読み書きの原語に関して、私たちはGetMenuBarInfo()を使用して任意の読み取りを実現し、SetClassLongPtr()を使用して任意の書き込みを実現します。TOKENの書き込み操作が第二のウィンドウのクラスオブジェクトに依存することを除いて、他の書き込みはオフセットを通じて最初のウィンドウオブジェクトのクラスオブジェクトを利用して実現されます。! [Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards on the System + Physical Level](https://img-cdn.gateio.im/social/moments-b06b098af4f07260fdc03a75da160706)総じて、win32kの脆弱性は歴史が長いが、マイクロソフトはWindows 11のプレビュー版でRustを使ってその部分のカーネルコードを再構築しようとしており、将来的にはこのような脆弱性が排除される可能性がある。この脆弱性の悪用プロセスは比較的簡単で、主な難点は初回の書き込みをどのように制御するかである。この脆弱性の発見は、より洗練されたコードカバレッジ検出に依存している可能性がある。脆弱性検出においては、トリガー関数の重要なポイントに注目するだけでなく、異常なメモリレイアウトやデータオフセットの読み書きの検出も、同様の脆弱性を発見する可能性のある手段である。
マイクロソフト0day脆弱性の暴露 Web3インフラストラクチャの安全性が脅かされる可能性
マイクロソフト0day脆弱性分析: Web3インフラの安全性を脅かす可能性
先月、マイクロソフトのセキュリティパッチには、攻撃が可能なwin32k特権昇格の脆弱性が含まれていました。この脆弱性は、初期のシステムバージョンにのみ存在し、Windows 11では発生しないようです。この種の脆弱性の悪用は長い間続いており、この記事では、現在の新しい緩和策が改善されている背景の中で、攻撃者がこの脆弱性をどのように利用し続ける可能性があるかを分析します。私たちはWindows Server 2016環境で全体の分析プロセスを完了しました。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Out Web3 Cards at the System + Physical Level
0day脆弱性とは、公開されておらず修正されていない脆弱性を指し、ハッカーが気付かれないまま悪用することができ、しばしば非常に大きな破壊力を持っています。今回発見された0day脆弱性はWindowsシステムのレベルにあり、ハッカーはこれを通じてWindowsの完全な制御権を取得できます。制御を受けた後は、個人情報の盗取、システムのクラッシュ、データの喪失、財務損失、マルウェアの埋め込みなどの結果を引き起こす可能性があります。小規模では秘密鍵が盗まれ、デジタル資産が移転される可能性があり、大規模ではWeb2インフラストラクチャに基づいて運営される全体のWeb3エコシステムに危険を及ぼす可能性があります。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります
パッチ分析によると、これはオブジェクト参照カウントが多く処理された問題のようです。しかし、以前のソースコードのコメントを見ると、以前のコードはウィンドウオブジェクトのみをロックしており、ウィンドウオブジェクト内のメニューオブジェクトをロックしていなかったため、メニューオブジェクトが誤って参照される可能性があります。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます
脆弱性関数のコンテキストを分析すると、xxxEnableMenuItem()に渡されるメニューは通常、上位関数でロックされていることがわかります。では、ここでどのメニューオブジェクトを保護する必要があるのでしょうか?さらに分析すると、xxxEnableMenuItemで返されるメニューには2つの可能性があります:ウィンドウのメインメニューまたはメニューのサブメニュー(、さらにはサブサブメニュー)です。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります
POCを構築するために、特別な4層メニュー構造を設計し、関数検出を通じて各メニューに特別な設定を行いました。xxxRedrawTitleがユーザー層を返す際に、メニューCとメニューBの参照関係を削除し、メニューCを正常に解放しました。これにより、xxxEnableMenuItem関数が戻る時点で、参照されているメニューCオブジェクトはすでに無効になっています。
! Numen独占:Microsoftの0日の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます
EXPの実装に関しては、主に2つの方向を考慮しました: shellcodeの実行と、読み書き原語を利用してトークンアドレスを変更することです。高バージョンのWindowsのセキュリティメカニズムを考慮し、後者を選択しました。全体の利用プロセスは2つの部分に分かれます: UAF脆弱性を利用してcbwndextra値を制御する方法と、安定した読み書き原語を確立する方法です。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards at the System + Physical Level
私たちは、精巧に設計されたメモリレイアウトを通じて、ウィンドウクラスのウィンドウ名オブジェクトが解放されるメニューオブジェクトを利用し、xxxRedrawWindow関数内でデータを書き込むタイミングを見つけました。安定したメモリレイアウトを実現するために、連続した3つのHWNDオブジェクトの構造を設計し、ヒープメモリに漏れたカーネルハンドルアドレスを使用してオブジェクトの配置順序を正確に判断しました。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックすることができます
読み書きの原語に関して、私たちはGetMenuBarInfo()を使用して任意の読み取りを実現し、SetClassLongPtr()を使用して任意の書き込みを実現します。TOKENの書き込み操作が第二のウィンドウのクラスオブジェクトに依存することを除いて、他の書き込みはオフセットを通じて最初のウィンドウオブジェクトのクラスオブジェクトを利用して実現されます。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards on the System + Physical Level
総じて、win32kの脆弱性は歴史が長いが、マイクロソフトはWindows 11のプレビュー版でRustを使ってその部分のカーネルコードを再構築しようとしており、将来的にはこのような脆弱性が排除される可能性がある。この脆弱性の悪用プロセスは比較的簡単で、主な難点は初回の書き込みをどのように制御するかである。この脆弱性の発見は、より洗練されたコードカバレッジ検出に依存している可能性がある。脆弱性検出においては、トリガー関数の重要なポイントに注目するだけでなく、異常なメモリレイアウトやデータオフセットの読み書きの検出も、同様の脆弱性を発見する可能性のある手段である。