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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/sbaresearch/stop-zenbleed-win
脆弱性分析エクスプロイトスクリプトと自動化ハードウェアセキュリティ
GitHubsbaresearch/stop-zenbleed-win

stop-zenbleed-win

Windows上でZenbleed (CVE-2023-20593) MSRワークアラウンドを適用するPowerShellスクリプト

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Windows で Zenbleed (CVE-2023-20593) を阻止する

新しく発見された Zenbleed 脆弱性 (CVE-2023-20593) は、AMD のすべての Zen2 プロセッサに影響を与えます。 残念ながら、AMD は多くのプロセッサについて、2023 年 11 月または 12 月までマイクロコード更新を提供しない予定です。 それまでの間、どうすれば安全を保てるのでしょうか? 幸いなことに、ソフトウェアによる回避策があります。 ソフトウェアによる回避策の適用は Linux では 1 行で済みますが、Windows ではより複雑です。

ソフトウェアによる回避策を適用するには、MSR CPU レジスタ内の特定のビット (chicken bit DE_CFG[9]) を設定する必要があります。 Travis Ormandy 氏が指摘したように、Linux で Zenbleed を回避するには次のコマンドを使用できます:

root@kitploit:~
# wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

Windows では MSR レジスタの設定がより困難です。 MSR レジスタへの書き込みが許可されているのは、カーネルレベルのドライバだけです。 さらに、カーネルレベルのドライバを読み込むには、署名されている必要があります。 そのため、OpenLibSys.org の既存の WinRing0 ドライバを使用することにしました。 WinRing0 を読み込み、適切な MSR 書き込み要求をドライバに送信し、その直後に WinRing0 ドライバをアンロードする PowerShell スクリプトを作成しました。 現在、この PowerShell スクリプトは Hyper-V が無効になっている場合にのみ動作します。 PowerShell スクリプトは、https://github.com/sbaresearch/stop-zenbleed-win で公開しています。

PowerShell スクリプトにはいくつか注意点があることにご注意ください。 スクリプトを使用する前に、「注意点」のセクションを読み、ご自身の環境に合わせてリスク分析を行ってください。

使用方法

  • 管理者権限を持つ PowerShell 5.x で Stop-Zenbleed.ps1 を実行してください
  • このスクリプトは、Zenbleed の影響を受ける AMD Zen2 CPU 上でのみ実行されることを想定しています。 他のシステムでは予期しない問題が発生する可能性がありますので、ご注意ください。

注意点

  • Hyper-V を無効にする必要があります。 そうしないと、Windows OS 自体が CPU リング 1 で実行されるため、カーネルレベルのドライバが MSR への書き込みアクセス権を取得できません。 Hyper-V を無効にすると、残念ながら、通常は推奨される 2 つのセキュリティ対策である Credential Guard と Device Guard も無効になります。 Zenbleed の脆弱性 (CVE-2023-20593) を阻止して、JavaScript を介した潜在的な情報窃取攻撃 (JavaScript を介した Zenbleed の悪用は、少なくとも tom's Hardware によって可能と見なされています: https://www.tomshardware.com/news/zenbleed-bug-allows-data-theft-from-amds-zen-2-processors-patches-released) を回避することは、2 つの多層防御策を無効にするリスクよりも重要であると私たちは考えています。
  • WinRing0 カーネルレベルドライバには、ローカル権限昇格の脆弱性である CVE-2020–14979 があります。 https://posts.specterops.io/cve-2020-14979-local-privilege-escalation-in-evga-precisionx1-cf63c6b95896 および https://github.com/openhardwaremonitor/openhardwaremonitor/issues/1557 を参照してください。 WinRing0 はオープンソースのカーネルレベルドライバであり、OpenHardwareMonitor ライブラリなど、他のオープンソースプログラムでも使用されています。 問題は、このドライバがアクセス制御リストなしでデバイスオブジェクトを作成し、その結果、ローカルのすべての Windows ユーザーがドライバと通信できるようになることです。 このドライバはハードウェアへの直接アクセスを許可するため、NT AUTHORITY\SYSTEM 権限への権限昇格が可能です。 本当の修正には WinRing0 ドライバの変更が必要であり、したがって新しい署名が必要となるため、複雑です。 OpenHardwareMonitor ライブラリは、回避策として、ドライバを読み込んだ直後にアクセス権を修正しています (https://github.com/openhardwaremonitor/openhardwaremonitor/commit/0e435cafc61fe84d429e8a9500d666e34e3de67b)。 私たちの PowerShell スクリプトは、chicken bit を設定した直後にドライバをアンロードすることで CVE-2020–14979 を回避しています。 ただし、スクリプトを実行するたびに、悪用される可能性のある小さな時間枠が存在します。 chicken bit の設定は永続的ではないため、スクリプトは再起動のたびに実行する必要があります。 私たちのリスク分析では、(リモートで発生し得る) Zenbleed からの保護による利点が、ローカル権限昇格のリスクを再び上回ります。 さらに、ユーザープロセスによる悪用可能性を制限するために、ブートプロセスのできるだけ早い段階でスクリプトを実行することをお勧めします。 PowerShell スクリプトを展開する前に、ご自身の環境に合わせてリスク分析を行ってください。
  • このソフトウェアによる回避策は、AMD が CPU のバグを修正するまでの一時的な回避策を目的としています。

動作確認方法

root@kitploit:~
PS C:\stop-zenbleed-win> powershell -ExecutionPolicy RemoteSigned .\Stop-Zenbleed.ps1
[>] Installing driver...
[SC] CreateService SUCCESS

[>] Starting driver...

SERVICE_NAME: WinRing0_1_2_0
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 0
        FLAGS              :

[>] Opening driver...
[+] Driver access OK, handle: 2456

[>] Try 1 to apply fix on processor 1
[+] Fix is applied on processor 1 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 2 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 3
[+] Fix is applied on processor 3 (MSR 0xC0011029=0x3004310E08202)
[+] Fix is applied on processor 4 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 5
[+] Fix is applied on processor 5 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 6 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 7
[+] Fix is applied on processor 7 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 8 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 9
[+] Fix is applied on processor 9 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 10 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 11
[+] Fix is applied on processor 11 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 12 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 13
[+] Fix is applied on processor 13 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 14 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 15
[+] Fix is applied on processor 15 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 16 (MSR 0xC0011029=0x300C310E08203)

[>] Closing driver...

[>] Stopping driver...

SERVICE_NAME: WinRing0_1_2_0
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

[>] Uninstalling driver...
[SC] DeleteService SUCCESS

PowerShell スクリプトを実行した後、POC エクスプロイトはそれ以上出力を生成しないはずです。

著作権

  • Stop-Zenbleed.ps1 は GNU GPL v3.0 ライセンスの下で提供されています: LICENSE
  • WinRing0 は © 2007-2009 OpenLibSys.org であり、以下の条件の下で提供されています: WinRing0/LICENSE
ツールをダウンロード