Cracker des hachages SSHA
Cet article explique rapidement le fonctionnement de SSHA, un algorithme de hachage de mots de passe développé par Netscape, et les méthodes existantes pour les cracker. Le SSHA est régulièrement utilisé dans les annuaires LDAP par exemple, pour y stocker les mots de passe des utilisateurs.
1. Un peu de théorie
Pour bien comprendre son fonctionnement, il faut savoir que le SSHA s'appuie sur l'algorithme SHA-1 et lui rajoute un salage afin de le rendre plus sûr. Le salage (ou encore "salt" en anglais, d'où est issu le premier "S" de SSHA) est généralement stocké quelque part sur la machine cible et n'est donc pas connu du hacker.
On se retrouve ainsi avec une formule de ce type pour construire un hash SSHA :
SSHA = "{SSHA}" . SHA-1(password (une opération) salt)
Les hash SSHA sont donc réputés plus sûrs que les traditionnels hash en MD5 ou SHA, car l'utilisation d'un salage permet de contrer les attaques utilisant des tables de hash pré-calculées.
2. Générer un hash SSHA
Pour générer facilement un hash SSHA, nous allons utiliser la commande slappasswd qui est fournie dans le paquet openldap. Pour ce faire, ouvrez un terminal en root et lancez la commande suivante pour une distribution à base de rpm :
sudo yum install openldap-servers
Ou celle-ci pour une distribution à base de Debian :
sudo apt-get install openldap-servers libssl-dev
On pourra ensuite générer un hash SSHA comme ceci (ici le mot de passe est toto) :
$ /usr/sbin/slappasswd -h '{SSHA}' -s toto
{SSHA}VCqYH/KYiTntyJm6JnqaVDz5HerfEu0z
3. Installer SHA Attack
Pour cracker des mots de passe SSHA, il existe un logiciel nommé SHA Attack. Celui est capable de faire de la brute force sur des hachages SHA1, SHA256, SHA384 et SHA512. Ce dernier est écrit en C afin d'offrir des performances maximales.
Pour l'installer, récupérez les sources depuis le site officiel et lancez les commandes suivantes :
cd /usr/local/src
tar zxvf ssha_attack-*.tar.gz
cd ssha_attack*
make
4. Cracker des hachages SSHA
Une fois le programme installé, deux méthodes s'offrent à vous : l'attaque par dictionnaire et l'attaque par brute force qui nécessite tout de même d'indiquer l'alphabet à utiliser.
La liste des options obtenue par la commande ssha_attack --help offre des précisions sur son fonctionnement. Voici les plus importantes :
- -l : minimum de caractères
- -u : maximum de caractères
- -m : la méthode à utiliser
- -a : jeux de caractères à utiliser (6=>alphanumérique+minuscule
9=>alphanumérique+minuscule+majuscule)
Voici un exemple d'attaque par dictionnaire :
./ssha_attack -m dictionary -d /usr/share/dict/words -l 1 -u 20 -s {SSHA}7LZIyesw5WmfCFwVS3nDxJb0NeVUaS5MTXwZeQ
Et enfin un exemple d'attaque par brute force (utilisation des caractères de l'alphabet, uniquement en minuscule) :
./ssha_attack -m brute-force -l1 -u 10 -a6 -s {SSHA}VCqYH/KYiTntyJm6JnqaVDz5HerfEu0z
Hash Algorithm Detected: SHA1
There is a match on value "toto"
Elapsed time in seconds for successful attack: 51
9 Commentaires pour "Cracker des hachages SSHA"
Flux des commentaires de cet article Ajouter un commentaireMoi j'utilise actuellement le SMD5
C'est la meme chose sauf que j'utilise une opération de salage dans mon fichier PHP.
Ca n'empeche pas un hackeur de pirater ça en renomant mon PHP en txt, d'ailleurs si il y arrive il a aussi accès à ma base de donnée donc il a meme pas besoin de s'ennuyer à decrypter mon hash.
A essayer.
@Ptiseb :
T'as fais une 'tite faute de frappe dans tar -zvxf t'as oublié le - (par extension on utilise -jvxf pour les .bz2 si ça peut servir.)
@oupla : si un hacker à accès a ta base de données, il pourra quand même être intéressé par le crackage de ton mot de passe. Car généralement, les gens n'utilise que un ou deux mots de passe, et donc si il le trouve, il a de forte chance que ce dernier marchera pour ton compte mail, bancaire ou autre ...
@Marc : non il n'y a pas besoin du tiret devant les options pour tar. Ça marche très bien sans.
Ha bon ?! Bin bin j'ai bien fait d'venir alors
C'est vrai, mettre un mot de passe pour tout c'est la faille de prédilection évidente.
J'ai au moins 4 mots de passe sur le net; mais ça va; j'ai encore un peu de ROM et de RAM à mon âge, hahahaha. Surtout sous Notes oû plus tu te trompes plus le délai entre les invites de connexion augmente. 4 mots pour 3 essais. J'aime bien les petits challenges.
Je voulais dire le même mot de passe pour tout...
Et coté perf, ça donne quoi? En brute force avec un mot de passe relativement complexe (au moins 6 caractères avec du case sensitive par exemple) ça doit mettre du temps, non?
Enfin bon, je pense que ça doit être comme n'importe quel soft de hack par brute force / dictionnaire : plus le mot de passe est compliqué, plus ça prend du temps.
Conclusion : variez vos mots de passe et rendez-les compliquez (ou utilisez KeePass par exemple).
@Pecky : la brute force est une méthode toujours plus ou moins longue suivant le matériel que l'on utilise. Un simple ordinateur de bureau est par exemple trop juste. Tandis qu'un cluster de Playstation 3 permettra d'atteindre des performances intéressantes.
Bien le bonjour


Et merci, c'est pile poil ce que je cherchais
Pour info, sur Ubuntu 10.04 il faut installer libssl-dev
Bonne journée
@Pierre-Yves : j'ai rajouté libssl. Merci.