Menu Fermer

Vulnérabilité/attaque : L’élévation de privilèges

Cet article aborde une vulnérabilité et type d’attaque bien particulière : l’élévation de privilèges.

Si vous suivez un peu les actualités de sécurité et notamment les bulletins de sécurité produit pour vos logiciels.
Vous avez probablement croisé à un moment donné des vulnérabilités de type élévation de privilèges.

Qu’est-ce que ce la permet et en quoi est-ce un risque ?
Voici un article complet sur ce type de vulnérabilités et d’attaques bien particulières.

Qu’est-ce qu’une élévation de privilèges

Pour bien comprendre ce type de vulnérabilises, il faut dans un premier temps le fonctionnement général des utilisateurs au sein du système d’exploitation.

Dans un OS, il existe plusieurs “grades” d’utilisateurs avec des accès et autorisations différentes dans le système.
L’utilisateur administrateur est l’utilisateur possédant le plus de privilèges car il peut modifier la configuration du système, installer de nouvelles applications, etc.

Sur un ordinateur de bureau et parfois sur des serveurs, des utilisateurs avec des accès plus restreint existent.
Ce sont des utilisateurs non administrateurs.
Par exemple, sur Windows, on peut avoir un utilisateur standard ou un compte invité.
Rappelons que les applications exécutées par l’utilisateur possède les mêmes permissions que ce dernier.

Dans de nombreux cas, le premier point de pénétration ne donnera pas aux attaquants le niveau d’accès ou l’accès au système de fichiers dont ils ont besoin. Ils tenteront alors une escalade des privilèges pour obtenir davantage d’autorisations ou l’accès à d’autres systèmes plus sensibles.

L’escalade des privilèges signifie qu’un attaquant accède à des privilèges auxquels il n’a pas droit en exploitant une vulnérabilité d’escalade des privilèges dans un système ou une application cible, ce qui lui permet de passer outre les limitations du compte utilisateur actuel.

Une vulnérabilité d’élévation de privilèges permet à un utilisateur standard d’obtenir les accès d’un utilisateur administrateur ou s’identifier comme tel.
Ce type d’attaques est très recherchée lors des attaques car elle permet un accès total au système et permet le modifier la configuration système.
On peut l’utiliser pour implanter une backdoor (porte dérobée), trojan.

Les types vulnérabilités d’élévation de privilèges

Escalade verticale des privilèges (élévation des privilèges)

Un attaquant tente d’obtenir des privilèges ou des accès plus élevés avec un compte existant qu’il a compromis.
Par exemple, un attaquant s’empare d’un compte d’utilisateur ordinaire sur un réseau et tente d’obtenir des privilèges administratifs. Il s’agit généralement de l’administrateur ou de l’utilisateur système sur Microsoft Windows, ou de l’utilisateur root sur les systèmes Unix et Linux.
Une fois qu’ils ont obtenu des privilèges élevés, les attaquants peuvent voler des données sensibles sur un utilisateur spécifique, installer des ransomwares, des spywares ou d’autres types de malwares, exécuter des codes malveillants et nuire à la sécurité de votre organisation.

L’escalade horizontale des privilèges

Un attaquant étend ses privilèges en prenant le contrôle d’un compte privilégié et en abusant des privilèges légitimes accordés à l’utilisateur. Pour les attaques locales par élévation de privilèges, cela peut signifier le détournement d’un compte avec des privilèges d’administrateur ou de racine, pour les applications web, cela peut signifier l’accès au compte bancaire d’un utilisateur ou au compte d’administration d’une application SaaS.

Des exemples d’élévation de privilèges

Il existe plusieurs type d’élévation de privilèges sur Windows.
GNU/Linux fonctionne d’une autre manière et peut aussi posséder ses propres méthodes d’attaques.

Voici les types d’élévations de privilèges sur Windows :

Vulnérabilités dans le système d’exploitation ou application

La vulnérabilité peut toucher le noyau du système d’exploitation.
Régulièrement des vulnérabilités sur le noyau Linux d’élévation de privilèges sont publiés.

Sur Windows, cela touche en général des fonctions liées à des fichiers DLL du système ou celle-ci peut être la cible d’une attaque (par exemple DLL Hijacking).
Mais les applications installées peuvent aussi donner accès administrateur ou système fraduleux.
Les antivirus qui se chargent bas dans le système sont connus pour régulièrement offrir ce type d’opportunité.
Mais parfois, ce sont de simples applications tels que 7zip, Docker et bien d’autres.

La vidéo ci-dessous montre l’exploitation de la vulnérabilité CVE-2022-29072.
7-Zip jusqu’à 21.07 sous Windows permet une élévation de privilèges et l’exécution de commandes lorsqu’un fichier avec l’extension .7z est glissé dans la zone Aide>Contenu. Ce problème est dû à une mauvaise configuration de 7z.dll et à un débordement de tas.

source : https://github.com/kagancapar/CVE-2022-29072

Sur Windows : Jeton d’accès et contourner l’UAC

Lorsque vous lancez un processus, Windows créé un jeton d’accès.
Cela permet de lier le processus à l’utilisateur courant.

Cette attaque d’élévation privilèges vise à faire croire à Windows qu’un processus s’exécute avec autre utilisateur en falsifiant ce jeton d’accès.

Un jeton peut être usurper ou voler ou encore créer de toutes pièces selon les vulnérabilités disponibles.

L’UAC ou contrôle des comptes utilisateurs est un mécanisme qui permet de limiter les accès par les applications.
Lorsqu’un utilisateur ayant des accès administrateurs exécute une application, celle-ci n’est pas lancée avec ces autorisations sauf si une autorisation par l’UAC a été donnée.
Un jeton virtuelle administrateur est alors créée pour cette application le temps de son exécution.

Ci-dessous Firefox est lancé avec un utilisateur administrateur mais ne possède pas des accès administrateur, car, aucune élévation de privilèges par UAC n’a été faites.

L'UAC bloque l'accès administrateur aux applications lancées

Pour une description plus complète de l’UAC de Windows, suivez l’article : Le contrôle des comptes utilisateurs (UAC) de Windows

Toutefois, certaines processus ne sont pas exposés à l’UAC notamment certains processus systèmes ou pouvant lancer des Component Object Model (COM) élevées.
C’est par exemple le cas du processus rundll32.exe.
Des vulnérabilités sur ces derniers peuvent permettre une élévation de privilèges.

La vidéo montre comment à partir d’une invite de commandes lancée avec l’utilisateur courant, on peut ouvrir une invite de commandes en administrateur sans que l’UAC se déclenche.

Obtenir les accès root sur Android ou Linux

Sur Linux et ses dérivés tels qu’Android, l’utilisateur root est l’utilisateur administrateur.
Les attaquants peuvent chercher à obtenir ses accès afin d’obtenir un contrôle total sur le système.

Là aussi, il existe des vulnérabilités d’élévation de privilèges.
Un utilisateur ayant un accès sur le système peut les utiliser pour tenter d’obtenir un accès root.

Du côté d’Android, des kits d’exploitation permettent aussi de rooter l’appareil.
Certains malwares peuvent aussi les utiliser pour obtenir les accès root.

Exemple de bulletin de sécurité avec élévation de privilèges

Dans les bulletins de sécurité, on retrouve beaucoup d’informations comme la version du logiciel affectées, les versions qui corrigent etc.
Parmi ces informations, on trouve généralement les conséquences potentielles de la vulnérabilité comme :

  • lead to code execution – exécuter un code ce qui peut permettre de charger un logiciel malveillant
  • denial of service – permet de lancer des attaques DoS
  • escalation of privileges – permet une élévation de privilèges dans le système affecté.

Voici un exemple avec ce bulletin de sécurité touchant les pilotes Nvidia.

Bulletin de sécurité Nvidia avec les types de vulnérabilités

Voici encore une autre bulletin de sécurité Microsoft avec les types de vulnérabilités.

Bulletin de sécurité Microsoft avec les types de vulnérabilités