
Un scanner de preuve de concept pour vérifier un serveur RDG Gateway pour les vulnérabilités CVE-2020-0609 & CVE-2020-0610.
Un scanner de preuve de concept pour vérifier un serveur de passerelle RDP pour les vulnérabilités CVE-2020-0609 et CVE-2020-0610.
Analyser les vulnérabilités de corruption mémoire est dangereux et peut potentiellement planter les systèmes. Bien que cet outil ait été conçu pour éviter de provoquer un crash, la stabilité ne peut pas être garantie à 100 %. Utilisez-le à vos risques et périls et analysez uniquement les systèmes que vous avez l'autorisation de tester.
python3 RDGScanner.py <ip> <port>
Pour comprendre les vulnérabilités, vous pouvez lire mon analyse ici : https://www.kryptoslogic.com/blog/2020/01/rdp-to-rce-when-fragmentation-goes-wrong/
Le message CONNECT_PKT_FRAGMENT permet de fragmenter un message de connexion en plusieurs paquets. Chaque paquet possède un champ spécifiant la position du paquet dans la séquence (fragment_id) et le nombre total de paquets dans la séquence (num_fragments).
CVE-2020-0610 est une vulnérabilité d'écriture hors limites qui se produit lorsque fragment_id est supérieur à 64. Pour atténuer la vulnérabilité, des vérifications ont été ajoutées pour échouer si fragment_id ou num_packets est supérieur à 64.
En définissant num_fragments (mais pas fragment_id) à une valeur supérieure à 64, nous échouons à la vérification de sécurité sans risquer d'exploiter le bogue. Sur un système corrigé, nous serons déconnectés avec un code d'erreur 0x8000ffff, alors que sur un système non corrigé, rien ne se passera.