Testez vos mots de passe


Si la sécurité de votre environnement vous tiens à coeur, il y a une vérification indispensable à ne pas négliger, la fiabilité des mots de passe utilisateurs. En effet, les mots de passe "faibles" sont très facilement cassables comme nous allons le voir ci-dessous.

Pour éviter ceci, il y a plusieurs règles à respecter lors de la création de mots de passe. Que ce soit pour les utilisateurs mais aussi et surtout pour le compte super-utilisateur (root).
Pour cela je vous renvoie vers un lien récapitulatif (malheureusement en anglais) : Pick a safe password qui vous aidera à générer des mots de passe fiables.

Nous allons tenter de déchiffrer un mot de passe à l'aide du programme libre de recherche par dictionnaire John The Ripper.

Installation des paquets :


Pour attaquer, nous allons installer les paquets essentiels :
# aptitude install john wordlist
Le paquet wordlist est tout simplement un dictionnaire de mots. Vous en trouverez pour toutes les langues sur ce serveur ftp, ici ou encore sur celui-là.


Récupération des informations de l'utilisateur :


Le mot de passe chiffré (MD5) de l'utilisateur se situe dans le fichier /etc/shadow. Nous allons donc récupérer les informations concernant un utilisateur bien précis et ainsi les copier dans un fichier temporaire. Lequel sera donc automatiquement supprimé au prochain démarrage de la machine (raisons de sécurité évidentes).

Normalement, le fichier shadow n'est pas lisible pour un simple utilisateur, il faut donc s'identifier en tant que super-utilisateur pour réaliser cette commande :
# cat /etc/shadow | grep utilisateur > /tmp/jtr.tmp
Bien entendu, utilisateur est à remplacer par le nom d'utilisateur dont vous souhaitez obtenir le mot de passe.


Recherche du mot de passe :


Maintenant que tout est prêt, nous allons rechercher (ou tenter de casser) le mot de passe de l'utilisateur choisi à l'aide de la commande john :
# john /tmp/jtr.tmp
Après quelques minutes ou quelques heures le résultat apparaît. Évidemment, cela peut prendre énormément de temps selon la puissance du processeur et le mot de passe à découvrir.

À titre d'exemple, John The Ripper n'a toujours pas réussi à casser un mot de passe créé pour l'occasion, une suite de six lettres sans aucune signification, après presque six heures de recherche :
# john /tmp/jtr.tmp
guesses: 0 time: 0:05:52:02 (3) c/s: 9834 trying: lipcren - lipcrey
Pour afficher une ligne similaire, il suffit de presser la touche Entrée pendant le processus de recherche.

Heureusement, il est possible d'aller plus vite en effectuant une recherche par dictionnaire depuis une liste de mots déterminée au sein d'un fichier texte (voir liens plus haut). Voici la commande :
# john –wordlist=/chemin_vers_la_liste /tmp/jtr.tmp

N.B : Une liste est présente dans le fichier /usr/share/dict/words.

Petite astuce : pour éviter d'avoir plusieurs listes, vous pouvez regrouper tous les termes de langues et de listes différentes au sein d'une seule et même liste (un seul fichier texte). C'est bien plus pratique.