R410B - TP 1

Absence de chiffrement ou chiffrement trop faible

1. Introduction

Au cours de ce TP vous allez observer les problèmes liés à l'absence de chiffrement sur les mots de passes, les fichiers et les connexions réseaux.

Lors de ce TP vous allez travailler avec une machine virtuelle préparée spécialement pour l'occasion.

2. Préparation de l'environnement

Sur votre machine physique créez une machine virtuelle nommée r4b10-tp1 en utilisant comme modèle le disque /home/public/r4b10/tp1/r4b10-tp1.vdi.

La commande à utiliser doit être :

vmiut -d /home/public/r4b10/tp1/r4b10-tp1.vdi creer r4b10-tp1

Cette machine a pour adresse IP 192.168.194.11.

Elle possède 3 utilisateurs dont on ne connaît pas les mots de passe.

  • root
  • user
  • user2

3. Suppression du mot de passe root

Ne connaissant pas le mot de passe, vous n'avez aucun moyen de vous connecter à la machine virtuelle. En revanche vous avez un accès physique à la machine : il vous est possible d'y connecter une clé USB ad-hoc et de la faire démarrer sur ce support.

La plupart des programmes d'installation de système contiennent un mode de secours (rescue mode en anglais) qui permettent d'accéder à un système minimal permettant de manipuler les ressources d'un ordinateur.

C'est le cas de l'installateur Debian. Vous allez donc démarrer la machine en utilisant l'image iso de l'installation minimale Debian et supprimer le mot de passe de root directement sur le disque dur.

Pour cela et après vous être assuré que la machine est bien arrêtée il faut attacher le support de démarrage à la machine virtuelle avec les commandes suivantes :

vboxmanage storagectl r4b10-tp1 --name controleur0 --add ide
vboxmanage storageattach r4b10-tp1 --storagectl controleur0 --port 0 --device 0 --type dvddrive --medium /home/public/iso/debian/mini.iso

Sur une machine réelle ces commandes reviennent juste à brancher une clé USB et modifier le démarrage de la machine pour utiliser la clé comme support de démarrage.

Démarrez maintenant la machine virtuelle et affichez sa console.

Choisissez le mode rescue dans le menu de démarrage et suivez la procédure en choisissant Ne pas utiliser de système de fichiers racine lors du choix du mode de récupération.

Démarrez un terminal puis :

  • déterminez les partitions disponibles
  • montez la partition principale dans /mnt
  • supprimez le mot de passe de root
  • démontez la partition /mnt
  • arrêtez votre machine virtuelle

Débranchez le support de démarrage

vboxmanage storagectl r4b10-tp1 --name controleur0 --remove

Redémarrez votre machine et essayez de vous y connecter en tant que root.

4. Découverte des mots de passe de user et user2

Maintenant que vous avez un accès root à la machine vous allez essayer de décrypter les mots des passe des utilisateurs présents sur la machine.

Pour cela vous allez installer l'outil John the ripper. Sous Debian il est disponible dans le paquet john. Installez ce paquet et étudiez son fonctionnement en lisant la page john(8).

Pour tenter de décrypter des mots de passes john a besoin d'un fichier au format passwd(5) contenant les mots de passes chiffrés.

Sous Linux les mots de passes sont déportés de /etc/passwd vers /etc/shadow. La commande unshadow permet de reconstruire un fichier au format passwd(5) contenant les mots de passes chiffrés à partir de 2 fichiers respectivement au format passwd(5) et shadow(5).

Après avoir lu la page unshadow(8) créez un fichier /tmp/passwd contenant les informations complètes pour chaque utilisateur.

Utilisez maintenant la commande john pour essayer de découvrir les mots de passes des utilisateurs du système.

5. Récupération des mots de passes enregistré dans Firefox

En dehors du système d'autres applications peuvent avoir à stocker des couples d'authentification login/mot de passe.

C'est notamment le cas des navigateurs web qui offrent la possibilité de stocker ces authentifications pour faciliter la tâche des utilisateurs qui n'ont alors plus à les saisir à chaque connexion à un service web qui en aurait besoin.

Par exemple Firefox stocke ces informations dans un profil utilisateur. Par défaut ces informations sont stockées en clair dans un ou plusieurs fichiers.

Déterminez quel est le dossier contenant le profil Firefox principal de user2.

Copiez l'intégralité de ce profil dans le dossier /tmp/r4b10 de votre machine physique.

Après avoir lu comment Firefox permet de gérer les profils et de gérer les mots de passes déterminer quel est l'identifiant et le mot de passe de user2 sur les services de l'Université.

Quels sont les deux erreurs faites par user2 concernant sa gestion de son profil Firefox ?

6. Découverte des mots de passe via une écoute réseau

Sur votre machine virtuelle un serveur telnet est disponible.

Essayer de vous y connecter depuis votre machine physique en tant que user2 en utilisant la commande telnet 192.168.194.11.

Vous allez essayer d'observer la transmission du mot de passe en clair sur le réseau.

Pour cela configurez d'abord votre machine virtuelle de façon à ce que vous puissiez vous y connecter directement en tant que root depuis votre machine physique avec une authentification faite par clés, i.e. sans saisie de mot de passe.

Un appel à ssh root@192.168.194.11 doit vous connecter en tant que root directement sur votre machine virtuelle.

Vous allez maintenant observer le trafic réseau visible depuis votre machine virtuelle. Pour cela dans un nouveau terminal de votre machine physique exécutez la commande suivante

ssh root@192.168.194.11 'tcpdump -ni enp0s3 -U -w -' | wireshark -i - -k

Depuis un autre terminal de votre machine physique reconnectez-vous à votre machine virtuelle en tant que user2 avec telnet.

Observez le trafic de Telnet et vérifiez que l'identifiant et le mot de passe que vous avez saisis circulent bien en clair. Les filtres Wireshark et la possibilité de suivre un flux TCP que vous choisissez vont vous être utile.