Accès physique = fin de partie : changer le mot de passe root d'une VM sans le connaître
Un mot de passe de 30 caractères protège la porte d'entrée. Mais que vaut-il si l'on peut passer par la fenêtre ?
Petite vérification
Avant de commencer, vérifiez si vous savez encore réaliser ces 3 actions très simples, sur la séance précédente consacrée à la double authentification :
- depuis votre dossier
tp-2fa, lancerpython3 totp.py(oupython totp.pysous Windows) et vérifier que le code calculé pour l'instant1700000000est bien celui attendu - expliquer pourquoi les instants
1700000000et1700000009donnent le même code - citer la limite de la double authentification par code TOTP face à un faux site de connexion
📌 Réponse attendue
TP pour réfléchir et résoudre des problèmes
Votre défi pour aujourd'hui consiste à reprendre la main sur votre propre serveur Linux sans connaître aucun mot de passe, puis à mesurer ce que cela implique
Cette manipulation se fait uniquement sur votre propre machine virtuelle, ou sur une machine dont vous avez l'autorisation écrite. Sur la machine d'une autre personne, sans son accord, elle constitue un accès frauduleux, qui est un délit (article 323-1 du code pénal).
Le Cabinet Delmas et son serveur sont fictifs, construits pour l'exercice. Les étapes 1 à 3 se font dans la console de votre VM Debian (celle du cours Linux). Si vous le pouvez, prenez d'abord un instantané de la VM pour pouvoir revenir en arrière.
Étape 1 — Verrouiller soi-même la porte
Dans la VM, connectez-vous avec votre compte habituel, puis donnez au compte root un mot de passe
que vous ne connaîtrez plus :
sudo passwd root
Saisissez une suite de caractères au hasard, sans la noter (si sudo n'est pas installé,
passez d'abord par su -). Vérifiez ensuite que la porte est bien fermée :
su -
Saisissez un mot de passe quelconque.
- Que répond la machine ?
- Pourquoi cette situation correspond-elle à celle d'un administrateur qui a oublié son mot de passe, ou d'un intrus qui ne le connaît pas ?
📌 Réponse attendue
Étape 2 — Démarrer un shell sans mot de passe
Redémarrez la VM avec sudo reboot. Dès que le menu GRUB apparaît (le menu de choix du système
au démarrage), appuyez sur la touche e (edit) alors que la première entrée, Debian GNU/Linux,
est sélectionnée. Si le menu ne s'affiche pas, maintenez la touche Maj (démarrage BIOS) ou
appuyez sur Échap (démarrage UEFI) juste au démarrage de la VM.
- Repérez la ligne qui commence par
linux(elle se termine souvent parro quiet). - Placez le curseur à la fin de cette ligne, ajoutez un espace puis
init=/bin/bash. - Démarrez avec
Ctrl+X(ouF10).
Quelques secondes plus tard, vous obtenez une invite qui se termine par #. Saisissez :
whoami
id
- Quel mot de passe avez-vous saisi pour obtenir cette invite ?
- Que renvoient
whoamietid?
📌 Réponse attendue
Étape 3 — Choisir un nouveau mot de passe
Pendant ce démarrage minimal, le clavier est en disposition QWERTY : certaines touches ne
donnent pas le caractère inscrit dessus. Choisissez donc un mot de passe temporaire sans les
lettres a, q, w, z et m (par exemple retrouve). Saisissez d'abord :
passwd root
Puis, quelle que soit la réponse, lancez les commandes suivantes :
mount -o remount,rw /
passwd root
sync
reboot -f
Après le redémarrage, connectez-vous en root avec le mot de passe retrouve.
- Que se passe-t-il lors du premier
passwd root, et pourquoi ? - Quel est le rôle de
mount -o remount,rw /? - La connexion avec le nouveau mot de passe réussit-elle ?
📌 Réponse attendue
Étape 4 — Mesurer ce que l'on vient de faire
Le serveur du Cabinet Delmas (comptabilité de petites entreprises) est installé dans un placard du bureau d'accueil, sans clé. Il contient les dossiers de clients, leurs coordonnées et leurs déclarations.
- Qu'aurait pu lire ou copier une personne qui vient de faire la manipulation des étapes 2 et 3 ?
- Un mot de passe
rootde 30 caractères aurait-il changé quelque chose ? Pourquoi ? - Citez 2 mesures qui auraient rendu cette attaque plus difficile ou inutile.
📌 Réponse attendue
Étape 5 — Répondre à une objection
Le responsable du Cabinet Delmas vous dit : « Personne ici ne sait se servir d'un terminal Linux, et le serveur est protégé par un mot de passe très solide. Inutile de fermer le placard. » Que lui répondez-vous ?
Restitution orale
Un étudiant (ou un binôme) vient présenter au tableau la manipulation réalisée (étapes 2 et 3) et sa réponse au responsable du cabinet (étape 5).
- Durée : 5 minutes de présentation + 2 à 3 minutes de questions.
- Qui passe : un(e) étudiant(e) (ou un binôme) désigné(e) par l'enseignant.
- Support : le travail réalisé pendant le TP, aucune préparation supplémentaire n'est nécessaire.
- Ce qui est attendu :
- expliquer comment un shell
roota été obtenu sans mot de passe ; - présenter les conséquences pour le serveur du Cabinet Delmas et les mesures proposées ;
- répondre aux questions de la classe.
- expliquer comment un shell
Cet exercice entraîne à l'oral technique court exigé par plusieurs épreuves du BTS (notamment E5 et E6) : clarté, structure, capacité à répondre à l'improviste.
📌 Une solution
Notions théoriques
Vous venez de constater qu'un mot de passe ne protège que ce que le système contrôle. Il reste à comprendre pourquoi, et quelles protections complètent cette limite.
Que se passe-t-il au démarrage ?
Au démarrage d'une machine Linux, plusieurs programmes s'enchaînent :
- le micrologiciel (BIOS ou UEFI) initialise le matériel ;
- le chargeur de démarrage (GRUB) affiche le menu et lance le noyau ;
- le noyau Linux démarre, monte le système de fichiers, puis lance le premier programme du
système (
init, en pratiquesystemd) ; - ce premier programme démarre les services et affiche la demande de connexion.
Le mot de passe n'est demandé qu'à l'étape 4. Le paramètre init=/bin/bash placé sur la ligne du
noyau remplace l'étape 3 : le noyau lance directement bash, avec les droits de root, avant toute
authentification.
Le système de fichiers est alors monté en lecture seule (option ro de la ligne du noyau) :
c'est pourquoi la commande mount -o remount,rw / est nécessaire avant de pouvoir modifier un
fichier comme /etc/shadow, qui contient les empreintes des mots de passe.
Pourquoi on dit « accès physique = fin de partie »
Lorsqu'une personne dispose d'un accès physique sans limite à une machine, elle peut :
- démarrer un autre système, ou modifier les paramètres de démarrage (comme dans le TP) ;
- retirer le disque, le brancher sur une autre machine, et lire ses fichiers ;
- installer un matériel espion (enregistreur de frappe sur le clavier, par exemple).
Aucun mot de passe du système installé n'est opposable à ces gestes. C'est une règle classique de la sécurité informatique : si un attaquant dispose d'un accès physique illimité à votre machine, ce n'est plus votre machine.
Cette règle vaut aussi sous Windows et macOS : des méthodes équivalentes existent pour réinitialiser un mot de passe à partir d'un support de démarrage. Seule la protection physique des données change réellement la donne.
Les protections, et leurs limites
| Protection | Ce qu'elle empêche | Sa limite |
|---|---|---|
| Mot de passe GRUB | Modifier la ligne du noyau depuis le menu | Ne protège pas du démarrage sur une clé USB ni du retrait du disque |
| Mot de passe UEFI + ordre de démarrage verrouillé | Démarrer un autre support que le disque interne | Contournable par réinitialisation du micrologiciel quand on ouvre le boîtier |
| Chiffrement du disque | Lire les données sans la phrase de passe, même disque retiré | Protège les données, pas la disponibilité ; doit être prévu à l'installation |
| Sécurité physique du local (porte fermée, baie verrouillée) | Approcher la machine | Dépend des clés et des procédures d'accès |
La seule mesure qui protège réellement la confidentialité des données contre un accès physique est le chiffrement du disque : c'est l'objet d'une séance ultérieure. Le reste ralentit l'attaquant ou réduit la probabilité qu'il approche la machine.
Que retenir pour un administrateur ?
La sécurité d'un serveur se pense en couches : physique (local), matérielle (UEFI, démarrage), système (comptes, droits) et données (chiffrement, sauvegardes). Une couche manquante n'est pas compensée par la force des autres : un très bon mot de passe ne remplace pas une porte fermée.
Un poste de travail portable est exposé au même risque, en plus grand : la perte ou le vol d'un ordinateur non chiffré équivaut à la perte de tous les fichiers qu'il contient. C'est le scénario de la clé USB perdue vu lors de la séance sur les conséquences d'une fuite de données.
Test de mémorisation/compréhension
Bonnes pratiques
- Installer un serveur dans un local fermé à clé, dont l'accès est limité aux personnes qui en ont besoin.
- Ne pas compter sur un mot de passe pour protéger un accès physique : il n'est contrôlé que par le système, une fois démarré.
- Chiffrer le disque des serveurs et des postes portables : c'est la seule protection qui rend les données illisibles à qui détient la machine.
- Protéger GRUB et l'UEFI par un mot de passe et verrouiller l'ordre de démarrage, en sachant que cela retarde l'attaquant sans l'arrêter.
- Ne réaliser cette manipulation que sur sa propre machine ou avec une autorisation écrite : sur celle d'autrui, c'est un délit.
- Prendre un instantané ou une sauvegarde avant toute manipulation de démarrage, pour pouvoir revenir en arrière.