Comment casser les mots de passe

Une brève note - cet article traite de la théorie sur la façon de déchiffrer les mots de passe. Comprendre comment les cybercriminels exécutent les attaques est extrêmement important pour comprendre comment sécuriser les systèmes contre ces types d'attaques.

Tenter de pirater un système que vous ne possédez pas est probablement illégal dans votre juridiction (et le piratage de vos propres systèmes peut [et est souvent] enfreindre toute garantie pour ce produit).

Commençons par les bases. Qu'est-ce qu'une attaque par force brute?

Ce type d'attaque consiste à essayer à plusieurs reprises de se connecter en tant qu'utilisateur en essayant toutes les combinaisons possibles de lettres, de chiffres et de caractères (à l'aide d'outils automatisés).

Cela peut être fait soit en ligne (donc en temps réel, en essayant continuellement différentes combinaisons de nom d'utilisateur / mot de passe sur des comptes comme les réseaux sociaux ou les sites bancaires) ou hors ligne (par exemple si vous avez obtenu un ensemble de mots de passe hachés et que vous essayez de craquer hors ligne).

Hors ligne n'est pas toujours possible (il peut être difficile d'obtenir un ensemble de mots de passe hachés), mais c'est beaucoup moins bruyant. En effet, une équipe de sécurité remarquera probablement de nombreux comptes de connexion ayant échoué à partir du même compte, mais si vous pouvez déchiffrer le mot de passe hors ligne, vous n'aurez pas d'enregistrement des tentatives de connexion infructueuses.

C'est relativement facile avec un mot de passe court. Cela devient exponentiellement plus difficile avec un mot de passe plus long en raison du grand nombre de possibilités.

Par exemple, si vous savez que quelqu'un utilise un mot de passe de 5 caractères, composé uniquement de lettres minuscules, le nombre total de mots de passe possibles est de 26 ^ 5 (26 lettres possibles au choix pour la première lettre, 26 choix possibles pour la seconde lettre, etc.) ou 11 881 376 combinaisons possibles.

Mais si quelqu'un utilise un mot de passe à 11 caractères, uniquement en minuscules, le nombre total de mots de passe possibles est de 26 ^ 11, soit 3 670 344 486 987 776 mots de passe possibles.

Lorsque vous ajoutez des lettres majuscules, des caractères spéciaux et des chiffres, cela devient encore plus difficile et prend du temps à déchiffrer. Plus il y a de mots de passe possibles, plus il est difficile pour quelqu'un de se connecter avec une attaque par force brute.

Comment se protéger

Ce type d'attaque peut être défendu de différentes manières. Tout d'abord, vous pouvez utiliser des mots de passe suffisamment longs et complexes (au moins 15 caractères). Vous pouvez également utiliser des mots de passe uniques pour chaque compte (utilisez un gestionnaire de mots de passe!) Pour réduire le risque de violation de données.

Une équipe de sécurité peut verrouiller un compte après un certain nombre de tentatives de connexion infructueuses. Ils peuvent également forcer une méthode de vérification secondaire comme Captcha, ou utiliser l'authentification à 2 facteurs (2FA) qui nécessite un deuxième code (SMS ou e-mail, basé sur une application ou basé sur une clé matérielle).

Voici un article sur la façon d'exécuter une attaque par force brute.

Comment pouvez-vous déchiffrer les mots de passe plus rapidement?

Une attaque par dictionnaire consiste à essayer de se connecter à plusieurs reprises en essayant un certain nombre de combinaisons incluses dans un «dictionnaire» précompilé ou une liste de combinaisons.

C'est généralement plus rapide qu'une attaque par force brute car les combinaisons de lettres et de chiffres ont déjà été calculées, ce qui vous fait gagner du temps et de la puissance de calcul.

Mais si le mot de passe est suffisamment complexe (par exemple 1098324ukjbfnsdfsnej) et n'apparaît pas dans le «dictionnaire» (la liste précompilée des combinaisons à partir desquelles vous travaillez), l'attaque ne fonctionnera pas.

Il réussit souvent parce que, souvent, lorsque les gens choisissent des mots de passe, ils choisissent des mots courants ou des variantes de ces mots (par exemple, «mot de passe» ou «p @ SSword»).

Un pirate peut également utiliser ce type d'attaque lorsqu'il connaît ou devine une partie du mot de passe (par exemple, le nom d'un chien, les anniversaires d'enfants ou un anniversaire - informations qu'un pirate peut trouver sur les pages de réseaux sociaux ou d'autres ressources open source).

Des mesures de protection similaires à celles décrites ci-dessus contre les attaques par force brute peuvent empêcher ces types d'attaques de réussir.

Que faire si vous avez déjà une liste de mots de passe hachés?

Les mots de passe sont stockés dans le fichier / etc / shadow pour Linux et dans le fichier C: \ Windows \ System32 \ config pour Windows (qui ne sont pas disponibles pendant le démarrage du système d'exploitation).

Si vous avez réussi à obtenir ce fichier, ou si vous avez obtenu un hachage de mot de passe d'une manière différente, par exemple en reniflant le trafic sur le réseau, vous pouvez essayer le craquage de mot de passe `` hors ligne ''.

Alors que les attaques ci-dessus nécessitent d'essayer à plusieurs reprises de vous connecter, si vous avez une liste de mots de passe hachés, vous pouvez essayer de les déchiffrer sur votre machine, sans déclencher les alertes générées par des tentatives de connexion infructueuses répétées. Ensuite, vous n'essayez de vous connecter qu'une seule fois, après avoir réussi à déchiffrer le mot de passe (et par conséquent, aucune tentative de connexion n'a échoué).

Vous pouvez utiliser des attaques par force brute ou des attaques par dictionnaire contre les fichiers de hachage, et peuvent réussir en fonction de la force du hachage.

Attendez une minute - qu'est-ce que le hachage?

35D4FFEF6EF231D998C6046764BB935D

Reconnaissez ce message? Il dit 'Salut mon nom est megan'

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Celui-ci est le premier paragraphe de cet article. Oui, cela semble insensé, mais c'est en fait un «hachage».

Une fonction de hachage permet à un ordinateur de saisir une chaîne (une combinaison de lettres, de chiffres et de symboles), de prendre cette chaîne, de la mélanger et de sortir une chaîne de longueur fixe. C'est pourquoi les deux chaînes ci-dessus ont la même longueur, même si les entrées des chaînes étaient de longueurs très différentes.

Les hachages peuvent être créés à partir de presque n'importe quel contenu numérique. Fondamentalement, tout le contenu numérique peut être réduit en binaire ou en une série de 0 et de 1. Par conséquent, tous les contenus numériques (images, documents, etc.) peuvent être hachés.

Il existe de nombreuses fonctions de hachage différentes, dont certaines sont plus sécurisées que d'autres. Les hachages ci-dessus ont été générés avec MD5 (MD signifie "Message Digest"). Différentes fonctions diffèrent également par la longueur du hachage qu'elles produisent.

Le même contenu dans la même fonction de hachage produira toujours le même hachage. Cependant, même un petit changement modifiera complètement le hachage. Par exemple,

2FF5E24F6735B7564CAE7020B41C80F1

Est-ce que le hachage pour «Salut mon nom est Megan» Le simple fait de capitaliser le M dans Megan a complètement changé le hachage d'en haut.

Les hachages sont également des fonctions à sens unique (ce qui signifie qu'ils ne peuvent pas être inversés). Cela signifie que les hachages (uniques et à sens unique) peuvent être utilisés comme type d'empreinte numérique pour le contenu.

Quel est un exemple de la façon dont les hachages sont utilisés?

Les hachages peuvent être utilisés pour vérifier qu'un message n'a pas été modifié.

Lorsque vous envoyez un e-mail, par exemple, vous pouvez hacher l'intégralité de l'e-mail et également envoyer le hachage. Ensuite, le destinataire peut exécuter le message reçu via la même fonction de hachage pour vérifier si le message a été falsifié en transit. Si les deux hachages correspondent, le message n'a pas été modifié. S'ils ne correspondent pas, le message a été modifié.

En outre, les mots de passe sont généralement hachés lorsqu'ils sont stockés. Lorsqu'un utilisateur entre son mot de passe, l'ordinateur calcule la valeur de hachage et la compare à la valeur de hachage stockée. De cette façon, l'ordinateur ne stocke pas les mots de passe en texte clair (donc certains hackers curieux ne peuvent pas les voler!).

Si quelqu'un est capable de voler le fichier de mots de passe, les données sont inutiles car la fonction ne peut pas être inversée (bien qu'il existe des moyens, comme les tables arc-en-ciel, de déterminer quel texte brut crée le hachage connu).

Quel est le problème avec les hachages?

Si un hachage peut prendre des données de n'importe quelle longueur ou contenu, il existe des possibilités illimitées pour les données qui peuvent être hachées.

Puisqu'un hachage convertit ce texte en un contenu de longueur fixe (par exemple, 32 caractères), il existe un nombre fini de combinaisons pour un hachage. C'est un très très grand nombre de possibilités, mais pas infinies.

Finalement, deux ensembles de données différents donneront la même valeur de hachage. C'est ce qu'on appelle une collision.

Si vous avez un hachage et que vous essayez de parcourir chaque valeur de texte en clair possible pour trouver le texte en clair qui correspond à votre hachage, ce sera un processus très long et très difficile.

Cependant, que faire si vous ne vous souciez pas des deux hachages qui entrent en collision?

C'est ce qu'on appelle le «problème d'anniversaire» en mathématiques. Dans une classe de 23 élèves, la probabilité qu'une personne fête son anniversaire un jour donné est d'environ 7%, mais la probabilité que deux personnes partagent le même anniversaire est d'environ 50%.

Le même type d'analyse peut être appliqué aux fonctions de hachage afin de trouver deux hachages quelconques qui correspondent (au lieu d'un hachage spécifique qui correspond à l'autre).

Pour éviter cela, vous pouvez utiliser des fonctions de hachage plus longues telles que SHA3, où la possibilité de collisions est moindre.

Vous pouvez essayer de générer vos propres fonctions de hachage pour SHA3 ici et MD5 ici.  

Vous pouvez essayer de hacher par force brute, mais cela prend beaucoup de temps. Le moyen le plus rapide de le faire est d'utiliser des tables arc-en-ciel précalculées (qui sont similaires aux attaques par dictionnaire).

Il semble vraiment facile de se faire pirater. Dois-je m'inquiéter?

La chose la plus importante à retenir à propos du piratage est que personne ne veut faire plus de travail qu'il n'en a à faire. Par exemple, le forçage brutal des hachages peut être extrêmement long et difficile. S'il existe un moyen plus simple d'obtenir votre mot de passe, c'est probablement ce qu'un acteur malveillant essaiera en premier.

Cela signifie que l'activation des meilleures pratiques de base en matière de cybersécurité est probablement le moyen le plus simple d'éviter d'être piraté. En fait, Microsoft a récemment signalé que le simple fait d'activer 2FA finira par bloquer 99,9% des attaques automatisées.

Lecture supplémentaire:

Outils de craquage de mot de passe populaires