R4B10 - 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.
Pensez à la détruire avant de quitter la salle.
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.
7. Nettoyage de fin de séance
Avant de quitter la salle pensez à supprimer votre machine virtuelle en exécutant la commande suivante :
vmiut rm r4b10-tp1