Contourner l’authentification Linux en éditant le GRUB

I. Présentation

Dans ce tutoriel, nous allons voir en quoi la permission d'édition du GRUB est un réel danger pour les machines sous Linux. Pour rappel, par défaut, n'importe qui peut modifier le GRUB sans authentification préalable. Au premier abord, on peut se dire que l'édition du GRUB ne mène pas à grand chose si ce n'est la possibilité de faire rater le boot d'une machine en faussant les paramètres. Nous allons voir que l'édition du GRUB permet un accès total en système et cela sans avoir à saisir de mot de passe. Nous verrons ensuite comment se protéger de cette vulnérabilité.

II. Édition du GRUB

Nous partons ici du principe que nous sommes sous une Debian 7 avec un système authentification par défaut (PAM.D) avec un login/mot de passe. Rien d’extraordinaire. On va supposer que nous avons accès physiquement à une machine (volée par exemple) et que nous n'avons aucun couple login/mot de passe pour y accéder. On démarre donc notre machine pour arriver sur le menu GRUB qui ressemble à cela :

EDITGRUB01

Arrivé ici, il suffit d'appuyer sur la flèche du haut ou la flèche du bas pour mettre fin au démarrage automatique normal. On voit donc que l'on a accès au mode boot normal d'une Debian GNU/Linux Kernel 3.2 et un accès en démarrage au même OS mais en mode dépannage. On se place ici sur la première ligne puis on saisit "e" pour avoir accès à l'édition des ordres de boot de celle-ci. On se retrouve donc ensuite avec cette vue :

EDITGRUB02

On voit plus clairement ici plusieurs lignes de commande qui chargent l'OS en question avec plusieurs paramétrages. Nous cherchons ici pour rappel à contourner le système d'authentification afin d'avoir accès à la machine sans authentification préalable. On se rend donc sur la ligne qui commence par "linux /boot/vmlinuz...." et on remplace le ro ("Read-only") par rw ("Read-Write") et on ajoute ce paramètre en fin de ligne "init=/bin/bash"  comme suivant :

EDITGRUB04

On saisit ensuite "F10" pour faire démarrer le système avec les paramètres que nous venons de saisir et on aura alors accès au système :

EDITGRUB03

III. Comment s'en protéger ?

Nous avons déjà rédigé un tutoriel sur la protection contre cette vulnérabilité, il suffit pour cela de mettre un mot de passe à l'édition du GRUB et de stocker celui-ci au format hashé dans la configuration du GRUB, suivez ce lien : Sécuriser l'édition du GRUB

On peut aussi se protéger de la modification du GRUB par le chiffrement du disque et de son contenu qui requiert une authentification supplémentaire pour accéder au système.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 521.Voir tous les posts

3 thoughts on “Contourner l’authentification Linux en éditant le GRUB

  • La sécurisation de Grub ne sert à rien puisqu’on peut facilement accèder aux données avec un CD GNU/Linux live.

    On peut aussi réinstaller une distribution GNU/Linux et ensuite lire les fichiers dans /home, mais on n’a même pas besoin de ça.

    La seule méthode valable semble donc être le chiffrement de la partiton /home.

    librement

    Klaus Becker

    Répondre
    • Bonjour,

      Remarque très pertinente, il est vrai que la sécurisation du GRUB n’est pas forcément la méthode la plus complète. On peut plus simplement également imaginer un mot de passe BIOS (qui peux être contourné par certaines manipulation physique où si on me le DD dans un autre poste). La sécurisation par le chiffrement est je pense la méthode la plus viable. Le but du tutoriel était plus de montre le danger que la façon ultime de s’en protéger.

      Merci pour le complément d’information ! =)

      Répondre
  • Merci pour cette information, effectivement cet article avait plus pour but de montrer le fonctionnement de GRUB

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.