FreeRDP, Rdesktop, NeutrinoRDP, Mstsc, des clients RDP impactés par des vulnérabilités d’exécution de code à distance

FreeRDP, Rdesktop, NeutrinoRDP, Mstsc, des clients RDP impactés par des vulnérabilités d’exécution de code à distance

Des chercheurs de Check Point Software Technologies ont découvert 25 failles de sécurité dans différentes implémentations du protocole Remote Desktop Protocol (RDP). Ce dernier est conçu pour fournir aux utilisateurs un moyen de se connecter à une machine distante via une interface graphique.

Certaines des vulnérabilités découvertes pourraient être exploitées par un serveur RDP malveillant afin de compromettre un périphérique exécutant un client RDP. L’équipe de chercheurs a découvert ses vulnérabilités dans les clients open source FreeRDP et Rdesktop, ainsi que dans l’implémentation du client RDP de Microsoft.

L’analyse de la version 1.8.3 du client Rdesktop, un client RDP open source, fourni notamment par défaut sur les distributions Kali Linux, a révélé la présence de 19 vulnérabilités, dont la plupart sont des débordements de tampon. 11 de ses vulnérabilités sont considérées comme des failles critiques. Les chercheurs ajoutent que le serveur RDP xrdp étant partiellement basé sur Rdesktop il est probable qu’il soit affecté par plusieurs vulnérabilités similaires.
L’examen de FreeRDP 2.0.0-rc3, le client RDP le plus populaire sur GitHub, a relevé 6 vulnérabilités, dont 5 critiques. Le client RDP NeutrinoRDP étant une branche de l’ancienne version de FreeRDP (1.0.1), il est possible qu’il soit impacté par les mêmes vulnérabilités.

Les défauts d’implémentation découverts sur les clients open source étaient absents du client RDP développé par Microsoft (Mstsc.exe Build 18252.rs_prerelease.180928-1410). Cependant, celui-ci est affecté par une autre vulnérabilité majeure.
D’après Check Point, les données du presse-papier sont partagées par le client et le serveur. Ainsi, des attaquants pourraient accéder à toutes les données copiées, comme des mots de passe ou des clefs de portefeuille cryptomonnaie. Par ailleurs, cette faille permet une attaque de type parcours de répertoire (path-traversal). En l’exploitant, des attaquants pourraient déposer des fichiers malveillants, notamment dans le dossier « Démarrage », afin qu’ils soient exécutés à chaque démarrage du système.

Les chercheurs à l’origine de la découverte ont décrit deux scénarios qui pourraient être utilisés par des attaquants afin de réaliser une élévation de privilège à distance.
Le premier consiste à cibler une victime qui se connecte à un poste de travail à l’intérieur d’un réseau d’entreprise, afin de tenter d’obtenir des niveaux d’autorisation plus élevés par un mouvement latéral au sein du système.
Dans le second scénario, le serveur RDP malveillant modifie le contenu du presse-papier du client en y injectant du code PowerShell sérialisé. Lorsque le client colle le contenu du presse-papier dans une fenêtre Powershell en pensant coller son mot de passe, celui-ci injecte directement le code Powershell sérialisé qui est aussitôt exécuté.

Check Point a communiqué ses conclusions aux différentes équipes développant les clients RDP cités ci-dessus. Les développeurs de FreeRDP ont corrigé les failles en novembre dernier, ceux de Rdesktop ont publié un correctif mi-janvier.
Microsoft a « confirmé la conclusion de l’étude », mais a estimé qu’elle ne répondait pas à ses «  critères de maintenance ». Cela signifie que les utilisateurs du client de Microsoft sont actuellement exposés à la vulnérabilité découverte par Check Point, et que celle-ci n’a pas reçu d’identifiant CVE.

Afin de se prémunir contre les attaques, il est primordial de maintenir à jour les clients RDP utilisés.
Check Point conseille également aux utilisateurs du client RDP de Microsoft de désactiver la fonctionnalité de presse-papier partagée, jusqu’à ce que Microsoft corrige le problème de sécurité découvert.

 


Référence

https://research.checkpoint.com/reverse-rdp-attack-code-execution-on-rdp-clients/

 Image de couverture par FreeRDP

Jean-Christophe Pellat

Cert-XMCO