Как ToolShell обходит даже самые свежие обновления.
За последние месяцы 2025 года вокруг Microsoft SharePoint развернулась целая «мини-сага» — серия уязвимостей, объединённых исследователями под условным кодовым именем ToolShell. Эта цепочка из пяти «дыр» (CVE-2025-49704, CVE-2025-49706, CVE-2025-53770, CVE-2025-53771 и, ретроспективно, CVE-2020-1147) позволила атакующим сначала получить привилегии внутри портала, затем обойти первичные патчи и, наконец, довести дело до полноценного удалённого исполнения кода без аутентификации. Ниже — подробная реконструкция событий, технический разбор каждой CVE и практические рекомендации для администраторов и архитекторов.
Название ToolShell впервые появилось благодаря исследователю Динь Хо Ань Кхоа (@_l0gg) из команды Viettel Cyber Security, который продемонстрировал эксплойт-цепочку на конкурсе Pwn2Own Berlin в мае 2025 года. Эксплойт запускает оболочку cmd.exe внутри AppPool-процесса SharePoint, используя вспомогательные скрипты, что и дало название атаке.
Почему название действительно важно? Во-первых, единое апеллятивное имя облегчает отслеживание IOC-маркеров в публичной аналитике. Во-вторых, оно играет роль «маячка» при корреляции логов — появление одноимённых артефактов в системах SIEM часто указывает на уже активную цепочку атаки, а не на точечную эксплуатацию уязвимостей, связанных с десериализацией.
Для лучшего понимания свяжем даты, патчи и всплески эксплуатации:
49704 — это классический случай небезопасной десериализации пользовательского ввода. SharePoint разрешал загрузку пользовательских шаблонов (.stp), которые внутри себя содержали данные, позднее десериализуемые без строгой валидации типа. Атакующий, имея минимальные пользовательские права, мог спровоцировать выполнение произвольного кода через процесс десериализации.
На практике цепочка выглядела так: загрузка модифицированного шаблона, вызов системного метода восстановления сайта, во время которого запускается процесс обработки данных; далее — перехват контроля в AppPool и эскалация до NT AUTHORITY\NETWORK SERVICE. В пост-эксплуатации часто использовались стандартные утилиты appcmd и winrm для закрепления.
Если 49704 был «ключом» для входа, то 49706 — «домофон», отключающий охрану. Уязвимость возникла из-за ошибки в обработчике /_layouts/15/ToolPane.aspx. Сервис неправильно валидировал HTTP Referer заголовок, что позволяло обойти аутентификацию путём указания /_layouts/SignOut.aspx в качестве источника запроса.
Связка 49704 + 49706 дала атакующим цельную RCE-цепочку без необходимости в дополнительных уязвимостях ядра OS. Неудивительно, что она стала «демо-звездой» Pwn2Own Berlin.
После июльского Patch Tuesday исследователи обнаружили способ обойти обновление. CVE-2025-53770 представляет собой более сложную уязвимость десериализации, которая позволяет атакующим выполнять произвольные команды через подготовленные ViewState объекты.
Ключевая особенность этой уязвимости заключается в том, что атакующие используют её для кражи криптографических ключей сервера (ValidationKey и DecryptionKey), которые затем позволяют им создавать валидные, подписанные ViewState payload'ы с помощью инструментов типа ysoserial.
С точки зрения атакующего сценарий стал проще: достаточно сформировать malicious POST запрос на /_layouts/15/ToolPane.aspx с правильным Referer заголовком, и отправить его, сразу получая возможность выполнения системных команд. CISA включила 53770 в каталог KEV буквально на следующий день после публикации, присвоив ей критический рейтинг CVSS 9.8.
Почти одновременно с 53770 вышел «сестринский» CVE-2025-53771 (CVSS 6.3) — уязвимость спуфинга в обработке HTTP-заголовков SharePoint. Она позволяет обходить аутентификацию путём манипуляции Referer заголовком, создавая запросы, которые SharePoint воспринимает как легитимные внутренние переходы.
Демонстрацию уязвимости быстро подняли на GitHub, а в сетях начали циркулировать готовые exploit'ы, автоматически генерирующие payload'ы для обхода защиты. Система реагировала лишь стандартными ошибками в логах ULS, которые легко игнорировались операторами.
Хотя 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 затронули:
Наиболее пострадавшие сектора включают образование, государственные организации, здравоохранение, транспорт и крупные корпорации.
Первое и самое очевидное: патчи критических CVE надо устанавливать в день их выхода, особенно когда поставщик открыто говорит об «активной эксплуатации». Второе — никогда не относитесь к «low-privileged» уязвимостям снисходительно: они часто становятся ключевым звеном сложной эксплойт-цепочки.
Наконец, многое зависит от того, насколько правильно построена модель доверия внутри фермы: разнос сервисных и пользовательских AppPool, минимальные списки ACL для web.config, обязательный мониторинг machine-key ротации и использование Conditional Access для публичных конечных точек.
Файловые индикаторы:
Сетевые индикаторы:
Логовые индикаторы:
Подозрительные IP-адреса (особенно активные 18-19 июля 2025):
Hash'и вредоносных файлов (по данным Symantec):
Немедленные действия:
Дополнительные меры защиты:
Сбор этих индикаторов можно автоматизировать через Microsoft Defender for Endpoint, настроив Advanced Hunting-запросы на упомянутые ключевые слова. SentinelOne и другие провайдеры безопасности уже интегрировали соответствующие правила обнаружения в свои платформы.
ToolShell — не отдельная CVE, а показательный пример эволюции уязвимости: от «низкопривилегированной» десериализации до полноценного RCE без логина. История показывает циклическую природу современных кибератак: эксплойт → патч → обход → новый патч. SecurityLab.ru отмечает, что атака вышла из-под контроля именно из-за способности злоумышленников красть криптографические ключи, что позволяет им маскировать вредоносную активность даже после установки обновлений.
Главное, чему учит нас эта история: один-единственный неполный патч способен открыть дорогу целому каскаду обходов. Китайские группировки продемонстрировали не только техническую изощрённость, но и скорость адаптации — от демонстрации на Pwn2Own до массовой эксплуатации прошло всего два месяца. Как показывают исследования Verizon, организациям в среднем требуется 55 дней для устранения 50% критических уязвимостей, в то время как массовые эксплуатации начинаются уже через пять дней.
Поэтому лучшая защита — дисциплина обновлений, многоуровневая аутентификация, постоянная телеметрия и, что особенно важно, готовность к быстрому реагированию на появление новых вариантов известных уязвимостей. В мире, где поддержка on-premise SharePoint завершается в июле 2026 года, организациям стоит серьёзно рассмотреть миграцию в облако не только из соображений удобства, но и безопасности.
Спойлер: мы раскрываем их любимые трюки