ToolShell: RCE без логина

ToolShell: RCE без логина

Как ToolShell обходит даже самые свежие обновления.

image

За последние месяцы 2025 года вокруг Microsoft SharePoint развернулась целая «мини-сага» — серия уязвимостей, объединённых исследователями под условным кодовым именем ToolShell. Эта цепочка из пяти «дыр» (CVE-2025-49704, CVE-2025-49706, CVE-2025-53770, CVE-2025-53771 и, ретроспективно, CVE-2020-1147) позволила атакующим сначала получить привилегии внутри портала, затем обойти первичные патчи и, наконец, довести дело до полноценного удалённого исполнения кода без аутентификации. Ниже — подробная реконструкция событий, технический разбор каждой CVE и практические рекомендации для администраторов и архитекторов.

Откуда взялось название «ToolShell» и почему об этом важно говорить

Название ToolShell впервые появилось благодаря исследователю Динь Хо Ань Кхоа (@_l0gg) из команды Viettel Cyber Security, который продемонстрировал эксплойт-цепочку на конкурсе Pwn2Own Berlin в мае 2025 года. Эксплойт запускает оболочку cmd.exe внутри AppPool-процесса SharePoint, используя вспомогательные скрипты, что и дало название атаке.

Почему название действительно важно? Во-первых, единое апеллятивное имя облегчает отслеживание IOC-маркеров в публичной аналитике. Во-вторых, оно играет роль «маячка» при корреляции логов — появление одноимённых артефактов в системах SIEM часто указывает на уже активную цепочку атаки, а не на точечную эксплуатацию уязвимостей, связанных с десериализацией.

Краткая хронология событий

Для лучшего понимания свяжем даты, патчи и всплески эксплуатации:

  1. 17 мая 2025: на Pwn2Own Berlin команда Viettel Cyber Security демонстрирует цепочку из CVE-2025-49704 → 49706, добиваясь RCE в SharePoint Server за $100,000 bounty.
  2. 9 июля 2025: июльский пакет Patch Tuesday закрывает 49704 и 49706, однако исправления оказываются неполными.
  3. 14 июля 2025: исследователи из CODE WHITE GmbH публично воспроизводят оригинальный ToolShell эксплойт.
  4. 18 июля 2025: Eye Security фиксирует первые атаки в дикой природе, использующие обход патча со свежими CVE-2025-53770 и 53771.
  5. 20 июля 2025: CISA добавляет CVE-2025-53770 в каталог Known Exploited Vulnerabilities с экстренным сроком устранения.
  6. 21 июля 2025: Microsoft выпускает внеочередные обновления для SharePoint Server Subscription Edition и SharePoint Server 2019.
  7. 22 июля 2025: Microsoft Threat Intelligence публикует технический отчёт, подтверждая активную эксплуатацию уязвимостей китайскими группировками Linen Typhoon, Violet Typhoon и Storm-2603.

CVE-2025-49704: первый удар

49704 — это классический случай небезопасной десериализации пользовательского ввода. SharePoint разрешал загрузку пользовательских шаблонов (.stp), которые внутри себя содержали данные, позднее десериализуемые без строгой валидации типа. Атакующий, имея минимальные пользовательские права, мог спровоцировать выполнение произвольного кода через процесс десериализации.

На практике цепочка выглядела так: загрузка модифицированного шаблона, вызов системного метода восстановления сайта, во время которого запускается процесс обработки данных; далее — перехват контроля в AppPool и эскалация до NT AUTHORITY\NETWORK SERVICE. В пост-эксплуатации часто использовались стандартные утилиты appcmd и winrm для закрепления.

CVE-2025-49706: эскалация изнутри

Если 49704 был «ключом» для входа, то 49706 — «домофон», отключающий охрану. Уязвимость возникла из-за ошибки в обработчике /_layouts/15/ToolPane.aspx. Сервис неправильно валидировал HTTP Referer заголовок, что позволяло обойти аутентификацию путём указания /_layouts/SignOut.aspx в качестве источника запроса.

Связка 49704 + 49706 дала атакующим цельную RCE-цепочку без необходимости в дополнительных уязвимостях ядра OS. Неудивительно, что она стала «демо-звездой» Pwn2Own Berlin.

CVE-2025-53770: обход патча и момент истины

После июльского Patch Tuesday исследователи обнаружили способ обойти обновление. CVE-2025-53770 представляет собой более сложную уязвимость десериализации, которая позволяет атакующим выполнять произвольные команды через подготовленные ViewState объекты.

Ключевая особенность этой уязвимости заключается в том, что атакующие используют её для кражи криптографических ключей сервера (ValidationKey и DecryptionKey), которые затем позволяют им создавать валидные, подписанные ViewState payload'ы с помощью инструментов типа ysoserial.

С точки зрения атакующего сценарий стал проще: достаточно сформировать malicious POST запрос на /_layouts/15/ToolPane.aspx с правильным Referer заголовком, и отправить его, сразу получая возможность выполнения системных команд. CISA включила 53770 в каталог KEV буквально на следующий день после публикации, присвоив ей критический рейтинг CVSS 9.8.

CVE-2025-53771: двойной удар и обход аутентификации

Почти одновременно с 53770 вышел «сестринский» CVE-2025-53771 (CVSS 6.3) — уязвимость спуфинга в обработке HTTP-заголовков SharePoint. Она позволяет обходить аутентификацию путём манипуляции Referer заголовком, создавая запросы, которые SharePoint воспринимает как легитимные внутренние переходы.

Демонстрацию уязвимости быстро подняли на GitHub, а в сетях начали циркулировать готовые exploit'ы, автоматически генерирующие payload'ы для обхода защиты. Система реагировала лишь стандартными ошибками в логах ULS, которые легко игнорировались операторами.

CVE-2020-1147: уроки прошлого, которые мы забыли

Хотя CVE-2020-1147 формально относится к .NET Framework, именно SharePoint 2013/2016/2019 стал главным «бенефициаром» проблемы — портал активно использует десериализацию XML через DataSet и DataTable компоненты. Уязвимость возникает из-за недостаточной проверки источника разметки XML-файлов при обработке входящих данных.

Атака выглядела как загрузка специально сформированного XML-документа с опасными типами данных, что приводило к выполнению произвольного кода в контексте процесса, ответственного за десериализацию XML-контента. Microsoft выпустила патч ещё в 2020-м, но многие организации отложили обновление, полагая, что уязвимость теоретическая.

Именно плохая «гигиена патчей» пятилетней давности позволила хакерам в 2025-м использовать 1147 как альтернативный вход в устаревшие фермы SharePoint, где обработка XML ещё использовала старые, небезопасные методы десериализации. Таким образом, «Лаборатория Касперского» впервые связала CVE-2020-1147 с текущей ToolShell-кампанией, показав, как старые уязвимости становятся частью современных эксплойт-цепочек.

Атрибуция: китайские группировки в действии

Microsoft Threat Intelligence подтвердила, что за эксплуатацией ToolShell стоят несколько китайских группировок:

Linen Typhoon (также известная как APT27, Bronze Union, Emissary Panda) — активна с 2012 года, специализируется на краже интеллектуальной собственности у правительственных, оборонных организаций и правозащитных групп. Группа известна использованием drive-by компромиссов и эксплуатацией существующих уязвимостей.

Violet Typhoon (APT31, BRONZE VINEWOOD, JUDGMENT PANDA) — действует с 2015 года, фокусируется на шпионаже против бывших военных и правительственных сотрудников, НКО, think tanks, высшего образования, СМИ и финансового сектора. Группа постоянно сканирует веб-инфраструктуру на предмет уязвимостей.

Storm-2603 — предположительно связанная с Китаем группа, которая использует уязвимости SharePoint для развёртывания ransomware, включая Warlock и LockBit. Microsoft отмечает, что цели этой группы пока до конца не ясны.

В дикой природе: масштаб проблемы

По данным различных источников, уязвимости ToolShell затронули:

  • Более 400 организаций по данным Microsoft
  • 84 уникальные клиентские организации по данным Sophos, распределённые по 21 стране
  • Сотни попыток атак на более чем 160 клиентских сред по данным CrowdStrike

Наиболее пострадавшие сектора включают образование, государственные организации, здравоохранение, транспорт и крупные корпорации.

Уроки для архитекторов и администраторов

Первое и самое очевидное: патчи критических CVE надо устанавливать в день их выхода, особенно когда поставщик открыто говорит об «активной эксплуатации». Второе — никогда не относитесь к «low-privileged» уязвимостям снисходительно: они часто становятся ключевым звеном сложной эксплойт-цепочки.

Наконец, многое зависит от того, насколько правильно построена модель доверия внутри фермы: разнос сервисных и пользовательских AppPool, минимальные списки ACL для web.config, обязательный мониторинг machine-key ротации и использование Conditional Access для публичных конечных точек.

Как обнаружить ToolShell в своей инфраструктуре

Файловые индикаторы:

  • Файлы с именами spinstall0.aspx, spinstall.aspx, spinstall1.aspx, spinstall2.aspx в каталоге \LAYOUTS\
  • Необычные .aspx файлы в SharePoint directories
  • Временные DLL в каталоге %SystemRoot%\Temp\ с префиксом wsdyna-

Сетевые индикаторы:

  • Подозрительные POST запросы к /_layouts/15/ToolPane.aspx?DisplayMode=Edit
  • HTTP запросы с Referer заголовком /_layouts/SignOut.aspx
  • Аномальные обращения к /_api/web/lists endpoints

Логовые индикаторы:

  • Записи InvalidSignatureAlgorithm или TokenLifetimeException в ULS-логах
  • Вызовы powershell.exe с подозрительными параметрами в Windows Event ID 4688
  • Ошибки десериализации в SharePoint логах

Подозрительные IP-адреса (особенно активные 18-19 июля 2025):

  • 107.191.58[.]76
  • 104.238.159[.]149
  • 96.9.125[.]147

Hash'и вредоносных файлов (по данным Symantec):

  • fd03d881f0b3069f5adec6ae69181899e72fd27b3e75bb9075d0798ed3184274
  • 04f7326c40c33fda51010d067915a1e50b63e00b4ab86db00158d5e067a78ff6
  • 430cf700c7f1b625fded4da4084a0a6c0240b15d52e624a2361bc2512ca2355d

Стратегия устранения и долгосрочная защищённость

Немедленные действия:

  1. Установите последние кумулятивные обновления (июль 2025 OOB update)
  2. Включите AMSI интеграцию в SharePoint и разверните Microsoft Defender AV на всех SharePoint серверах
  3. Выполните «сброс доверия» — регенерацию machine-key и STSSigningCertificate через UpdateConfigurationDatabase
  4. Перезапустите IIS командой iisreset.exe после ротации ключей

Дополнительные меры защиты:

  • Внедрите WAF-правила, блокирующие JWT с пустым заголовком alg и аномальными временными метками. Многие поставщики (Cloudflare, F5, Imperva, Positie Technologies) уже включили готовые сигнатуры ToolShell в дефолтные правила
  • Настройте Advanced Hunting запросы в Microsoft Defender for Endpoint для поиска индикаторов ToolShell
  • Отключите от интернета SharePoint серверы, достигшие end-of-life (например, SharePoint 2013 и более ранние версии)
  • Реализуйте комплексное логирование для выявления активности эксплуатации

Сбор этих индикаторов можно автоматизировать через Microsoft Defender for Endpoint, настроив Advanced Hunting-запросы на упомянутые ключевые слова. SentinelOne и другие провайдеры безопасности уже интегрировали соответствующие правила обнаружения в свои платформы.

Заключение

ToolShell — не отдельная CVE, а показательный пример эволюции уязвимости: от «низкопривилегированной» десериализации до полноценного RCE без логина. История показывает циклическую природу современных кибератак: эксплойт → патч → обход → новый патч. SecurityLab.ru отмечает, что атака вышла из-под контроля именно из-за способности злоумышленников красть криптографические ключи, что позволяет им маскировать вредоносную активность даже после установки обновлений.

Главное, чему учит нас эта история: один-единственный неполный патч способен открыть дорогу целому каскаду обходов. Китайские группировки продемонстрировали не только техническую изощрённость, но и скорость адаптации — от демонстрации на Pwn2Own до массовой эксплуатации прошло всего два месяца. Как показывают исследования Verizon, организациям в среднем требуется 55 дней для устранения 50% критических уязвимостей, в то время как массовые эксплуатации начинаются уже через пять дней.

Поэтому лучшая защита — дисциплина обновлений, многоуровневая аутентификация, постоянная телеметрия и, что особенно важно, готовность к быстрому реагированию на появление новых вариантов известных уязвимостей. В мире, где поддержка on-premise SharePoint завершается в июле 2026 года, организациям стоит серьёзно рассмотреть миграцию в облако не только из соображений удобства, но и безопасности.

Хакеры ненавидят этот канал!

Спойлер: мы раскрываем их любимые трюки

Расстройте их планы — подпишитесь