20
févr.
'13

Casser du MD5 avec Hashbot

Publié le 20 février 2013

Cela fait plusieurs mois que je travaille sur des méthodes de cassage de mot de passe améliorées (enfin, j'essaie), et je suis arrivé à un outil plutôt performant et relativement simple dont je ne vais pas diffuser le code de suite. Pourquoi ? Eh bien tout simplement car j'ai dans l'optique de le présenter dans un avenir proche, mais surtout de le tester abondamment. Et pour cela, j'ai mis au point un système de robot twitter offrant un système de cassage de mots de passe basé sur cet outil.

Hashbot, kezako ?

Pour l'occasion, je me suis lancé dans le développement d'un bot twitter, car je n'avais pas forcément envie de monter un site pour l'occasion, et pour plein d'autres raisons: * je n'avais pas envie de mettre de CAPTCHA * je voulais en même temps assurer une diffusion des résultats * je comptais tenir informé via un compte twitter de l'avancée de ce petit projet

Bref, Twitter imposant ses propres limites et ses fonctionnalités, j'ai jugé que c'était un moyen original et à faible coût pour réaliser une interface. Je suis donc parti sur l'idée d'un bot à qui l'on pourrait fournir des hashes MD5, voire même des URLs pointant vers des hashes MD5, qui les ajouterait à une liste de hashes à casser et posterait le résultat sur Twitter. En gros, un robot connecté pilotable par les utilisateurs.

Afin de conserver un bon ratio de cassage de mot de passe, j'ai opté pour un système en cycle. Le principe est simple: le robot collecte toutes les heures les hashes transmis par les utilisateurs, et lance une session de cassage d'une heure. A la fin de celle-ci, il communique les résultats s'il y en a. Bien sûr, plus il y a de personnes à l'utiliser mieux c'est, et à l'heure où j'écris ces lignes il n'y a pas foule à suivre @h4shb0t.

Les résultats sont actuellement postés sur le pastebin de archlinux.fr, mais pourront bouger par la suite.

Implémentation

Le code principal de Hashbot repose sur la bibliothèque Python implémentant une interface à l'API Twitter, j'ai nommé python-twitter. Cette API permet, moyennant des clés d'accès au service, d'accéder aux tweets d'utilisateurs l'ayant installée (c'est le cas pour @h4shb0t) et de réagir en fonction.

Le bot est structuré en deux threads séparés, l'un réalisant la collecte des hashes tandis que l'autre prend en charge les sessions de cassage, et l'envoi des résultats. La phase de cassage est assurée par un outil en ligne de commande, dont le résultat est analysé par le code Python et ensuite envoyé sur un pastebin. Le tout n'est pas anonyme, mais disons que @h4shb0t contribue aussi à peupler la grande base de données de clairs connus (a.k.a. known plaintexts, mais c'est aussi pour ça que certains utilisateurs le suivent sans envoyer de hashes).

Ok, comment on s'en sert ?

Pour demander à @h4shb0t de casser un ou plusieurs hashes MD5, rien de plus simple: * Suivez @h4shb0t sur Twitter (histoire de recevoir les notifications de résultats), * Tweetez à @h4shbot (mention) un ou plusieurs hashes MD5, ou mieux au moins une URL pointant sur un fichier contenant un ou plusieurs hashes MD5, * Attendez l'annonce de @h4shb0t indiquant la bonne réception des hashes et le démarrage d'une session de cassage (toutes les heures)

<emb140|center>

<emb141|center>

Pour le moment, @h4shb0t n'envoie pas de messages direct (DM), par peur de représailles de la part de Twitter. Cependant, l'idée de monter un petit site synthétisant les requêtes ainsi que le taux de réussite et les différentes sessions de cassage semble intéressant.

24
sept.
'10

Problème de voisinage

Publié le 24 septembre 2010

Un de mes voisins, que je n'appréciais guère, a eu la bonne idée de déménager, ce que je ne pouvais que saluer. Seulement voilà, le tri par le vide est une bonne initiative mais reste néanmoins une méthode très sommaire, qui peut aboutir à des fuites d'information. Et ces fuites d'information peuvent elles-même amener quelqu'un de mal intentionné à des endroits où il n'aurait pas dû être.

Un de mes voisins a déménagé. Sur un coup de tête. Je dois avouer que sur le coup, ça m'a soulagé (pour un certain nombre de raisons qui me regarde). Les problèmes de voisinage sont fréquents, mais celui-ci battait non seulement sa femme, mais faisait un boucan de tous les diables à pas d'heure, m'empêchant de dormir (quoi ? ça m'arrive, si si). Bref, il avait aussi pris une sale habitude: jeter ses poubelles dans MA poubelle, pour éviter de sortir la sienne, ce qui avait pour habitude de m'énerver doucement. Mais lorsqu'il fut parti, il me laissa en cadeau dans ma poubelle plusieurs sacs bien remplis, contenant tout plein de choses diverses et variées, et j'ai de suite entrevu sur le dessus d'un sac un amas de papiers. Intrigué, je regarde ces papiers, et repère en vrac: fiche de paie, relevés EDF et bancaires, bref, une vraie mine d'or pour qui sait chercher.

Plongée en apnée dans les méandres d'une poubelle de quartier

J'ai donc récupéré (à des fins non malveillantes, je tiens à le préciser) quelques-un de ces précieux documents, en me promettant de les étudier plus en détail par la suite. Malheureusement, mon planning étant ce qu'il est, je n'ai pas pu vraiment faire de recherche avant ce soir. Et elles ont été rapides et fructueuses. Le premier document récupéré, une fiche de paie, appartient à sa femme (très peu bavarde au demeurant), et je peux y trouver des informations diverses telles que le détail de la paie, le nom et le prénom de sa femme, ainsi que son numéro de sécurité sociale. Rien de bien transcendant, mais je garde ces infos sous le coude. J'entame une recherche rapide sur Internet, ciblant cette personne en particulier, mais rien ne ressort. Idem pour le mari. Qu'à cela ne tienne, je continue.

Relevé EDF

Document suivant, le relevé de compteur EDF. EDF a mis en place depuis quelques années un espace client en ligne, qui nécessite pour s'authentifier de posséder la référence client. Je décidais donc de vérifier si mon voisin avait pris le temps de se créer un espace client, et si oui de voir si quelqu'un de malintentionné pouvait y avoir accès. Je me suis donc connecté au système d'EDF, en prenant bien sûr quelques précautions, et j'ai essayé de créer un nouvel espace client à partir du numéro de référence client, sans succès car celui-ci est déjà employé dans un autre espace client. Autrement dit, un compte a déjà été créé et rattaché à cette référence client, peine perdue donc.

Identifiant de connexion présent sur la facture

Je regarde donc le troisième et dernier document dont je dispose, un relevé de la banque postale au nom de sa femme (livret A). Le numéro de compte y est inscrit, ainsi que son identifiant pour accéder à ses comptes via Internet. Je me dis qu'il y a peut-être moyen de creuser de ce côté là, la suite prouva que j'avais visé juste.

Sesame dustbin

En me connectant sur le site de la banque postale, je choisis d'accéder au compte, et clique sur le lien "mot de passe perdu", afin de repérer les informations nécessaires à la remise à zéro du mot de passe. Au programme: - identifiant d'accès - date de naissance - 6 premiers chiffres du numéro d'un compte Je possède l'identifiant, ainsi que les 6 premiers chiffres du numéro de compte, car ceux-ci sont indiqués sur le relevé bancaire. Il ne me reste qu'à deviner la date de naissance. C'est là que le numéro de sécurité sociale va bien aider: en effet, celui-ci contient l'année et le mois de naissance de l'assuré !

Numéro de sécurité sociale

Pour être plus précis, il est constitué d'une série de valeurs numériques de la forme SAAMMDDCCCNNNXXXKK, dont chaque groupe a une signification (cf. Wikipedia). En l'occurence, je peux donc déduire de ce numéro que la femme de mon voisin est née en mai 1985, hors de france. Il ne me reste plus qu'à identifier le jour, ce qui n'est pas trop dur à tester au cas par cas (31 possibilités). De cette façon, une personne mal intentionnée est en mesure de prendre le contrôle de ce compte, bien que les actions réalisables à partir de ce compte soient limitées (merci La Banque Postale).

Page de récupération de mot de passe

Mot de la fin

Evidemment, pour des raisons d'éthique et de morale, je n'ai pas compromis le compte bancaire de la dame; mais il est cependant très facile, avec le peu d'informations disponibles, de récupérer un accès complet et pourquoi pas d'essayer de virer des fonds. De plus, avec les quelques papiers retrouvés, d'autres scénarii d'attaques pourraient fonctionner, notamment auprès de l'administration française, ou de banques. Bref, si vous déménagez, pensez à conserver précieusemment ces papiers (pour rappel, les fiches de paie douvent être conservées à vie).



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.