John the Ripper

logiciel informatique

John the Ripper (ou JTR, ou John) est un logiciel libre de cassage de mot de passe, utilisé notamment pour tester la sécurité d'un mot de passe (audit, crack). D'abord développé pour tourner sous les systèmes dérivés d'UNIX, le programme fonctionne aujourd'hui sous une cinquantaine de plates-formes différentes, telles que BeOS, BSD et ses dérivés, DOS, Linux, OpenVMS, Win32…

John the Ripper
Description de l'image Image-wertfghjnmbvc.jpg.
Informations
Développé par Alexander Peslyak (Solar Designer) / Openwall Project
Dernière version 1.9.0 ()[1],[2]Voir et modifier les données sur Wikidata
Dépôt github.com/openwall/johnVoir et modifier les données sur Wikidata
Assurance qualité Intégration continue et intégration continueVoir et modifier les données sur Wikidata
Écrit en C et assembleurVoir et modifier les données sur Wikidata
Système d'exploitation Type UnixVoir et modifier les données sur Wikidata
Environnement Multi-plateforme
Langues Anglais
Type Logiciel de cassage de mot de passe (d)Voir et modifier les données sur Wikidata
Licence Licence publique générale GNU version 2Voir et modifier les données sur Wikidata
Site web www.openwall.com/johnVoir et modifier les données sur Wikidata

John est l'un des logiciels de cassage de mots de passe les plus populaires, car il inclut l'autodétection des fonctions de hachage utilisées pour stocker les mots de passe, l'implémentation d'un grand nombre d'algorithmes de cassage, parce qu'il est très facilement modifiable, et qu'il permet de reprendre une attaque après une pause (arrêt de la machine).

Fonctions de hachage supportées

modifier

John est capable d'attaquer les mots de passe hachés avec différentes fonctions de hachage, notamment les algorithmes suivants : MD5, Blowfish, Kerberos, AFS, et les LM hashes de Windows NT/2000/XP/2003. Des modules additionnels sont disponibles pour lui permettre de casser les mots de passe basés sur les hash MD4 et les mots de passe enregistrés dans MySQL ou LDAP, ainsi que les mots de passe NTLM, pour les dernières versions de Windows.

La version communautaire, dite jumbo, étend considérablement cette liste et prend notamment en charge les empreintes réputées lentes, comme bcrypt et sha512crypt. La distinction est déterminante : une fonction rapide se teste à des cadences très supérieures à une fonction délibérément coûteuse, ce qui conditionne le temps nécessaire à une attaque par force brute.

Il n'est pas nécessaire d'avoir un accès physique sur la machine à auditer, tant qu'on dispose d'un fichier dans lequel sont enregistrées les empreintes des mots de passe.

Modes d'action

modifier

John dispose de quatre modes d'actions, le mode simple, l'attaque par dictionnaire, le mode incrémental et le mode Markov. Par défaut, les trois premiers modes sont exécutés dans cet ordre l'un après l'autre, bien qu'il soit possible de lancer John directement dans un des modes.

Mode simple

modifier

Dans le mode simple, John effectue quelques transformations sur le nom d'utilisateur, pour casser les mots de passe les plus faibles. Pour l'utilisateur toto, il essayerait "ToTo, toto123, ToTo123, etc.". Ce mode est le plus rapide à effectuer, un mot de passe qui serait cassé par cette méthode serait un mauvais mot de passe.

Attaque par dictionnaire

modifier

Dans ce mode, John essaye un à un tous les mots d'une liste (par défaut, password.lst fournie contenant plus de 3000 mots) de mots de passe potentiels, en leur appliquant les mêmes transformations que dans le mode précédent.

Il est possible de spécifier sa propre liste de mots avec l'option --wordlist=chemin/vers/le/fichier.

Mode incrémental

modifier

Dans ce mode, John va essayer toutes les combinaisons de caractères possibles, jusqu'à trouver le mot de passe. Tous les caractères étant testés, ce mode est techniquement infaillible, bien que la robustesse du mot de passe influe grandement sur le temps de calcul nécessaire à le trouver.

Afin d'augmenter la pertinence de l'algorithme, John implémente la recherche des caractères par fréquence d'utilisation, pour rechercher d'abord les caractères les plus utilisés statistiquement.

Mode Markov

modifier

Disponible dans la version jumbo, ce mode ordonne les candidats selon leur vraisemblance statistique, estimée à partir d'un modèle de chaîne de Markov entraîné sur une liste de mots de passe existants. Un paramètre de niveau borne le nombre de candidats produits, ce qui permet de limiter la durée de l'attaque tout en testant d'abord les chaînes les plus probables.

Dérivés

modifier

John the Ripper étant un logiciel libre, plusieurs versions modifiées ont vu le jour. La principale est la version communautaire dite jumbo, développée sur un dépôt public, qui ajoute de nombreux formats d'empreintes et prend en charge la parallélisation par OpenMP, MPI et OpenCL, afin de répartir le calcul sur plusieurs cœurs, plusieurs machines ou un processeur graphique.

Utilisation

modifier

John s'utilise en ligne de commande : l'utilisateur commence par récupérer la liste des empreintes de mots de passe, qu'il peut formater correctement pour la rendre compréhensible par John avec l'utilitaire unshadow. L'utilisateur lance John avec ou sans options, en précisant le chemin du fichier où sont enregistrées ces empreintes. John affiche le type de formatage qu'il a détecté.

Ensuite, si l'utilisateur presse une touche, il verra apparaître une ligne du type "guesses: U time: V W% (X) c/s: Y trying: Z", ou U représente le nombre de mots de passe cassés, V le temps depuis le début de l'attaque, W le pourcentage effectué dans l'attaque, X représente le mode utilisé (simple, dictionnaire, ou incrémental), Y le nombre de coups par seconde et Z la dernière chaîne de caractères testée. Cette ligne peut changer en fonction des options spécifiées au programme.

Une fois le cassage fini, on peut afficher le mot de passe avec l'option --show chemin/vers/le/fichier.

Notes et références

modifier
  1. ↑ « Release 1.9.0 », (consulté le )
  2. ↑ « Release 1.9.0 », (consulté le )

Annexes

modifier