À la lumière de plusieurs rapports montrant que le nombre de serveurs RDP non corrigés sur internet est toujours très élevé, et malgré les avertissements des experts et des agences gouvernementales, nous avons réalisé une vidéo qui montre une attaque BlueKeep de type preuve-de-concept (PoC) qui utilise un exploit développé par l’équipe SophosLabs Offensive Research. Nous espérons que cette vidéo parviendra à convaincre les personnes et les entreprises qui n’ont toujours pas installé de correctifs que cette vulnérabilité BlueKeep est une menace réellement sérieuse. En effet, BlueKeep affecte les ordinateurs utilisant Windows XP, Windows 7, Windows Server 2003 et Windows Server 2008.
L’exploit fonctionne dans un mode totalement dépourvu de fichiers, offrant un contrôle total sur un système distant sans avoir à déployer de malwares. Il n’exige pas non plus d’avoir une session active au niveau de la cible.
Le développement de cet exploit est le résultat d’un processus ardu de reverse engineering du correctif, publié par Microsoft en mai dernier, qui avait comme objectif un examen approfondi des composants que ce dernier essayait de corriger. Microsoft lui-même n’a pas communiqué d’informations sur BlueKeep aux entreprises qui font partie de son programme MAPP, à part une demande expresse faite auprès de tous les utilisateurs pour qu’une installation de la mise à jour soit lancée dans les meilleurs délais.
Sophos ne divulguera pas publiquement ce PoC par prudence. En effet, si quelqu’un parvenait à utiliser ce PoC de manière malveillante, n’importe quelle machine actuellement vulnérable vis-à-vis de BlueKeep deviendrait instantanément une cible potentielle pour un attaquant qui voudrait utiliser cette méthode pour transmettre un malware ou alors faire ce que le propriétaire administratif d’un ordinateur Windows vulnérable serait en mesure de faire avec un telle machine.
Microsoft estime que la vulnérabilité BlueKeep est si sérieuse qu’il a pris la décision inhabituelle de publier des correctifs destinés à protéger les versions de ses systèmes d’exploitation qui ne reçoivent plus de mises à jour régulières et ont atteint leur “fin de vie”, tels que Windows XP.
L’équipe SophosLabs Offensive Research effectue des recherches sur les vulnérabilités logicielles affectant les plateformes sur lesquelles nos produits fonctionnent. L’équipe se concentre sur la production d’exemples d’exploits que d’autres équipes peuvent utiliser pour développer une protection contre les méthodes utilisées par ces derniers.
Construction du PoC
Plusieurs autres analystes en cybersécurité ont déjà publié leur propre code PoC, mais ce code public (du moins pour ceux qui le savent) ne peut faire planter que Windows, provoquant ainsi une erreur de type “Ecran bleu de la mort” (BSOD : Blue Screen Of Death). Ce type d’attaque rend l’ordinateur inutilisable jusqu’à ce qu’il redémarre : techniquement, il s’agit d’une forme d’attaque par déni de service.
La méthode que nous avons développée n’est pas simplement basée sur un DoS. Après avoir exécuté le code d’exploit, un attaquant hypothétique peut lancer une commande shell qui apparaît avant la connexion, au niveau de l’écran de connexion Windows. Notre chercheur qui a travaillé sur le développement du PoC de l’exploit a choisi d’utiliser une technique quelque peu différente de celle du code PoC divulguée publiquement.
Il s’agit également d’une méthode différente de celle utilisée dans les PoC fonctionnels (c’est-à-dire les exploits qui ne causent pas de crash) qui ont été développés par au moins une autre entreprise de sécurité. Cette société s’est également abstenue de partager son code d’exploit, mais a publié une vidéo montrant son fonctionnement.
La technique présentée dans la vidéo des SophosLabs montre le remplacement d’un exécutable appelé utilman.exe (composant du système d’exploitation Windows) par un autre composant Windows de confiance, la commande shell, cmd.exe. Le binaire utilman est responsable, en partie, de l’activation ou de la désactivation des fonctionnalités d’accessibilité de Windows, auxquelles les utilisateurs peuvent accéder au niveau de l’écran de connexion en cliquant sur une icône, avant même que quiconque ne se connecte. Le bouton est intitulé Facilité d’Accès (Ease Of Access) dans Windows. Dans ce cas, c’est étonnamment précis.
Le framework MITRE ATT&CK, qui documente les techniques d’exploitation, le place dans la catégorie T1015. Les utilisateurs peuvent appeler les fonctions d’accessibilité depuis une icône au niveau de l’écran de connexion ou via la combinaison des touches Windows+U. Utilman.exe, lancé par winlogon.exe, possède des privilèges de niveau SYSTEM. Le remplacement d’un binaire Microsoft signé par un autre, confère à ce dernier les mêmes privilèges.
Que contient la vidéo ?
Les 45 premières secondes de la vidéo montrent le chercheur qui utilise une machine virtuelle Windows 7, faisant une démonstration de l’utilisation des fonctionnalités d’accessibilité au niveau de l’écran de connexion Windows (qui ouvre un petit menu d’options pour aider les personnes handicapées), puis montre l’échec d’une tentative de connexion avec un mot de passe incorrect.
Après environ 45 secondes, le chercheur lance l’attaque à l’aide du script PoC, appelé exploit.py. Comme la vidéo montre le fonctionnement du PoC en temps réel, rien ne se passe pendant environ 20 secondes jusqu’à 1’06’’, moment à partir duquel le script tente de démarrer une session RDP sur la machine virtuelle cible. Le véritable exploit prend environ une minute pour se déployer complétement. Nous avons modifié le temps d’attente au niveau de la vidéo.
En quelques secondes, la connexion est établie. La console du chercheur indique alors que le PoC a ouvert une connexion. Pendant ce temps, l’exploit est utilisé pour effectuer le remplacement du fichier exe. À 1’10’’, la console informe le chercheur qu’”en cas d’absence de crash, un shell SYSTEM est disponible via le menu d’accessibilité”.
À 1’20’’ dans la vidéo, le chercheur a établi une deuxième connexion RDP avec la machine cible, et a de nouveau tenté de se connecter avec un mot de passe incorrect, puis a utilisé une commande shell avec des privilèges élevés (utilisé avec les identifiants NT AUTHORITY\SYSTEM) en cliquant sur le bouton “Facilité d’Accès” (Ease Of Access) dans le menu.
Dangereux tel un ver informatique (worm)
La preuve-de-concept, dans cette vidéo, permet à une personne impliquée dans une session interactive via le RDP de lancer une commande shell avec les privilèges SYSTEM. Cette possibilité est très problématique, mais l’outil utilisé par cette équipe pour lancer l’exploit, le framework rdpy, permet à n’importe qui d’instrumentaliser n’importe quelle interaction RDP, comme le fait de cliquer sur des boutons ou d’envoyer des keypresses synthétiques.
Avec très peu d’efforts, un acteur malveillant pourrait entièrement automatiser toute la chaîne d’attaque, y compris la “saisie” synthétique de commandes dans le shell, ou simplement la transmission de commandes au shell.
Cette configuration serait extrêmement problématique, car elle permettrait de lancer des attaques rapides visant tout système hébergeant un RDP connecté au monde extérieur. Cela ne réussirait pas forcément dans le cas des appareils corrigés, mais une telle attaque s’avère être de type “spray and pray” : à savoir que les attaquants ne sont pas réellement précis concernant la machine ciblée et que seulement quelques appareils seront vulnérables.
Il convient de noter que nous ne sommes pas la seule entreprise du secteur de la sécurité à avoir découvert au moins un moyen d’exploiter cette vulnérabilité et, comme mentionné précédemment, d’autres chercheurs indépendants spécialistes des vulnérabilités développent leurs propres exploits.
Donc, s’il vous plaît, si vous n’avez pas déjà mis à jour vos ordinateurs Windows, faites-le maintenant. Nous pensons que ce n’est qu’une question de temps avant qu’un individu utilise cette vulnérabilité à des fins malveillantes, et la meilleure défense que vous puissiez trouver à l’heure actuelle est ce correctif.
De plus, bloquez tous les pare-feu exposant le RDP (quel que soit le port sur lequel il est utilisé, bien que le port par défaut soit le 3389/tcp) sur le réseau internet ouvert.
La détection de Sophos
Sophos a publié un bulletin de support technique sur les forums de la communauté décrivant les protections en place pour les clients et les partenaires. Les clients de Rook Security, l’entreprise récemment acquise par Sophos, disposeront également de la règle de détection d’intrusion suivante.
2027369 || ET EXPLOIT [NCC GROUP] Possible Inbound RDP Exploitation Attempt (CVE-2019-0708) || url,github.com/nccgroup/Cyber-Defence/blob/master/Signatures/suricata/2019_05_rdp_cve_2019_0708.txt || url,portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708 || cve,2019,0708
Billet inspiré de BlueKeep PoC demonstrates risk of Remote Desktop exploit, sur le Blog Sophos.
Qu’en pensez-vous ? Laissez un commentaire.