ペンリジェント・ヘッダー

緊急:Windows PowerShell 0-Day(CVE-2025-54100)のディープダイブとクリティカルパッチガイド

はじめにスイス・アーミー・ナイフ」があなたを切るとき

2025年12月9日、マイクロソフト・セキュリティ・レスポンス・センター(MSRC)は、毎月恒例の「パッチ・チューズデー(Patch Tuesday)」において、重大な警告を発した。 Windows PowerShellに0-Dayの脆弱性として追跡される。 CVE-2025-54100.

を持っている。 CVSSスコア7.8(高)この脆弱性は、レガシーサーバーから最新のWindows 11ビルドまで、Windowsエコシステムの大部分に影響を及ぼす。PowerShellはOSファブリックに深く統合されているため、この欠陥は攻撃者に危険な "Living-off-the-Land"(LotL)の機会を提供し、信頼できるネイティブのシステムツールを使用して悪意のあるコードを実行することを可能にします。

あなたがサーバー・ファームを管理するシスアドであろうと、セキュリティ研究者であろうと、このパッチを無視するという選択肢はありません。このガイドでは、欠陥の技術的な内訳、公式のパッチマトリックス、スクリプトを安全に実行し続けるために必要なコードのリファクタリングについて説明します。

Windows PowerShell 0-デイ CVE-2025-54100

テクニカル・ディープ・ダイブCVE-2025-54100のメカニズム

この問題の深刻さを理解するには、根本的な弱点に目を向ける必要がある: CWE-77(コマンドで使用される特殊エレメントの不適切な無力化).

脆弱性の論理

核心的な問題は、Windows PowerShellがコマンドラインインタープリターに渡す前にユーザー入力をどのようにサニタイズするかにある。アプリケーションやスクリプトが、適切なフィルタリングを行わずに信頼できない入力を使用してPowerShellコマンドを構築すると、次のような問題が発生します。 コマンド・インジェクション.

攻撃シナリオ(概念実証)

免責事項:以下のコードは教育目的のみです。

ユーザー入力に基づいてログファイルを読み取るように設計された、正当な管理スクリプトを想像してみてください:

パワーシェル

# VULNERABLE PATTERN $UserInput = Read-Host "ログファイル名を入力してください"

Windows PowerShell 0-Day CVE-2025-54100 PoC

入力は直接コマンド文字列に連結される。

Invoke-Expression "Get-Content C:⊖Logs⊖TP4TUserInput"`.

標準的なシナリオでは、ユーザーはapp.logを入力する。

しかし、攻撃者がパッチ未適用のシステム上でCVE-2025-54100を悪用すると、入力される可能性がある:

app.log; スタート-プロセス calc.exe

パーサーは、セミコロン(;)は、これを2つの異なるコマンドとして解釈する:

  1. ログを読む Get-Content C:³³³³.log
  2. ペイロードを実行する: スタート-プロセス calc.exe (実際の攻撃では、ランサムウェアのダウンローダーやC2ビーコンとなる)。

攻撃のベクトル「ローカル」だが致命的

マイクロソフトはこれを「ローカル」攻撃ベクトルに分類している。これは、攻撃者が通常必要とすることを意味する:

  • システムへの低レベルのアクセス、または
  • ユーザーに悪意のあるファイルを実行するように仕向ける(ソーシャルエンジニアリング/フィッシング)。

いったん成功すれば、このインジェクションを利用して特権を昇格させたり、ネットワーク上を横方向に移動したりすることができる。

Windows PowerShell 0-Day CVE-2025-54100 PoC

パッチマトリックス重要なアップデートの特定

マイクロソフト社は、緊急セキュリティ更新プログラムをリリースした。IT管理者は、以下のKBをWSUS、SCCM、または手動で直ちにダウンロードすることを優先してください。

OSバージョン重大性クリティカルKBパッチIDデプロイメント・ノート
Windows Server 2025高いKB5072033再起動が必要
Windows 11 (24H2 / 25H2)高いKB5074204累積アップデート
ウィンドウズ・サーバー2022高いKB5074204優先インストール
Windows Server 2019高いKB5074353
ウィンドウズ 10 (22H2)高いKB5071546セキュリティのみのアップデートが利用可能
Windows Server 2012 R2ミディアムKB5071544ESU(延長サポート)のみ

重大な警告このパッチはPowerShellのコア・バイナリを変更するため、システムの再起動が必須です。サービスの中断を避けるため、メンテナンスウィンドウを適宜スケジュールしてください。

ガッチャ」:パッチ後の壊れたスクリプトの修正

セキュリティは通常、利便性を犠牲にするものだ。CVE-2025-54100のアップデート(具体的には KB5074204 そして KB5074353)は、ウェブ・リクエストに対してより厳格なセキュリティ・コントロールを導入している。

問題だ: Invoke-WebRequest 失敗例

パッチ適用後、オートメーション・スクリプトが以下のエラーで失敗することがあります:

"Internet Explorerエンジンが使用できないか、Internet Explorerの初回起動設定が完了していないため、応答内容を解析できません。"

これは、マイクロソフトがPowerShellとレガシーInternet Explorerの解析エンジンとの間のリンクを最終的に切断し、攻撃対象領域を縮小しているためである。

修正コードのリファクタリング

DOMの解析をIEに依存しないようにスクリプトを更新する必要があります。解決策は 基本的な構文解析 モードだ。

ブロークン・コード(レガシー)

パワーシェル

# これはIEエンジンに依存しているが、現在は制限または削除されている $response = Invoke-WebRequest -Uri ""ライト出力 $response.Content

セキュアコード(ベストプラクティス)

パワーシェル

# 速度、セキュリティ、互換性のために -UseBasicParsing スイッチを追加 $response = Invoke-WebRequest -Uri "" -UseBasicParsing Write-Output $response.Content

管理者のためのヒント

IDE(VS Code / ISE)の正規表現検索を使用して、スクリプトリポジトリをスキャンします:

  • 探せ: Invoke-WebRequest+(?*-UseBasicParsing)
  • アクション 追加 UseBasicParsing このような場合

ディフェンス・イン・デプスパッチを超えて

パッチは事後的なものです。将来の0-daysから保護するためには、PowerShellに「Defense in Depth」戦略を採用する必要があります。

A.言語モードの強制

非管理ユーザーの場合、PowerShell は次の場所で実行する必要があります。 制約言語モード.このため、Windows APIを呼び出したり、任意の.NETコードをコンパイルしたりする機能が著しく制限される。

パワーシェル

現在のモードを確認する $ExecutionContext.SessionState.LanguageMode

標準的なユーザーのためのターゲット出力:ConstrainedLanguage`

B.スクリプトブロックログを有効にする

PowerShellはメモリ上で実行される(ファイルレス)ため、攻撃者はPowerShellを好む。攻撃者を捕まえるには、実際に実行されているコードをログに記録する必要がある。

  • GPOパス: コンピュータの構成 > 管理用テンプレート > Windowsコンポーネント > Windows PowerShell > PowerShellスクリプトブロックログをオンにする.

C.SIEM 検出ルール

SOC の監視ルールを更新し、潜在的な搾取の試みにフラグを立てる:

  • プロセス階層: アラート パワーシェルエグゼ はOfficeアプリ(Word、Excel)によって生み出される。
  • 疑わしい議論: 高度に難読化されたコマンドや、以下のような使い方を探してください。 エンコードされたコマンド.
  • イベントIDは4104: スクリプト・ブロックのログをスキャンして、次のようなキーワードを探す。 呼び出し式 または アイイーエックス ネットワーク・コールと組み合わせる。

結論

CVE-2025-54100の公開は、それを思い起こさせるものだ: アイデンティティとコンフィギュレーションが新たな境界となる。 当面の対策は12月のKB(KB5072033/KB5074204)を適用することだが、長期的な解決策は、ネイティブツールの悪用に対して環境を強化することである。

あなたのアクションプラン

  1. 監査 パッチが適用されていないWindowsエンドポイントをネットワーク上でスキャンする。
  2. パッチ 12月のセキュリティアップデートを直ちに導入すること。
  3. リファクター: 自動化スクリプトを更新して UseBasicParsing.

安全な場所にいて、貝殻を安全に保管すること。

記事を共有する
関連記事