Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
BlueGate-CVE-2020-0609 — BlueGate Exploit validator - Validador do RD Gateway para CVE-2020-0609 e CVE-2020-0610 (BlueGate) usando OpenSSL DTLS sobre UDP/3391. | Kitploit
Ferramentas/GitHubGitHub/bhanunamikaze/bluegate-cve-2020-0609
Scanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoSegurança de RedeTestes de Penetração
GitHubbhanunamikaze/bluegate-cve-2020-0609

BlueGate-CVE-2020-0609

BlueGate Exploit validator - Validador do RD Gateway para CVE-2020-0609 e CVE-2020-0610 (BlueGate) usando OpenSSL DTLS sobre UDP/3391.

Ver Repositório
há 13h 45mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Validador RD Gateway BlueGate

CVE-2020-0609 / CVE-2020-0610 Ferramenta de Validação Remota

Um utilitário Python pequeno somente de verificação para validar remotamente o comportamento do patch associado às vulnerabilidades do Microsoft Remote Desktop Gateway:

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

As vulnerabilidades, comumente associadas à pesquisa BlueGate, afetam o Microsoft Remote Desktop Gateway (RD Gateway) e podem potencialmente permitir que um atacante remoto não autenticado execute código arbitrário em um servidor sem patch.

Este utilitário não implementa execução remota de código, negação de serviço, persistência ou entrega de payload.

Ele realiza uma única solicitação de validação em nível de protocolo e avalia a resposta do RD Gateway.


Resumo da Vulnerabilidade

PropriedadeDetalhes
CVEsCVE-2020-0609, CVE-2020-0610
ComponenteMicrosoft Remote Desktop Gateway
Tipo de VulnerabilidadeExecução Remota de Código
Autenticação NecessáriaNão
Interação do UsuárioNão
Vetor de AtaqueRede
SeveridadeCrítica
CVSS v3.19.8
Vetor CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Protocolo PrincipalTransporte UDP do RD Gateway
Porta UDP Padrão3391/UDP
Nome PúblicoBlueGate

As famílias afetadas do Windows Server incluem:

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

Sistemas que instalaram as atualizações de segurança de janeiro de 2020 da Microsoft ou atualizações cumulativas posteriores devem conter as correções relevantes.


Por que UDP/3391 em vez de HTTPS/443?

Uma implantação do RD Gateway pode expor múltiplos serviços relacionados.

Por exemplo:

root@kitploit:~
                  Microsoft RD Gateway
                         |
            +------------+------------+
            |                         |
        TCP/443                     UDP/3391
            |                         |
      HTTPS / RDWeb             RD Gateway UDP
      RPC-over-HTTPS             transporte DTLS

O portal RDWeb pode ser visível através de um navegador em:

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

e a funcionalidade do RD Gateway também pode ser exposta através de TCP/443.

No entanto, a superfície de ataque testada por este validador estilo BlueGate é o transporte UDP do RD Gateway, normalmente escutando em:

root@kitploit:~
UDP/3391

O scanner, portanto, usa DTLS sobre UDP/3391, não HTTPS sobre TCP/443.

Alterar o script para a porta 443 significaria testar:

root@kitploit:~
UDP/443

que não é a mesma coisa que:

root@kitploit:~
TCP/443

Confirmando o Serviço UDP do RD Gateway

Antes de executar o validador de vulnerabilidade, o UDP/3391 pode ser verificado com o Nmap:

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

Exemplo:

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

O rótulo de serviço savant é simplesmente o mapeamento de nome de porta do Nmap e não identifica necessariamente o serviço real.

O serviço DTLS do RD Gateway pode ser confirmado de forma mais confiável com o OpenSSL.

DTLS 1.0

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

DTLS 1.2

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

Um handshake bem-sucedido confirma que um serviço DTLS está respondendo em UDP/3391.

A saída típica de sucesso inclui:

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

ou:

root@kitploit:~
Protocol: DTLSv1.2

O Que Esta Ferramenta Faz

O validador:

  1. Inicia um cliente DTLS OpenSSL.
  2. Conecta-se ao RD Gateway alvo via UDP/3391.
  3. Aguarda a conclusão do handshake DTLS.
  4. Envia um único pacote de validação de fragmentação estilo BlueGate.
  5. Aguarda a resposta do aplicativo RD Gateway.
  6. Extrai o DWORD de status final de uma resposta de 16 bytes.
  7. Classifica a resposta.

Nenhuma credencial de autenticação é necessária para a validação.

O utilitário contém intencionalmente:

root@kitploit:~
SEM shell reverso
SEM execução de comandos
SEM payload de exploit
SEM loop de negação de serviço
SEM transmissão repetida de pacotes malformados

Requisitos

Testado com:

root@kitploit:~
Python 3
Cliente de linha de comando OpenSSL
Linux

Verifique o OpenSSL:

root@kitploit:~
openssl version

Verifique o Python:

root@kitploit:~
python3 --version

Nenhum módulo OpenSSL do Python é necessário porque o script executa a implementação do sistema openssl s_client.

Isso evita problemas de compatibilidade encontrados por implementações BlueGate mais antigas que dependiam de APIs Python/OpenSSL obsoletas, tais como:

root@kitploit:~
DTLSv1_client_method

Uso

Verificação básica:

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

Exemplo:

root@kitploit:~
python3 BlueGate.py 192.0.2.10

O destino padrão é:

root@kitploit:~
UDP/3391

Especificar Porta

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

Testar ambos pode ser útil:

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

python3 BlueGate.py --dtls 1.2 192.0.2.10

Exemplo com Patch Aplicado

Exemplo de resultado de um RD Gateway com patch:

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.

A mesma resposta de patch também pode ser retornada via DTLS 1.0:

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

Entendendo o Resultado

0x8000ffff

Uma resposta que termina com:

root@kitploit:~
0x8000ffff

é o valor de rejeição usado pelos scanners públicos BlueGate/RD Gateway para identificar a condição de fragmentação malformada como rejeitada.

A ferramenta, portanto, reporta:

root@kitploit:~
PATCHED SIGNATURE RECEIVED

Isso fornece forte evidência em nível de protocolo de que a condição específica testada para CVE-2020-0609/CVE-2020-0610 não é explorável usando a técnica de detecção pública conhecida.


Status Diferente de 16 Bytes

Se uma resposta de 16 bytes do RD Gateway for recebida, mas o DWORD final for algo diferente de:

root@kitploit:~
0x8000ffff

a ferramenta reporta:

root@kitploit:~
DETECTOR POSITIVE

Isso deve ser tratado como:

root@kitploit:~
Potencialmente Vulnerável

em vez de prova imediata de execução remota de código bem-sucedida.

O resultado deve preferencialmente ser corroborado usando:

root@kitploit:~
Informações de build do Windows
Informações de KB instalado
Inventário de patches da Microsoft
Varredura de vulnerabilidade com credenciais

antes de reportar a vulnerabilidade como definitivamente explorável.


Sem Resposta

Se nenhuma resposta do aplicativo for recebida:

root@kitploit:~
INCONCLUSIVE

A ferramenta deliberadamente não classifica um timeout como vulnerável.

Um timeout pode ser causado por:

  • comportamento do firewall
  • perda de pacotes UDP
  • incompatibilidade DTLS
  • filtragem de rede
  • comportamento do aplicativo
  • configuração do serviço

Portanto:

root@kitploit:~
Sem resposta != Vulnerável

Lógica de Detecção

A abordagem pública de detecção BlueGate/RDG usa um pacote de fragmentação do RD Gateway contendo uma contagem incomum de fragmentos.

Conceitualmente:

root@kitploit:~
Conexão DTLS
      |
      v
+-----------------------+
| Parser UDP RD Gateway |
+-----------------------+
      |
      | pacote de validação de fragmentação
      v
+-----------------------+
| Validação de fragmento|
+-----------------------+
      |
      +---- com patch ----> rejeição
      |                    0x8000ffff
      |
      +---- inesperado ----> requer investigação

O pacote de validação usado por este utilitário é enviado apenas uma vez.


Aviso Legal

Este projeto destina-se exclusivamente a:

  • testes de penetração autorizados
  • validação de vulnerabilidades
  • pesquisa defensiva de segurança
  • ambientes de laboratório
  • pesquisa educacional de segurança

Teste apenas sistemas para os quais você tenha autorização explícita.

O autor não assume responsabilidade por uso indevido, acesso não autorizado, interrupção de serviço, perda de dados ou outras consequências resultantes do uso ou modificação deste software.


Créditos

A metodologia de detecção é baseada em pesquisas publicamente documentadas sobre as vulnerabilidades do Microsoft RD Gateway CVE-2020-0609 e CVE-2020-0610, incluindo o trabalho realizado pela comunidade de pesquisa de segurança BlueGate e RD Gateway.

Este projeto principalmente moderniza o fluxo de trabalho de validação usando a implementação DTLS do OpenSSL do sistema em vez dos internals DTLS obsoletos do pyOpenSSL.

Baixar ferramenta