Introduction

John The Ripper (que nous appellerons JtR) est un programme qui va tenter de cracker les mots de passe de vos utilisateurs. C'est un outil très utile pour tout administrateur système. Comme l'algorithme de chiffrement des mots de passe sous Unix est à sens unique, le seul moyen de découvrir un mot de passe est la force brute. Cela vous demandera beaucoup de ressources machine.

Pour plus d'informations, je vous renvois sur Wikipedia ou sur le site officiel.

Pour l'installer :

sudo apt-get install john

Tester

Pour tester le fonctionnement de JtR, je vous propose de creer un utilisateur avec un password faible. Mon utilisateur sera : jambon avec comme mot de passe 654321

ATT ATTENTION: Une fois vos tests terminés, SUPPRIMEZ immédiatement cet utilisateur !! Le fait de le laisser ou de l'oublier ouvrira une faille dans votre système !!

Une fois celui-ci créé, essayons de cracker son mot de passe :

## copions le fichier shadow par précaution :
## Il faudra aussi penser a L'EFFACER !
$ sudo cp /etc/shadow .
$ sudo chown jjl:jjl shadow
## pendant l'execution appuyez sur Entrée pour avoir l'état d'avancement
$ john shadow
Loaded 3 passwords with 3 different salts (FreeBSD MD5 32/32)
guesses: 0  time: 0:00:00:09 72% (1)  c/s: 577  trying: {j99999}
654321           (jambon)
^C
## Pour voir les password crackés après une execution :
$ john -show shadow
jambon:654321:13450:0:99999:7:::
1 password cracked, 2 left
## Pour relancer une execution interrompue :
$ john -restore

Configurer un peu plus John

Les fichiers de configuration se trouvent dans /etc/john/

  • john.conf : configuration générale
  • john-mail.conf : configuration de l'envoi de mail
  • john-mail.msg : message a envoyer en cas de crack réussit

Comment utiliser un dictionnaire francais :

JtR est livré avec une liste de password à essayer /usr/share/john/password.lst. Liste qui est surtout valable pour les utilisateurs anglophones. Nous allons utiliser un dictionnaire français à la place.

## Installer le dictionnaire :
$ sudo apt-get install wfrench
## Le convertir en UTF-8
$ iconv -f ISO-8859-15 -t utf-8 < /usr/share/dict/french > /tmp/french.utf8.lst
## Pour tester JtR avec ce nouveau dictionnaire :
## note: mon utilisateur jambon a changé de mot de passe
$ john -wordfile:/tmp/french.utf8.lst -users:jambon shadow
Loaded 1 password (FreeBSD MD5 32/32)
guesses: 0  time: 0:00:00:07 2%  c/s: 555  trying: agréions
apprivoisèrent  (jambon)
## Le test étant concluant, configurons JtR pour qu'il utilise ce dictionnaire :
$ sudo cp /tmp/french.utf8.lst /usr/share/john/french.lst
$ sudo vi /etc/john/john.conf
## Remplacer le dictionnaire actuel par cette ligne :
Wordfile = /usr/share/john/french.lst

Comment lancer JtR automatiquement

Il peut être interressant de vérifier régulièrement les mots de passe et d'être prévenu automatiquement en cas de mot de passe faible. Pour cela nous allons lancer JtR toutes les nuits et lui demander de nous prévenir par mail en cas de succès.

Note: si votre machine n'est pas configurée pour envoyer les mails locaux, vous pouvez aller voir la 1ère partie de mon billet sur la surveillance des logs par email

Commençons par activer le cron :

$ sudo vi /etc/cron.d/john 
## Décommentez les deux lignes contenant /usr/share/john/cronjob (start et stop)
## Changez les heures si necessaire, par défaut, il travaille de 1h à 7h

Un mail sera envoyé à l'utilisateur fautif pour le prévenir. Nous voulons aussi que root soit prévenu afin de tancer ce même utilisateur :

## Editons le texte du mail qui sera envoyé
$ sudo vi /etc/john/john-mail.msg
## Ajoutez la ligne suivante après le Subject
## il faut une ligne blanche entre celle-ci et le corps du message
Cc: root
## Puis la manière d'envoyer le mail
$ sudo vi /etc/john/john-mail.conf
## Ajoutez les lignes suivantes :
# Lis les destinataires dans le fichier de mail
mailargs=-t

Si certains de vos mots de passe sont crackés, vous pourrez voir lesquels avec une commande de ce genre :

$ sudo john -show /var/run/john/cronpasswd.nyqqTJ

Documentation

Voila, pour plus d'informations, vous pouvez lire les liens proposés dans l'introduction. D'autres sources sont disponibles en local, grâce àla page de man et la documention stockée dans le répertoire /usr/share/doc/john/. Par exemple je vous conseille de lire les exemples :

zcat /usr/share/doc/john/EXAMPLES.gz |less

ET SURTOUT, pensez à supprimer l'utilisateur créé pour vos tests et toutes les copies du fichier shadow que vous auriez pu faire !