# マイクロソフトWindowsシステムの重大な脆弱性分析: Web3エコシステムの安全性に危険を及ぼす可能性がある先月、マイクロソフトがリリースしたセキュリティパッチには、ハッカーによって悪用されているWindowsの特権昇格の脆弱性が修正されました。この脆弱性は主に初期のWindowsシステムバージョンに影響を与え、Windows 11は影響を受けていないようです。この記事では、現在のセキュリティ保護が強化されている状況下で、攻撃者がどのようにしてこの種の脆弱性を引き続き利用するかを分析します。私たちの分析は、Windows Server 2016に基づいています。## 脆弱性の背景これは0dayの脆弱性であり、まだ公開されておらず修正されていない脆弱性です。ハッカーはユーザーが気づかないうちにこれを利用して攻撃し、非常に大きな損害を与えることができます。このWindowsシステムレベルの脆弱性を通じて、ハッカーはシステムの完全な制御を取得できます。これにより、個人情報の漏洩、システムのクラッシュ、データの喪失、財務的損失などの深刻な結果を引き起こす可能性があります。Web3ユーザーにとって、秘密鍵やデジタル資産が盗まれる可能性があります。より広い視点から見ると、この脆弱性は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)## パッチ分析 パッチコードを分析すると、問題はオブジェクトの参照カウントが多く処理されていることのようです。以前のソースコードのコメントを確認すると、以前のコードではウィンドウオブジェクトのみをロックしており、ウィンドウ内のメニューオブジェクトをロックしていなかったため、メニューオブジェクトが誤って参照される可能性があります。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります](https://img-cdn.gateio.im/social/moments-af93482f98ed83fd92288d62674084ac)## 脆弱性の再発脆弱性分析関数のコンテキストでは、xxxEnableMenuItem()を渡されたメニューが通常、上位関数でロックされていることがわかりました。ここで、どのメニューオブジェクトを保護するべきかについて疑問があります。さらに分析すると、xxxEnableMenuItemのMenuItemState関数が返すメニューには2つの可能性があります: ウィンドウのメインメニューまたはサブメニュー(、さらにはサブサブメニュー)です。私たちは、脆弱性を引き起こすために特別な4層メニュー構造を構築しました。これらのメニューは、関数内の検出を通過するために特定の条件を満たす必要があります。重要なのは、xxxRedrawTitleがユーザー層を返すときに、特定のメニューオブジェクトの参照関係を削除することです。こうすることで、xxxEnableMenuItem関数の戻り点で、参照されているメニューオブジェクトは無効になります。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます](https://img-cdn.gateio.im/social/moments-171ea7cb7c6f7190c3f49a2b914eed04)## エクスプロイト脆弱性を利用するプログラム(exp)の開発において、私たちは主に2つのシナリオを考慮しました:1. シェルコードを実行する: 以前の類似の脆弱性を参考にしますが、新しいバージョンのWindowsではいくつかの障害が存在する可能性があります。2. 読み書き原子操作を利用してトークンアドレスを変更する: この方法は最近も公開されたexpが参考にでき、デスクトップのヒープメモリのレイアウトと読み書き原子操作に対して良好な汎用性があります。私たちは第二の提案を選び、全体の利用プロセスを2つのステップに分けました: UAF脆弱性を利用してcbwndextraの値を制御する方法、そして安定して読み書き原語を実現する方法です。! [Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります](https://img-cdn.gateio.im/social/moments-66af34ab04bec21e27be99bbe29c552a)重要なのは、私たちが構築できるアドレス構造の中で、任意のデータを書き込むことができる場所を見つけることです。最終的には、xxxRedrawWindow関数内のフラグ位AND操作を通じて実現することにしました。! [Numen独占:Microsoftの0日の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます](https://img-cdn.gateio.im/social/moments-1cc94ddafacec491507491eef9195858)安定したメモリレイアウトを実現するために、少なくとも3つの連続した0x250バイトのHWNDオブジェクトを設計し、中間のオブジェクトを解放してHWNDClassオブジェクトを占有します。前後の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)## まとめ1. マイクロソフトはRustを使用してwin32k関連コードの再構築を試みており、将来的にはこのような脆弱性が新しいシステムでは排除される可能性があります。2. この種の脆弱性の利用プロセスは比較的簡単であり、主にデスクトップヒープハンドルアドレスの漏洩に依存しています。この問題が徹底的に解決されない限り、古いシステムは引き続きセキュリティリスクにさらされるでしょう。3. この脆弱性の発見は、より洗練されたコードカバレッジ検出技術のおかげかもしれません。4. 脆弱性の利用検出に関しては、重要な関数の監視に加えて、異常なメモリレイアウトやデータの読み書きの挙動にも注目すべきです。! [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 Server 2016に基づいています。
脆弱性の背景
これは0dayの脆弱性であり、まだ公開されておらず修正されていない脆弱性です。ハッカーはユーザーが気づかないうちにこれを利用して攻撃し、非常に大きな損害を与えることができます。
このWindowsシステムレベルの脆弱性を通じて、ハッカーはシステムの完全な制御を取得できます。これにより、個人情報の漏洩、システムのクラッシュ、データの喪失、財務的損失などの深刻な結果を引き起こす可能性があります。Web3ユーザーにとって、秘密鍵やデジタル資産が盗まれる可能性があります。より広い視点から見ると、この脆弱性はWeb2インフラストラクチャに基づくWeb3エコシステム全体に影響を与える可能性があります。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Out Web3 Cards at the System + Physical Level
パッチ分析
パッチコードを分析すると、問題はオブジェクトの参照カウントが多く処理されていることのようです。以前のソースコードのコメントを確認すると、以前のコードではウィンドウオブジェクトのみをロックしており、ウィンドウ内のメニューオブジェクトをロックしていなかったため、メニューオブジェクトが誤って参照される可能性があります。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります
脆弱性の再発
脆弱性分析関数のコンテキストでは、xxxEnableMenuItem()を渡されたメニューが通常、上位関数でロックされていることがわかりました。ここで、どのメニューオブジェクトを保護するべきかについて疑問があります。
さらに分析すると、xxxEnableMenuItemのMenuItemState関数が返すメニューには2つの可能性があります: ウィンドウのメインメニューまたはサブメニュー(、さらにはサブサブメニュー)です。
私たちは、脆弱性を引き起こすために特別な4層メニュー構造を構築しました。これらのメニューは、関数内の検出を通過するために特定の条件を満たす必要があります。重要なのは、xxxRedrawTitleがユーザー層を返すときに、特定のメニューオブジェクトの参照関係を削除することです。こうすることで、xxxEnableMenuItem関数の戻り点で、参照されているメニューオブジェクトは無効になります。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます
エクスプロイト
脆弱性を利用するプログラム(exp)の開発において、私たちは主に2つのシナリオを考慮しました:
シェルコードを実行する: 以前の類似の脆弱性を参考にしますが、新しいバージョンのWindowsではいくつかの障害が存在する可能性があります。
読み書き原子操作を利用してトークンアドレスを変更する: この方法は最近も公開されたexpが参考にでき、デスクトップのヒープメモリのレイアウトと読み書き原子操作に対して良好な汎用性があります。
私たちは第二の提案を選び、全体の利用プロセスを2つのステップに分けました: UAF脆弱性を利用してcbwndextraの値を制御する方法、そして安定して読み書き原語を実現する方法です。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3ゲームをダウンさせる可能性があります
重要なのは、私たちが構築できるアドレス構造の中で、任意のデータを書き込むことができる場所を見つけることです。最終的には、xxxRedrawWindow関数内のフラグ位AND操作を通じて実現することにしました。
! Numen独占:Microsoftの0日の脆弱性は、システム+物理レベルでWeb3カードをノックアウトすることができます
安定したメモリレイアウトを実現するために、少なくとも3つの連続した0x250バイトのHWNDオブジェクトを設計し、中間のオブジェクトを解放してHWNDClassオブジェクトを占有します。前後のHWNDオブジェクトは、それぞれ関数による検証と最終的な読み書き原語の実現に使用されます。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards at the System + Physical Level
私たちは、漏洩したカーネルハンドルアドレスを通じて、オブジェクトが期待通りに配置されているかどうかを正確に判断します。読み書き原語に関しては、GetMenuBarInfo()を使用して任意の読み取りを実現し、SetClassLongPtr()を使用して任意の書き込みを実現します。
! Numen独占:Microsoftの0日間の脆弱性は、システム+物理レベルでWeb3カードをノックすることができます
まとめ
マイクロソフトはRustを使用してwin32k関連コードの再構築を試みており、将来的にはこのような脆弱性が新しいシステムでは排除される可能性があります。
この種の脆弱性の利用プロセスは比較的簡単であり、主にデスクトップヒープハンドルアドレスの漏洩に依存しています。この問題が徹底的に解決されない限り、古いシステムは引き続きセキュリティリスクにさらされるでしょう。
この脆弱性の発見は、より洗練されたコードカバレッジ検出技術のおかげかもしれません。
脆弱性の利用検出に関しては、重要な関数の監視に加えて、異常なメモリレイアウトやデータの読み書きの挙動にも注目すべきです。
! Numen独占:Microsoft 0-day Vulnerability Can Knock Web3 Cards on the System + Physical Level