
John the Ripper jumbo - craqueur de mots de passe hors ligne avancé, qui prend en charge des centaines de types de hachage et de chiffrement, et s'exécute sur de nombreux systèmes d'exploitation, CPU, GPU et même certains FPGA.
Ceci est la version communautaire améliorée, dite « jumbo », de John the Ripper. Elle contient beaucoup de code, de documentation et de données contribués par les développeurs de jumbo et par la communauté des utilisateurs. Il est facile d'ajouter du nouveau code à jumbo, et les exigences de qualité sont faibles, même si récemment nous avons commencé à soumettre toutes les contributions à des tests automatisés assez poussés. Cela signifie que vous disposez de nombreuses fonctionnalités qui ne sont pas nécessairement « matures », ce qui implique que des bugs dans ce code sont à prévoir.
La page d'accueil de John the Ripper est :
https://www.openwall.com/john/
Si vous avez des commentaires sur cette version ou sur JtR en général, veuillez rejoindre la liste de diffusion john-users et y poster vos messages :
https://www.openwall.com/lists/john-users/
Pour contribuer à John the Ripper jumbo, veuillez utiliser les pull requests sur GitHub :
https://github.com/openwall/john/blob/bleeding-jumbo/CONTRIBUTING.md
Vous trouverez ci-dessous la documentation de base de John the Ripper.
John the Ripper est un casseur de mots de passe rapide, actuellement disponible pour de nombreuses variantes d'Unix, macOS, Windows, DOS, BeOS et OpenVMS (cette dernière nécessite un patch fourni par la communauté). Son but principal est de détecter les mots de passe Unix faibles. Outre plusieurs types de hachages de mots de passe crypt(3) que l'on trouve le plus couramment sur diverses variantes d'Unix, il prend en charge dès l'installation les hachages Kerberos/AFS et Windows LM, ainsi que les tripcodes basés sur DES, et des centaines de hachages et de chiffrements supplémentaires dans les versions « -jumbo ».
Voir INSTALL pour des informations sur l'installation de John sur votre système.
Pour exécuter John, vous devez lui fournir des fichiers de mots de passe et, éventuellement, spécifier un mode de craquage, comme ceci, en utilisant l'ordre par défaut des modes et en supposant que « passwd » est une copie de votre fichier de mots de passe :
john passwd
ou, pour le restreindre au seul mode liste de mots, mais en autorisant l'utilisation des règles de transformation des mots :
john --wordlist=password.lst --rules passwd
Les mots de passe craqués seront affichés sur le terminal et enregistrés dans le fichier $JOHN/john.pot (dans la documentation et dans le fichier de configuration de John, « $JOHN » désigne le « répertoire d'accueil » de John ; le répertoire réel dépend de la façon dont vous avez installé John). Le fichier $JOHN/john.pot sert également à ne pas recharger les hachages de mots de passe que vous avez déjà craqués lors de la prochaine exécution de John.
Pour récupérer les mots de passe craqués, exécutez :
john --show passwd
Pendant le craquage, vous pouvez appuyer sur n'importe quelle touche pour obtenir l'état d'avancement, ou sur « q » ou Ctrl-C pour interrompre la session en enregistrant son état dans un fichier ($JOHN/john.rec par défaut). Si vous appuyez une seconde fois sur Ctrl-C avant que John n'ait eu le temps de terminer le traitement de votre premier Ctrl-C, John s'arrêtera immédiatement sans enregistrer. Par défaut, l'état est également enregistré toutes les 10 minutes afin de permettre une récupération en cas de plantage.
Pour reprendre une session interrompue, exécutez :
john --restore
Ce ne sont là que les choses les plus essentielles que vous pouvez faire avec John. Pour une liste complète des options de la ligne de commande et pour des exemples d'utilisation plus complexes, vous devez vous référer respectivement à OPTIONS et à EXAMPLES.
Veuillez noter que les distributions « binaires » (précompilées) de John peuvent inclure des exécutables alternatifs au lieu du simple « john ». Vous devrez peut-être choisir l'exécutable qui convient le mieux à votre système, par exemple « john-omp » pour tirer parti de plusieurs CPU et/ou cœurs de CPU.
John the Ripper est conçu pour être à la fois riche en fonctionnalités et rapide. Il combine plusieurs modes de craquage dans un seul programme et est entièrement configurable en fonction de vos besoins particuliers (vous pouvez même définir un mode de craquage personnalisé à l'aide du compilateur intégré prenant en charge un sous-ensemble du C). De plus, John est disponible pour plusieurs plateformes différentes, ce qui vous permet d'utiliser le même casseur partout (vous pouvez même reprendre une session de craquage commencée sur une autre plateforme).
Dès l'installation, John prend en charge (et détecte automatiquement) les types de hachages Unix crypt(3) suivants : DES traditionnel, « bigcrypt », DES étendu BSDI, MD5 FreeBSD (également utilisé sous Linux et dans Cisco IOS), et Blowfish OpenBSD (également utilisé de nos jours sur certaines distributions Linux et pris en charge par les versions récentes de Solaris). Sont également pris en charge dès l'installation les hachages Kerberos/AFS et Windows LM (basés sur DES), ainsi que les tripcodes basés sur DES.
Lorsqu'il est exécuté sur des distributions Linux avec glibc 2.7+, John 1.7.6+ prend également en charge (et détecte automatiquement) les hachages SHA-crypt (qui sont en réalité utilisés par les versions récentes de Fedora et d'Ubuntu), avec une parallélisation OpenMP facultative (nécessite GCC 4.2+, doit être explicitement activée à la compilation en décommentant la ligne OMPFLAGS appropriée au début du Makefile).
De même, lorsqu'il est exécuté sur des versions récentes de Solaris, John 1.7.6+ prend en charge et détecte automatiquement les hachages SHA-crypt et SunMD5, également avec une parallélisation OpenMP facultative (nécessite GCC 4.2+ ou un Sun Studio récent, doit être explicitement activée à la compilation en décommentant la ligne OMPFLAGS appropriée au début du Makefile et à l'exécution en définissant la variable d'environnement OMP_NUM_THREADS au nombre de threads souhaité).
Les versions « -jumbo » ajoutent la prise en charge de centaines de types de hachages et de chiffrements supplémentaires, notamment des implémentations intégrées rapides de SHA-crypt et SunMD5, les hachages de mots de passe Windows NTLM (basés sur MD4), divers hachages de mots de passe d'utilisateurs macOS et Mac OS X, des hachages rapides tels que MD5 brut, SHA-1, SHA-256 et SHA-512 (que de nombreuses « applications web » ont historiquement utilisés à mauvais escient pour les mots de passe), divers autres hachages de mots de passe d'« applications web », divers hachages de mots de passe de serveurs SQL et LDAP, et bien d'autres types de hachages, ainsi que de nombreux non-hachages tels que les clés privées SSH, les fichiers S/Key skeykeys, les TGT Kerberos, les systèmes de fichiers chiffrés comme les fichiers .dmg de macOS et les « sparse bundles », les archives chiffrées comme les ZIP (PKZIP classique et WinZip/AES), les RAR et les 7z, les documents chiffrés comme les PDF et ceux de Microsoft Office — et ce ne sont là que quelques exemples. Pour charger certains de ces fichiers volumineux en vue de les craquer, un programme *2john correspondant et fourni doit d'abord être utilisé, puis sa sortie doit être injectée dans JtR -jumbo.
Il existe une interface graphique officielle pour John the Ripper : Johnny.
Bien que Johnny soit orienté vers le noyau de JtR, toutes les fonctionnalités de base sont censées fonctionner dans toutes les versions, y compris jumbo.
Johnny est un programme séparé. Vous devez donc avoir John the Ripper installé pour pouvoir l'utiliser.
Plus d'informations sur Johnny et ses versions sont disponibles sur le wiki :
https://openwall.info/wiki/john/johnny
Le reste de la documentation se trouve dans des fichiers séparés, listés ici dans l'ordre de lecture recommandé :
(*) La plupart des utilisateurs peuvent sans risque ignorer ces fichiers.
Il existe de nombreux autres fichiers de documentation dans le répertoire « doc » de jumbo, que vous voudrez également explorer.
Bonne lecture !