У вас есть WSUS? Значит мы идём к вам!
У вас есть WSUS? Значит мы идём к вам!

Введение

Приветствую! В середине октября вышла новая критическая уязвимость для Windows серверов с ролью WSUS (Windows Server Update Services) — CVE-2025-59287. 

А меня по‑прежнему зовут Ян, я — старший специалист по пентестам в кибербез-компании Xilant. В этом тексте мы разберём не только как работает эта уязвимость, но и посмотрим на существующие эксплоиты. А также расскажем как защититься.

Предупреждение

Данная статья предоставляется в информативных целях для рекомендации по повышению безопасности информационных ресурсов. Запрещается использование данных материалов в целях атаки на системы третьих лиц и может повлечь за собой уголовную ответственность. 

Поэтому автор снимает с себя всякую ответственность за использование данного материала третьими лицами в противоправных целях!

Что произошло

14 октября этого года Microsoft сообщила о критической уязвимости: CVE-2025-59287. Для успешной атаки требуется только сетевой доступ к портам 8530 / 8531, на которых должен слушать сервис WSUS.

Репорт от поисковика уязвимостей shodan.io показывает, что по всему миру в открытом доступе находятся около полумиллиона хостов с открытыми портами WSUS. Колоссальное поле для атаки!

Обзор поверхности для атаки в интернете.
Обзор поверхности для атаки в интернете.

Если вы подумаете, что ваша инфраструктура в безопасности, потому что ваш WSUS server находится во внутренней сети, то это не повод расслабляться — внутренние угрозы ещё никто не отменял, да и не далёк тот час когда появится малварь заточенная под эту уязвимость. И тогда через обычное фишинговое письмо грозит компрометация всей Active Directory.

Что болит

Так почему же так опасна эта уязвимость с коэффициентом критичности 9,8 по CVSS?

Уже выпущено множество статей раскрывающих внутреннее устройство уязвимости на основе C# кода. Поэтому буду краток — ошибка безопасности кроется в передаче сериализованных данных напрямую в метод BinaryFormatter.Deserialize() в коде WSUS:

Unsafe SoapFormatter Deserialization
public static object DeserializeObject(byte[] bytes)
{
    SoapFormatter soapFormatter = new SoapFormatter();
    soapFormatter.Binder = new WSUSDeserializationBinder("Microsoft.UpdateServices.Administration");
 
    if (bytes == null)
        throw new ArgumentNullException("bytes");
 
    MemoryStream memoryStream = new MemoryStream(bytes);
    return soapFormatter.Deserialize(memoryStream);  // ← здесь RCE
}

Данные для десериализации передаются через SOAP cookie авторизации в обычном HTTP запросе. 

Здесь мы имеем дело с типичной небезопасной десериализацией (Insecure Deserialization), которая позволяет удалённо без каких-либо кредов выполнять произвольный код.

Значит можно, к примеру, дампнуть образ lsass памяти или просто изменить админ-креды. Да, и банального шифровальщика тоже могут запустить.

Атака

Теперь к обзору эксплоитов. Забьём в гугл:

CVE-2025-59287 POC github

И видим, что есть китайская версия на Python и буржуйская на Powershell. Обе версии мне нравятся, потому что они рабочие в отличии от оригинала на C#, где не хватает HTTP запросов.

Рассмотри китайский вариант. Все скрипты всегда советую вам перепроверять перед запуском :)

В этом эксплоите есть все шаги для полного цикла атаки:

    1. Получить ID сервера

    2. Запросить SimpleAuth cookie авторизации

    3. Получить ReportingWebService cookie

    4. Отправить сериализованную полезную нагрузку 

Сама полезная нагрузка находится в переменной popcalc. Если её декодировать, то можно догадаться, что в исходном варианте она открывает калькулятор на целевой системе после отработки.

echo AAEAAAD/////AQAAAAAAAAAM...ovL2JpdC5seS8zanNQcVF6In0K | base64 -d
 
<...>
        <sd:ProcessStartInfo Arguments="/c calc"  
<...>

Если захотите сгенерить что-то поинтереснее, то придётся изучить утилиту ysoserial.net и создать свою «полезную» нагрузку. 

Но есть одно НО: для активации полезной нагрузки на целевом сервере необходимо, чтобы админ зашёл в WSUS консоль ,ИЛИ чтобы сервис WSUS был перезагружен, например через Services App. Думаю, что одно из этих событий крайне вероятно, ведь после активации эксплоита сервис WSUS подвисает и выдаёт ошибку.

Рассмотрим действие этой уязвимости на примере всё того же калькулятора.

Админ-калькулятор запускается сразу после входа в панель WSUS.
Админ-калькулятор запускается сразу после входа в панель WSUS.

Так выглядит древо процессов после отработки эксплоита:

Он будет отрабатывать даже после перезапуска WSUS что даёт нам не только удалённое выполнение кода, но и персистентность!

Для тех, кого я запутал, предлагаю посмотреть коротенькое видео с демонстрацией от одного итальянского исследователя:

И, напоследок, было замечено, что создатели знаменитого Metasploit поставили себе также задачу по доработке эксплоита: https://github.com/rapid7/metasploit-framework/issues/20635

Ждём новые варианты!

Как лечить

Ломать — не строить. Для защиты от данной угрозы советуем вам выполнить следующие действия:

  • Идентифицируйте все сервера с активной WSUS ролью. Это можно  сделать, просканировав сеть на наличие портов 8530/8531: masscan -p8530,8531 192.1.1.0/24

  • Самый надёжный способ — отключить роль WSUS на всех серверах до тех пор, пока не будет установлено обновление от 23.10.2025. Или временно заблокируйте 8530/8531 через правила файрвола пока не установите обновление. Также убедитесь, что эти порты не доступны в интернете (скан внешнего периметра). 

  • Установить последний Hotfix на все сервера WSUS.

  • Пригласите пентестера и попросите проверить вашу Active Directory :)

Заключение

Давненько не было таких «полезных» атак, напоминающих чем-то Bluekeep или EternalBlue. Но это лишний раз доказывает, что Windows и Active Directory уже давно под прицелом и необходимо постоянно следить за обновлениями.

Спасибо, что дочитали до конца! Я постарался максимально охватить все доступные источники по этой теме и думаю получилось неплохо.

Желаю вам Удачи и Безопасности!

Комментарии (8)


  1. gotch
    30.10.2025 13:46

    Интересная уязвимость, и патч замечательный:

    After installing this update or later updates, Windows Server Update Services (WSUS) does not display synchronization error details within its error reporting. 

    Лучший способ исправить ошибку - удалить код целиком. )
    Wsus работает от "Network service", у нее не должно быть административных привилегий, поэтому вряд ли у вас получится сделать дамп LSASS (или LSAISO) и т.д.


    1. Lev3250
      30.10.2025 13:46

      Учитывая, что wsus они собираются убить полностью, то не велика потеря куска сервиса


      1. gotch
        30.10.2025 13:46

        Собираться-то можно, а сделать - сомневаюсь. У последнего сервера - end of support - November 14, 2034, так что на наш век WSUS'а хватит.


        1. yanzar Автор
          30.10.2025 13:46

          Ну, не все такие быстрые :) Я видел на своей практике хосты, которых больше года не обновляли.


      1. yanzar Автор
        30.10.2025 13:46

        Нет, мы собираемся получить админку на центральном серваке и продолжить латеральное движение внутрь сети. А может и админка на DC сразу прокнет, если WSUS на ней.


    1. yanzar Автор
      30.10.2025 13:46

      Да, верно, что сам WSUS - NT AUTHORITY\NetworkService

      ServiceName    DisplayName              Status ServiceOwner
      -----------    -----------              ------ ------------
      WSusCertServer WSUS Certificate Server Stopped LocalSystem
      WsusService    WSUS Service            Running NT AUTHORITY\NetworkService

      Но в procmon видно, что ещё кроме WSUS, тригерится mmc.exe от админа

      Это точно работает, потому что моя собственная версия эксплоита может менять пароль админа. А раз такое возможно, то и psexec запустить можно и перекинуться на SYSTEM. А там и до lsass рукой подать.


  1. Mnemonic0
    30.10.2025 13:46

    Очередная уязвимость, но в условиях сегментации и пропуска трафика только определённого типа всё блокируется ещё на уровне фаерволов. Трафик банально не соответсвует трафику передаваемому wsus (не только порт, но и содержимое) и банально дропается той же PaloAlto.

    Так что не паримся, обновляемся штатно. Ничего не убьёт корпоративную сеть.


    1. yanzar Автор
      30.10.2025 13:46

      Совет хороший! Сетевая сегментация + файрволл помогут. Вот только, как гарантировать, что атакующий не окажется в одной подсети с WSUS?