
Um scanner de prova de conceito para verificar um servidor RDG Gateway quanto às vulnerabilidades CVE-2020-0609 e CVE-2020-0610.
Um scanner de prova de conceito para verificar um Servidor Gateway RDP quanto às vulnerabilidades CVE-2020-0609 e CVE-2020-0610.
Escaneamento de vulnerabilidades de corrupção de memória é perigoso e pode potencialmente travar sistemas. Embora esta ferramenta tenha sido projetada para evitar causar uma pane, a estabilidade não pode ser 100% garantida. Use por sua conta e risco e escaneie apenas sistemas com permissão para testar.
python3 RDGScanner.py <ip> <port>
Para entender as vulnerabilidades, você pode ler meu artigo aqui: https://www.kryptoslogic.com/blog/2020/01/rdp-to-rce-when-fragmentation-goes-wrong/
A mensagem CONNECT_PKT_FRAGMENT permite que uma mensagem de conexão seja fragmentada em vários pacotes. Cada pacote possui um campo que especifica a posição do pacote na sequência (fragment_id) e o número total de pacotes na sequência (num_fragments).
CVE-2020-0610 é uma vulnerabilidade de escrita fora dos limites (OOB) que ocorre quando fragment_id é maior que 64. Para mitigar a vulnerabilidade, foram adicionadas verificações para falhar se fragment_id ou num_packets for maior que 64.
Ao definir num_fragments (mas não fragment_id) para um valor maior que 64, falhamos na verificação de segurança sem arriscar explorar o bug. Em um sistema corrigido, seremos desconectados com um código de erro 0x8000ffff, enquanto em um sistema não corrigido nada acontecerá.