WAC 経由の SYSTEM:Windows Admin Center の権限設定の見落としがホストの完全侵害につながる仕組み

Image

Cymulate Research Labs は、Microsoft Windows Admin Center(WAC)バージョン 2.4.2.1 におけるローカル権限昇格の脆弱性を発見しました。この問題はバージョン 2411 までのすべての WAC インストールに影響します。原因は難解なロジック欠陥ではなく、ありふれているものの危険な設定ミスです。ディレクトリ C:\ProgramData\WindowsAdminCenter が、標準ユーザーであれば誰でも書き込み可能になっています。一見すると単なる権限設定の見落としに見えますが、このディレクトリの内容は SYSTEM レベルのサービスとして動作するコンポーネントによって扱われるため、書き込み権限がそのまま権限昇格への直接的な経路になります。

実質的に、サーバーやインフラの管理に WAC を使用している組織は、このリスクを暗黙に引き継ぐことになります。攻撃者に必要なのは、WAC がインストールされているホスト上でのファイルシステムアクセスだけです。Cymulate は、この脆弱性が業界分野に依存しないことを強調しています。WAC Gateway を含む展開、統合拡張機能、特権的な管理ワークフロー、または WAC がインストールされた Windows Server ホストを伴うあらゆる環境が影響を受けます。研究者らは、誤った権限設定により信頼性の高いエクスプロイトチェーンが成立し、低権限から SYSTEM へ昇格して Windows のセキュリティ境界を事実上突破できることを実証しました。

最初の悪用経路は、拡張機能の削除メカニズムに焦点を当てています。研究者らは単純な問いを立てました。ユーザーが制御できるコンテンツとやり取りしつつ、ほぼ確実に昇格権限で実行される操作は何か。答えはインストールと削除です。WAC は .NET アプリケーションであるため、チームは dnSpy を用いてアンインストールのロジックを素早く特定しました。コードは uninstall ディレクトリへのパスを構築し、その中のすべての .ps1 ファイルを列挙して、AllSigned 実行ポリシーで PowerShell 経由で実行します。実運用上、これはそのディレクトリに置かれた任意の PowerShell スクリプトを WAC が暗黙に信頼することを意味します。

親ディレクトリが全ユーザーに書き込み可能であるため、標準ユーザーでもそこにペイロードを設置できます。ただし注意点が 1 つあります。スクリプトはデジタル署名されている必要があります。Cymulate は、これは「任意の ps1 を置けば勝ち」という単純な話ではなく、攻撃者は既存の署名済みスクリプトを悪用するか、自分で作成して署名する必要があると強調しています。

デモのために、研究者らは whoami を実行して出力を C:\Users\Public に書き込む簡単なスクリプトに署名し、コードが昇格コンテキストで実行されたことを明確に示しました。攻撃チェーン全体は単純でした。ディレクトリ構造 C:\ProgramData\WindowsAdminCenter\Extensions\<ExtensionName>\uninstall を作成し、その中に署名済みの悪意あるスクリプトを配置し、UI または API から拡張機能の削除をトリガーします。するとペイロードは NETWORK SERVICE、場合によっては SYSTEM 権限で実行されました。

2 つ目の悪用経路は更新メカニズムを標的にし、古典的な DLL ハイジャックを利用しました。チームは WindowsAdminCenterUpdater.exe を調査し、これが C:\ProgramData\WindowsAdminCenter\Updater から DLL を読み込むことを突き止めました。このディレクトリも全ユーザーに書き込み可能であるため、状況は自然に DLL ハイジャックを招きます。悪意あるライブラリを置き、特権プロセスがそれを読み込むのを待つだけです。初期テストではほぼ成功しましたが DLL は実行されませんでした。イベント ビューアーにより、デジタル署名が欠落しているためライブラリが拒否されたことが判明しました。プロセスは署名検証を行っていました。

しかし、重要な詳細が明らかになりました。署名検証は WindowsAdminCenter プロセス内で行われ、その後に WindowsAdminCenterUpdater.exe が起動されます。これにより TOCTOU(time-of-check, time-of-use)攻撃への道が開かれました。研究者らは通常ユーザーとして、WindowsAdminCenterUpdater.exe プロセスの作成を監視し、出現した瞬間に、署名チェック後かつ DLL 読み込み前のタイミングで、悪意ある user32.dll を Updater ディレクトリへ高速にコピーする PowerShell スクリプトを作成しました。

概念実証では、チームは Register-WmiEvent を使用してプロセス作成に反応し、DLL を所定の場所へコピーしました。研究者によれば、この手法は完璧に機能しました。DLL は SYSTEM 権限で実行され、チェーン全体は非特権ユーザーによってトリガーされました。PoC では、単に C:\Users\Public\test.txt にファイルを書き込むだけの user32.dll を作成し、アップデーター起動の監視を設定し、Updater ディレクトリに DLL を設置し、/api/update エンドポイント経由で更新を開始して、SYSTEM レベルのコード実行を達成しました。

Microsoft はこの脆弱性を 確認し、識別子 CVE-2025-64669 を割り当て、研究者に 5,000 ドルの報奨金を授与しました。

翻訳元: https://meterpreter.org/system-via-wac-how-a-permissions-oversight-in-windows-admin-center-leads-to-full-host-compromise/

ソース: meterpreter.org