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

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

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

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

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

Категории

Все категории
Loading categories
BlueGate-CVE-2020-0609 — BlueGate Exploit validator — валидатор RD Gateway для CVE-2020-0609 и CVE-2020-0610 (BlueGate) с использованием OpenSSL DTLS через UDP/3391. | Kitploit
Инструменты/GitHubGitHub/bhanunamikaze/bluegate-cve-2020-0609
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияСетевая безопасностьТестирование на Проникновение
GitHubbhanunamikaze/bluegate-cve-2020-0609

BlueGate-CVE-2020-0609

BlueGate Exploit validator — валидатор RD Gateway для CVE-2020-0609 и CVE-2020-0610 (BlueGate) с использованием OpenSSL DTLS через UDP/3391.

Репозиторий
14 ч 35 мин назадЕщё не проверено

Популярное

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

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

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

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

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

RD Gateway BlueGate Validator

CVE-2020-0609 / CVE-2020-0610 — инструмент удалённой проверки

Небольшая Python-утилита только для проверки, предназначенная для удалённой валидации поведения патчей, связанных с уязвимостями Microsoft Remote Desktop Gateway:

  • CVE-2020-0609
  • CVE-2020-0610

Данные уязвимости, обычно ассоциируемые с исследованием BlueGate, затрагивают Microsoft Remote Desktop Gateway (RD Gateway) и потенциально могут позволить неаутентифицированному удалённому злоумышленнику выполнить произвольный код на незапатченном сервере.

Эта утилита не реализует удалённое выполнение кода, отказ в обслуживании, закрепление в системе или доставку полезной нагрузки.

Она выполняет единственный проверочный запрос на уровне протокола и оценивает ответ RD Gateway.


Сводка по уязвимостям

СвойствоДетали
CVECVE-2020-0609, CVE-2020-0610
КомпонентMicrosoft Remote Desktop Gateway
Тип уязвимостиУдалённое выполнение кода
Требуется аутентификацияНет
Взаимодействие с пользователемНет
Вектор атакиСеть
КритичностьКритическая
CVSS v3.19.8
Вектор CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Основной протоколТранспорт RD Gateway по UDP
Порт UDP по умолчанию3391/UDP
Публичное названиеBlueGate

Затронутые семейства Windows Server включают:

root@kitploit:~
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019

Системы, на которые установлены обновления безопасности Microsoft за январь 2020 года или более поздние накопительные обновления, должны содержать соответствующие исправления.


Почему UDP/3391, а не HTTPS/443?

Развёртывание RD Gateway может открывать несколько связанных служб.

Например:

root@kitploit:~
                  Microsoft RD Gateway
                         |
            +------------+------------+
            |                         |
        TCP/443                     UDP/3391
            |                         |
      HTTPS / RDWeb             RD Gateway UDP
      RPC-over-HTTPS             DTLS-транспорт

Портал RDWeb может быть виден через браузер по адресу:

root@kitploit:~
https://gateway.example/RDWeb/

а функциональность RD Gateway также может быть доступна через TCP/443.

Однако поверхность атаки, проверяемая данным валидатором в стиле BlueGate, — это транспорт RD Gateway по UDP, обычно прослушивающий порт:

root@kitploit:~
UDP/3391

Поэтому сканер использует DTLS поверх UDP/3391, а не HTTPS поверх TCP/443.

Изменение порта в скрипте на 443 означало бы проверку:

root@kitploit:~
UDP/443

что не то же самое, что:

root@kitploit:~
TCP/443

Подтверждение работы службы RD Gateway по UDP

Перед запуском валидатора уязвимости порт UDP/3391 можно проверить с помощью Nmap:

root@kitploit:~
nmap -Pn -sU -p3391 --reason <TARGET>

Пример:

root@kitploit:~
PORT     STATE SERVICE
3391/udp open  savant

Метка службы savant — это просто сопоставление имени порта в Nmap и не обязательно идентифицирует реальную службу.

Службу DTLS RD Gateway можно более надёжно подтвердить с помощью OpenSSL.

DTLS 1.0

root@kitploit:~
openssl s_client \
    -dtls1 \
    -connect <TARGET>:3391 \
    -state

DTLS 1.2

root@kitploit:~
openssl s_client \
    -dtls1_2 \
    -connect <TARGET>:3391 \
    -state

Успешное рукопожатие подтверждает, что служба DTLS отвечает на UDP/3391.

Типичный успешный вывод включает:

root@kitploit:~
SSL handshake has read ...
New, SSLv3, Cipher is ...
Protocol: DTLSv1

или:

root@kitploit:~
Protocol: DTLSv1.2

Что делает этот инструмент

Валидатор:

  1. Запускает DTLS-клиент OpenSSL.
  2. Подключается к целевому RD Gateway через UDP/3391.
  3. Ожидает завершения DTLS-рукопожатия.
  4. Отправляет один проверочный пакет фрагментации в стиле BlueGate.
  5. Ожидает ответ приложения RD Gateway.
  6. Извлекает итоговый статусный DWORD из 16-байтового ответа.
  7. Классифицирует ответ.

Для проверки не требуются учётные данные для аутентификации.

Утилита намеренно содержит:

root@kitploit:~
НИКАКОЙ обратной оболочки
НИКАКОГО выполнения команд
НИКАКОЙ эксплойт-нагрузки
НИКАКОГО цикла отказа в обслуживании
НИКАКОЙ повторной передачи повреждённых пакетов

Требования

Протестировано с:

root@kitploit:~
Python 3
Клиент командной строки OpenSSL
Linux

Проверьте OpenSSL:

root@kitploit:~
openssl version

Проверьте Python:

root@kitploit:~
python3 --version

Модуль OpenSSL для Python не требуется, поскольку скрипт запускает системную реализацию openssl s_client.

Это позволяет избежать проблем совместимости, с которыми сталкивались более старые реализации BlueGate, полагавшиеся на устаревшие API Python/OpenSSL, такие как:

root@kitploit:~
DTLSv1_client_method

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

Базовое сканирование:

root@kitploit:~
python3 BlueGate.py <TARGET>

Пример:

root@kitploit:~
python3 BlueGate.py 192.0.2.10

Пункт назначения по умолчанию:

root@kitploit:~
UDP/3391

Указание порта

root@kitploit:~
python3 BlueGate.py \
    -P 3391 \
    192.0.2.10

DTLS 1.0

root@kitploit:~
python3 BlueGate.py \
    --dtls 1 \
    192.0.2.10

DTLS 1.2

root@kitploit:~
python3 BlueGate.py \
    --dtls 1.2 \
    192.0.2.10

Проверка обоих вариантов может быть полезной:

root@kitploit:~
python3 BlueGate.py --dtls 1 192.0.2.10

python3 BlueGate.py --dtls 1.2 192.0.2.10

Пример запатченной системы

Пример результата для запатченного RD Gateway:

root@kitploit:~
[*] Target: 192.0.2.10:3391/udp
[*] DTLS mode: 1.2
[*] Starting OpenSSL DTLS client...
[+] DTLS handshake completed.
[*] Probe (11 bytes): 0500070000004100010041
[*] Sending one validation packet...

[*] Response length: 16
[*] Response hex: 02000c0000000000ffffffffffff0080
[*] Status: 0x8000ffff

[+] PATCHED SIGNATURE RECEIVED
    Server returned 0x8000ffff, which is
    the rejection value used by the public
    CVE detector to identify a patched host.

Тот же ответ запатченной системы может также возвращаться через DTLS 1.0:

root@kitploit:~
Response length: 16
Response hex: 02000c0000000000ffffffffffff0080
Status: 0x8000ffff

Понимание результата

0x8000ffff

Ответ, заканчивающийся на:

root@kitploit:~
0x8000ffff

— это значение отклонения, используемое публичными сканерами BlueGate/RD Gateway для идентификации условия некорректной фрагментации как отклонённого.

Поэтому инструмент сообщает:

root@kitploit:~
PATCHED SIGNATURE RECEIVED

Это даёт веские доказательства на уровне протокола того, что конкретное условие, проверяемое для CVE-2020-0609/CVE-2020-0610, не эксплуатируемо с помощью известной публичной техники обнаружения.


Другой 16-байтовый статус

Если получен 16-байтовый ответ RD Gateway, но итоговый DWORD отличается от:

root@kitploit:~
0x8000ffff

инструмент сообщает:

root@kitploit:~
DETECTOR POSITIVE

Это следует рассматривать как:

root@kitploit:~
Потенциально уязвим

а не как немедленное доказательство успешного удалённого выполнения кода.

Результат желательно подтвердить с помощью:

root@kitploit:~
Информации о сборке Windows
Информации об установленных обновлениях KB
Инвентаризации патчей Microsoft
Сканирования уязвимостей с учётными данными

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


Нет ответа

Если ответ приложения не получен:

root@kitploit:~
INCONCLUSIVE

Инструмент намеренно не классифицирует таймаут как уязвимость.

Таймаут может быть вызван:

  • поведением межсетевого экрана
  • потерей UDP-пакетов
  • несовместимостью DTLS
  • сетевой фильтрацией
  • поведением приложения
  • конфигурацией службы

Поэтому:

root@kitploit:~
Нет ответа != Уязвим

Логика обнаружения

Публичный подход к обнаружению BlueGate/RDG использует пакет фрагментации RD Gateway, содержащий необычное количество фрагментов.

Концептуально:

root@kitploit:~
DTLS-соединение
      |
      v
+-----------------------+
| Парсер UDP RD Gateway |
+-----------------------+
      |
      | проверочный пакет фрагментации
      v
+-----------------------+
| Проверка фрагментов   |
+-----------------------+
      |
      +---- запатчен ----> отклонение
      |                    0x8000ffff
      |
      +---- неожиданно ---> требует исследования

Проверочный пакет, используемый этой утилитой, отправляется только один раз.


Правовое уведомление

Этот проект предназначен исключительно для:

  • авторизованного тестирования на проникновение
  • валидации уязвимостей
  • оборонительных исследований безопасности
  • лабораторных сред
  • образовательных исследований в области безопасности

Проверяйте только те системы, на которые у вас есть явное разрешение.

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


Благодарности

Методология обнаружения основана на публично задокументированных исследованиях уязвимостей Microsoft RD Gateway CVE-2020-0609 и CVE-2020-0610, включая работу, выполненную сообществом исследователей безопасности BlueGate и RD Gateway.

Данный проект в первую очередь модернизирует процесс валидации, используя системную реализацию DTLS OpenSSL вместо устаревших внутренних механизмов DTLS pyOpenSSL.

Скачать инструмент