Une 0-day sur « Sudo » a été dévoilée !

Une 0-day sur « Sudo » de type élévation de privilège a été dévoilée en date du 14/10/2019

La 0-day permet à un utilisateur de monter en privilège lorsque Sudo est configuré d’une manière particulière. A savoir que les lignes suivantes doivent apparaître dans le fichier de configuration :

myhost myUser = (ALL, !root) /usr/bin/vi

Cette ligne autorise l’utilisateur myUser à démarrer le programme « vi » en tant que tout utilisateur de la machine sauf l’utilisateur root. Cette configuration n’est pas commune mais peut tout de même être retrouvée en production et permettre à un utilisateur de réaliser une élévation de privilège.

Ainsi, tout utilisateur souhaitant lancer une commande en tant que root aura uniquement à exécuter la commande suivante :

sudo -u#-1 id -u

Note : ‘id’ peut être remplacé par une commande au choix.

Note 2 : Le chiffre « -1 » peut être remplacé par « 4294967295 », qui est l’équivalent de -1 en nombres non-signés.

Toutes les versions de Sudo sont concernées avant la 1.8.28.

Focus sur « Sudo »

Sudo est utilisé sur les systèmes UNIX/Linux afin de donner des privilèges à un utilisateur dans le but d’effectuer une action précise. Mal utilisé, ce dernier peut être dangereux et mener à une élévation de privilège. Ci-dessous, un exemple très souvent donné pour démontrer qu’un Sudo mal configuré est dangereux :

1. L’administrateur donne la possibilité à un utilisateur de démarrer l’éditeur de texte vi et de modifier un fichier en particulier à l’aide de la commande Sudo (très répandu sur les systèmes UNIX/Linux).

L’utilisateur peut donc ouvrir uniquement ce fichier à l’aide de vi a prori.

Note : la capture d’écran montre que le fichier « file.txt » appartient à l’utilisateur root et que tout utilisateur n’étant pas root ne peut avoir accès qu’en lecture au fichier.

2. Vi donne la possibilité d’ouvrir un shell depuis l’écran d’édition de fichier à l’aide de la commande « :!/bin/sh ».

3. Le processus vi étant exécuté avec des privilèges, le terminal lancé par vi sera donc également lancé avec des privilèges.

C’est ainsi qu’un utilisateur standard se retrouve avec des droits administrateurs en utilisant l’utilitaire Sudo. Cette manipulation est très répandue et très connue aujourd’hui.

C. Szwedo