Notes et astuces sur les systèmes libres basés sur GNU/Linux

Aller au contenu | Aller au menu | Aller à la recherche

Utiliser l'ami John avec tous ses coeurs

Bonjour,
jack.jpg

Thème du jour : Retrouver rapidement son mot de passe de GNU/Linux.

Rappel :

Les identifiants servant à se connecter à un système GNU/Linux sont stockés dans deux fichiers.
Le fichier texte /etc/passwd (appelé le fichier password), énumère tous les noms d'utilisateurs du système avec les informations qui leur sont associées (uid, gid, home, shell).
Le deuxième fichier /etc/shadow associe les noms d'utilisateurs à leurs mots de passes chiffrés en MD5.
L'algorithme MD5 (Message Digest 5) est une fonction de chiffrement qui permet de créer l'empreinte d'un fichier et de la vérifier.

Méthode :

Pour retrouver son mot de passe, il "suffit" donc d'essayer un ensemble de mot et de vérifier s'ils correspondent à l'empreinte MD5 qui est dans le fichier /etc/shadow.
L’embêtant c'est que les utilisateurs lambda n'ont pas accès au fichier /etc/shadow.
Si on utilise le programme login de notre système et que beaucoup d'essais sont invalidés, le système nous bloquera peut être (fail2ban).
Il faudra donc utiliser un livecd ou un autre système GNU/Linux afin de monter notre partition racine pour accéder aux fichiers voulus en tant que root.
Maintenant nous allons utiliser un programme qui va nous aider à retrouver la combinaison gagnante.

Il s'agit de John The Ripper pour plus d'informations sur son fonctionnement allez voir ce lien.

Utilisation classique :

Il nous suffit donc d'installer john puis de rassembler nos deux fichiers contenants les identifiants. John nous fournit l'outil unshadow pour cela :

unshadow /etc/passwd /etc/shadow > toto

Lancez notre ami à l'assaut et allez faire le tour du monde :

john toto

Une fois qu'il a trouvé une collision, john s’arrête, affiche le résultat, l’insère dans john.pot.
Les mots de passes trouvés dans les deux premières phases (attaques login, dictionnaire) sont dit vulnérables. Il faut les changer rapidement.

Bon tout va pour le mieux dans le meilleur des mondes mais si vous essayez John sur un mot de passe normal vous risquez d'y passer de longues heures et certainement beaucoup plus.

Utilisation multi-cœurs :14777.jpg

Si vous possédez plusieurs cœurs dans votre machine (ce qui est le cas de toutes nos machines modernes), il y a un moyen pour aller plus vite. Installez openmpi sur votre machine :

yaourt -S openmpi

Téléchargez, décompressez et compilez une version modifiée de John :

wget http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp17-mpi8.tar.gz
tar zxvf john-1.7.2-bp17-mpi8.tar.gz
rm  john-1.7.2-bp17-mpi8.tar.gz
cd john-1.7.2-bp17-mpi8/src
make
make clean linux-x86-6
cd ../run

Et maintenant relancez votre ami John en replaçant nombredecoeur par le nombre d'unité que vous souhaitez dédier à la recherche.

mpirun -np nombrecoeur ./john -i toto

On prendra soin d’arrêter john sinon ses processus vont continuer.

killall john

Source

That's all Folks !!