From 20214b2caa9cfc85f7708b4be2bd89dd52a05cb0 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 10 Aug 2025 18:35:59 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/microsoft-sh --- .../pentesting-web/microsoft-sharepoint.md | 74 ++++++++++++++++--- 1 file changed, 63 insertions(+), 11 deletions(-) diff --git a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md index c765beee5..194e26d87 100644 --- a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md +++ b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md @@ -21,19 +21,19 @@ curl -s https:///_layouts/15/init.js | grep -i "spPageContextInfo" # enumerate sites & site-collections (requires at least Anonymous) python3 Office365-ADFSBrute/SharePointURLBrute.py -u https:// ``` -## 2. 2025 エクスプロイトチェーン (別名: “ToolShell”) +## 2. 2025 exploit chain (a.k.a. “ToolShell”) -### 2.1 CVE-2025-49704 – ToolPane.aspx におけるコードインジェクション +### 2.1 CVE-2025-49704 – ToolPane.aspxにおけるコードインジェクション -`/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=` は、任意の *Server-Side Include* コードをページにインジェクトすることを可能にし、後に ASP.NET によってコンパイルされます。攻撃者は `Process.Start()` を実行する C# を埋め込み、悪意のある ViewState をドロップできます。 +`/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=` は、任意の *Server-Side Include* コードをページに注入することを許可し、後にASP.NETによってコンパイルされます。攻撃者は `Process.Start()` を実行するC#を埋め込み、悪意のあるViewStateをドロップすることができます。 ### 2.2 CVE-2025-49706 – 不適切な認証バイパス -同じページは、サイトコンテキストを決定するために **X-Forms_BaseUrl** ヘッダーを信頼します。これを `/_layouts/15/` に向けることで、ルートサイトで強制される MFA/SSO を **未認証** でバイパスできます。 +同じページは、サイトコンテキストを決定するために **X-Forms_BaseUrl** ヘッダーを信頼します。これを `/_layouts/15/` に向けることで、ルートサイトで強制されるMFA/SSOを **未認証** でバイパスすることができます。 -### 2.3 CVE-2025-53770 – 未認証の ViewState デシリアライズ → RCE +### 2.3 CVE-2025-53770 – 未認証のViewStateデシリアライズ → RCE -攻撃者が `ToolPane.aspx` 内のガジェットを制御すると、**署名されていない** (または MAC のみ) `__VIEWSTATE` 値を投稿でき、これが *w3wp.exe* 内で .NET デシリアライズを引き起こし、コード実行につながります。 +攻撃者が `ToolPane.aspx` 内のガジェットを制御すると、**署名されていない** (またはMACのみの) `__VIEWSTATE` 値を投稿でき、これが *w3wp.exe* 内で.NETデシリアライズを引き起こし、コード実行につながります。 署名が有効な場合は、任意の `web.config` から **ValidationKey/DecryptionKey** を盗み、*ysoserial.net* または *ysodom* を使用してペイロードを偽造します。 ``` @@ -79,25 +79,76 @@ Response.Write(MachineKey.ValidationKey); ``` C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx ``` -シェルは、**マシンキーの読み取り / 回転**のためのエンドポイントを公開しており、これによりファーム全体でViewStateおよびASPXAUTHクッキーを偽造することができます。 +シェルは、**マシンキーの読み取り/回転**のためのエンドポイントを公開しており、これによりファーム全体でViewStateおよびASPXAUTHクッキーを偽造することができます。 -### 3.3 難読化されたバリアント (variation-3) +### 3.3 難読化されたバリアント(variation-3) 同じシェルですが: * `...\15\TEMPLATE\LAYOUTS\` に配置 * 変数名が単一の文字に削減 * サンドボックス回避とタイミングベースのAVバイパスのために `Thread.Sleep()` が追加されました。 +### 3.4 AK47C2 マルチプロトコルバックドア & X2ANYLOCK ランサムウェア(2025-2026年に観測) + +最近のインシデントレスポンス調査(Unit42 “Project AK47”)は、攻撃者が初期RCEの後にToolShellチェーンを利用して、SharePoint環境にデュアルチャネルC2インプラントとランサムウェアを展開する方法を示しています: + +#### AK47C2 – `dnsclient` バリアント + +* ハードコーディングされたDNSサーバー: `10.7.66.10` が権威あるドメイン `update.updatemicfosoft.com` と通信。 +* メッセージは静的キー `VHBD@H` でXOR暗号化されたJSONオブジェクトで、16進数エンコードされ、**サブドメインラベル**として埋め込まれています。 + +```json +{"cmd":"","cmd_id":""} +``` + +* 長いクエリはチャンク化され、`s` でプレフィックスされ、サーバー側で再構成されます。 +* サーバーは同じXOR/16進数スキームを持つTXTレコードで応答します: + +```json +{"cmd":"","cmd_id":"","type":"result","fqdn":"","result":""} +``` +* バージョン202504では、簡略化されたフォーマット `::` とチャンクマーカー `1`, `2`, `a` が導入されました。 + +#### AK47C2 – `httpclient` バリアント + +* 正確なJSON & XORルーチンを再利用しますが、**HTTP POSTボディ**内に16進数のブロブを `libcurl`(`CURLOPT_POSTFIELDS` など)を介して送信します。 +* 同じタスク/結果のワークフローを許可します: +* 任意のシェルコマンドの実行。 +* 動的なスリープ間隔とキルスイッチの指示。 + +#### X2ANYLOCK ランサムウェア + +* DLLサイドローディングを通じて読み込まれる64ビットC++ペイロード(下記参照)。 +* ファイルデータにAES-CBCを使用し、AESキーをラップするためにRSA-2048を使用し、拡張子 `.x2anylock` を追加します。 +* ローカルドライブと発見されたSMB共有を再帰的に暗号化し、システムパスをスキップします。 +* 交渉のために静的な**Tox ID**を埋め込んだ平文のメモ `How to decrypt my data.txt` をドロップします。 +* 内部の**キルスイッチ**を含みます: + +```c +if (file_mod_time >= "2026-06-06") exit(0); +``` + +#### DLLサイドローディングチェーン + +1. 攻撃者は `dllhijacked.dll` / `My7zdllhijacked.dll` を正当な `7z.exe` の隣に書き込みます。 +2. SharePointから生成された `w3wp.exe` が `7z.exe` を起動し、Windowsの検索順序のために悪意のあるDLLを読み込み、メモリ内でランサムウェアのエントリポイントを呼び出します。 +3. 別のLockBitローダーが観測され(`bbb.msi` ➜ `clink_x86.exe` ➜ `clink_dll_x86.dll`)、シェルコードを復号化し、LockBit 3.0を実行するために `d3dl1.dll` に**DLLホロウイング**を行います。 + +> [!INFO] +> X2ANYLOCKで見つかった同じ静的Tox IDが漏洩したLockBitデータベースに現れ、アフィリエイトの重複を示唆しています。 + +--- + ## 4. 検出アイデア | テレメトリ | なぜ疑わしいのか | |-----------|----------------------| -| `w3wp.exe → cmd.exe` | ワーカープロセスはシェルをほとんど生成しないはずです | +| `w3wp.exe → cmd.exe` | ワーカープロセスはシェルをほとんど生成しないはずです | | `cmd.exe → powershell.exe -EncodedCommand` | クラシックなlolbinパターン | | `debug_dev.js` または `spinstall0.aspx` を作成するファイルイベント | ToolShellからのIOC | -| `ProcessCmdLine CONTAINS ToolPane.aspx` (ETW/モジュールログ) | 公開されたPoCがこのページを呼び出します | +| `ProcessCmdLine CONTAINS ToolPane.aspx`(ETW/モジュールログ) | 公開されたPoCがこのページを呼び出します | -例 XDR / Sysmon ルール (擬似XQL): +例 XDR / Sysmonルール(擬似XQL): ``` proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe") ``` @@ -121,6 +172,7 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers - [Unit42 – Microsoft SharePointの脆弱性の積極的な悪用](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/) - [GitHub PoC – ToolShellエクスプロイトチェーン](https://github.com/real-or-not/ToolShell) - [Microsoft Security Advisory – CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704) +- [Unit42 – Project AK47 / SharePointの悪用とランサムウェア活動](https://unit42.paloaltonetworks.com/ak47-activity-linked-to-sharepoint-vulnerabilities/) - [Microsoft Security Advisory – CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770) {{#include ../../banners/hacktricks-training.md}}