1. Introduction
Les entreprises qui n'avaient pas mis en place de systĂšmes d'accĂšs Ă distance ont rapidement dĂ» les dĂ©ployer il y a quelques mois. Tous les administrateurs n'Ă©taient pas prĂȘts Ă faire face Ă une telle "chaleur"; par consĂ©quent, des lacunes en matiĂšre de sĂ©curitĂ© se sont produites : une mauvaise configuration des services ou mĂȘme l'installation de versions obsolĂštes de logiciels prĂ©sentant des vulnĂ©rabilitĂ©s connues. Certains ont dĂ©jĂ souffert de ces lacunes, d'autres ont eu plus de chance, mais il est certain que tout le monde doit tirer des leçons. La loyautĂ© envers le tĂ©lĂ©travail a fortement augmentĂ©, et de plus en plus d'entreprises acceptent le tĂ©lĂ©travail comme un format acceptable sur une base permanente.
Il existe donc de nombreuses options pour assurer l'accÚs à distance : divers VPN, RDS et VNC, TeamViewer et autres. Les administrateurs ont le choix en fonction des spécificités de l'architecture du réseau d'entreprise et des appareils qui y sont connectés. Les solutions VPN restent les plus populaires, toutefois, de nombreuses petites entreprises optent pour RDS (Services de Bureau à Distance), car elles sont plus simples et plus rapides à déployer.
Dans cet article, nous allons parler plus en détail de la sécurité des RDS. Nous ferons un aperçu des vulnérabilités connues, ainsi que de quelques scénarios de démarrage d'attaque sur une infrastructure réseau basée sur Active Directory. Nous espérons que notre article aidera certains à tirer des leçons et à améliorer leur sécurité.
2. Vulnérabilités récentes RDS/RDP
Tout logiciel contient des erreurs et des vulnérabilités qui sont exploitées par des cybercriminels, et les RDS ne font pas exception. Récemment, Microsoft a souvent signalé de nouvelles vulnérabilités, nous avons donc décidé de faire un bref aperçu d'elles :
Cette vulnérabilité met en péril les utilisateurs qui se connectent à un serveur compromis. Un attaquant peut prendre le contrÎle de l'appareil de l'utilisateur ou s'installer dans le systÚme pour avoir un accÚs distant permanent.
- / /
Ce groupe de vulnĂ©rabilitĂ©s permet Ă un attaquant non autorisĂ© d'exĂ©cuter Ă distance du code arbitraire sur un serveur RDS Ă l'aide d'une requĂȘte spĂ©cialement formĂ©e. Elles peuvent Ă©galement ĂȘtre utilisĂ©es pour crĂ©er des vers â un logiciel malveillant qui infecte automatiquement des appareils voisins sur le rĂ©seau. Ainsi, ces vulnĂ©rabilitĂ©s peuvent mettre en pĂ©ril l'ensemble du rĂ©seau de l'entreprise, et seul un mise Ă jour rapide peut les prĂ©venir.
Le logiciel d'accĂšs Ă distance a suscitĂ© un intĂ©rĂȘt croissant tant chez les chercheurs que chez les malfaiteurs, nous pourrions donc bientĂŽt entendre parler de nouvelles vulnĂ©rabilitĂ©s similaires.
La bonne nouvelle, c'est que des exploits publics ne sont pas disponibles pour toutes les vulnĂ©rabilitĂ©s. La mauvaise â un attaquant possĂ©dant des compĂ©tences techniques peut facilement Ă©crire un exploit pour une vulnĂ©rabilitĂ© en se basant sur sa description, ou en utilisant des techniques telles que le Patch Diffing (qui a Ă©tĂ© abordĂ© par nos collĂšgues dans ). C'est pourquoi nous recommandons de mettre Ă jour rĂ©guliĂšrement le logiciel et de rester informĂ© des nouvelles vulnĂ©rabilitĂ©s dĂ©couvertes.
3. Attaques
Nous passons Ă la deuxiĂšme partie de l'article, oĂč nous montrerons comment commencent les attaques contre l'infrastructure rĂ©seau basĂ©e sur Active Directory.
Les mĂ©thodes dĂ©crites s'appliquent au modĂšle suivant de l'attaquant : un malfaiteur ayant un compte utilisateur et ayant accĂšs Ă Remote Desktop Gateway â un serveur terminal (souvent accessible par exemple depuis le rĂ©seau extĂ©rieur). En appliquant ces mĂ©thodes, l'attaquant pourra poursuivre son attaque sur l'infrastructure et ancrer sa prĂ©sence dans le rĂ©seau.
La configuration du réseau peut varier d'un cas à l'autre, mais les techniques décrites sont assez universelles.
Exemples d'évasion d'un environnement restreint et d'élévation de privilÚges
Lorsqu'il accĂšde Ă Remote Desktop Gateway, l'attaquant se retrouve probablement face Ă un environnement limitĂ©. En se connectant au serveur terminal, une application s'ouvre : une fenĂȘtre pour se connecter par le protocole Remote Desktop aux ressources internes, l'explorateur, des suites bureautiques ou tout autre logiciel.
L'objectif de l'attaquant sera d'obtenir un accÚs à l'exécution de commandes, c'est-à -dire le lancement de cmd ou powershell. Plusieurs techniques classiques d'évasion de la "sandbox" sous Windows peuvent aider dans cette tùche. Nous les examinerons ci-aprÚs.
Option 1. L'attaquant a accĂšs Ă la fenĂȘtre de connexion Remote Desktop dans le cadre de Remote Desktop Gateway :

Le menu "Afficher les options" s'affiche. Des options pour manipuler les fichiers de configuration de la connexion apparaissent :

Ă partir de cette fenĂȘtre, il est possible d'accĂ©der sans entrave Ă l'Explorateur en cliquant sur n'importe quel bouton "Ouvrir" ou "Enregistrer" :

L'Explorateur de fichiers s'ouvre. Sa "barre d'adresse" permet le lancement de fichiers exĂ©cutables autorisĂ©s, ainsi que le listing du systĂšme de fichiers. Cela peut ĂȘtre utile pour un attaquant si les disques systĂšme sont cachĂ©s et qu'un accĂšs direct Ă ceux-ci est impossible :

â
Un scĂ©nario similaire peut ĂȘtre reproduit, par exemple, en utilisant Excel du package Microsoft Office comme logiciel distant.
â
De plus, il ne faut pas oublier les macros utilisée dans ce package bureautique. Nos collÚgues ont examiné le problÚme de sécurité des macros dans cette .
Option 2. En utilisant les mĂȘmes Ă©lĂ©ments d'entrĂ©e que dans la version prĂ©cĂ©dente, l'attaquant lance plusieurs connexions Ă un bureau distant avec le mĂȘme compte. Lors de la reconnexion, la premiĂšre sera fermĂ©e, et une fenĂȘtre apparaĂźtra Ă l'Ă©cran avec un message d'erreur. Le bouton d'aide dans cette fenĂȘtre ouvrira Internet Explorer sur le serveur, aprĂšs quoi l'attaquant pourra accĂ©der Ă l'Explorateur de fichiers.
â
Option 3. Avec des restrictions sur le lancement de fichiers exĂ©cutables, l'attaquant peut se retrouver dans une situation oĂč des stratĂ©gies de groupe interdisent l'exĂ©cution de cmd.exe par l'administrateur.
Il existe un moyen de contourner cela en exécutant un fichier bat sur le bureau distant avec un contenu de type cmd.exe /K . L'erreur lors du lancement de cmd et un exemple réussi d'exécution du fichier bat sont montrés dans l'image ci-dessous.

Option 4. Interdire le lancement d'applications par le biais de listes noires basées sur le nom des fichiers exécutables n'est pas une panacée, on peut les contourner.
ConsidĂ©rons le scĂ©nario suivant : nous avons interdit l'accĂšs Ă l'invite de commande, interdit le lancement d'Internet Explorer et de PowerShell par des stratĂ©gies de groupe. L'attaquant tente d'appeler l'aide - pas de rĂ©ponse. Il essaie de lancer PowerShell via le menu contextuel de la fenĂȘtre modale, invoquĂ©e en maintenant la touche Maj enfoncĂ©e - message d'interdiction de lancement par l'administrateur. Il essaie de lancer PowerShell via la barre d'adresse - encore une fois, pas de rĂ©ponse. Comment contourner la restriction ?
Il suffit de copier powershell.exe depuis le dossier C:WindowsSystem32WindowsPowerShellv1.0 dans le dossier utilisateur, de renommer le fichier avec un nom différent de powershell.exe, et l'option de lancement sera disponible.
Par défaut, lors de la connexion à un bureau distant, un accÚs aux disques locaux du client est fourni, à partir duquel l'attaquant peut copier powershell.exe et lancer le fichier aprÚs l'avoir renommé.
â
Nous avons prĂ©sentĂ© seulement quelques mĂ©thodes pour contourner les restrictions, mais de nombreux scĂ©narios pourraient en ĂȘtre imaginĂ©s. Cependant, tous partagent une sortie vers l'Explorateur Windows. Il existe de nombreuses applications qui utilisent les outils standards de Windows pour travailler avec des fichiers, et en les plaçant dans un environnement limitĂ©, on peut appliquer des techniques similaires.
4. Recommandations et conclusion
Comme nous le constatons, mĂȘme dans un environnement restreint, il y a de l'espace pour le dĂ©veloppement d'attaques. Cependant, il est possible de compliquer la tĂąche de l'attaquant. Nous fournissons des recommandations gĂ©nĂ©rales qui seront utiles tant dans les cas examinĂ©s que dans d'autres situations.
- Limitez le lancement de programmes par des listes blanches/noires en utilisant des stratégies de groupe.
Dans la plupart des cas, il reste cependant la possibilité de lancer du code. Nous vous recommandons de vous familiariser avec le projet , afin de comprendre les moyens non documentés de manipuler des fichiers et d'exécuter du code dans le systÚme.
Nous vous conseillons de combiner les deux types de restrictions : par exemple, autoriser l'exĂ©cution de fichiers exĂ©cutables signĂ©s par Microsoft, mais restreindre le lancement de cmd.exe. - DĂ©sactivez les onglets des paramĂštres d'Internet Explorer (cela peut ĂȘtre fait localement dans le registre).
- Désactivez l'appel de l'aide intégrée de Windows via regedit.
- Désactivez la possibilité de monter des disques locaux pour les connexions distantes, sauf si cette restriction est critique pour les utilisateurs.
- Limitez l'accĂšs aux disques locaux de la machine distante, en ne conservant l'accĂšs qu'aux dossiers des utilisateurs.
Nous espérons que cela vous a au moins intéressé, et dans le meilleur des cas, que cet article contribuera à rendre le travail à distance de votre entreprise plus sûr.
Source : habr.com
