Attaque de force brute

Table des matières

Dans ce tutoriel, l'attaque par force brute sera discutée et quelques outils pour mener à bien cette attaque seront mentionnés. Tout d'abord, il s'agit de dire ce qu'est la force brute, bien que par son nom on puisse l'imaginer.

C'est une technique qui est basée sur des essais et des erreurs, elle est utilisée pour obtenir des mots de passe ou décrypter des données, cette méthode ne cherche pas une stratégie intelligente, mais teste plutôt toutes les combinaisons possibles jusqu'à ce qu'elle trouve la clé.

Est-il possible d'obtenir n'importe quel mot de passe ou de déchiffrer n'importe quel fichier ? Si notre temps était probablement infini, mais comme il ne l'est pas, la réponse est non, mots de passe ou clés longues et avec divers facteurs (majuscules, minuscules, chiffres, caractères spéciaux), il nous faudrait beaucoup de temps pour les sortir par ce méthode (dans une vie on ne serait pas atteint).

Nous pouvons utiliser cette méthode pour vérifier la sécurité de nos mots de passe ou de notre cryptage contre ce type d'attaque. Si vous voulez savoir Comment créer un mot de passe sécurisé, je vous conseille de lire ce tutoriel. Un algorithme de chiffrement vulnérable à ce type d'attaque est DES, l'inverse est le cas avec AES, qui n'est pas vulnérable à la force brute. Il est préférable de bien comprendre le domaine de la cryptographie.

Le monde de la cryptographie

Avoir un mot de passe fort est la première étape, mais vous pouvez également mettre une couche de protection supplémentaire, en utilisant le authentification à double facteur Dans vos comptes (du moins les plus précieux), il existe déjà aujourd'hui des services qui le proposent de manière intégrée et gratuite, comme Google, Twitter et Linkedin. Ces systèmes envoient normalement un message à votre mobile avec un code une fois que vous avez entré le mot de passe correct, donc jusqu'à ce que vous ayez entré ce code, vous ne pourrez pas entrer dans votre compte.

Notamment la force brute est souvent associée à des attaques par dictionnaireCette attaque consiste à avoir un fichier avec des mots de passe plus typiques (les gens utilisent généralement des mots connus pour leurs mots de passe, donc ils s'en souviennent mieux) et à les essayer tous, jusqu'à trouver la clé ou terminer les mots de passe sans succès. L'attaque en général est plus efficace, bien que si nous utilisons plusieurs facteurs dans notre mot de passe, les chances de succès diminuent considérablement.

Outils de force brute

Jean l'éventreur

Il est open source et gratuit, vous le trouverez généralement distribué en code source.Son objectif principal est de trouver les mots de passe faibles dans les systèmes d'exploitation UNIX.

Hydra de THC

Cet outil vous permet d'appliquer la force brute aux services d'authentification à distance. Vous pouvez effectuer des attaques par dictionnaire contre plus de 50 protocoles.

méduse

C'est un outil modulaire, il fonctionne en parallèle avec les connexions par force brute. Compatible avec des protocoles tels que FTP, HTTP, IMAP, SSH, etc.

Ncrack

C'est un outil pour cracker les authentifications réseau, il fonctionne rapidement. Vous pouvez étendre l'outil en créant vos propres modules.

Caïn et Abel

C'est un outil destiné à la récupération de mots de passe sous Windows, le cracker permet d'utiliser la force brute, mais aussi des attaques par dictionnaire et des attaques utilisant des tables arc-en-ciel (Rainbow Table).

Je vais mettre ci-dessous un code en Python qui obtient des mots de passe qui ne contiennent que des chiffres d'une page Web, jusqu'à 5 chiffres, cela pourrait aussi être fait avec des lettres, une plus grande longueur, etc. Je vous laisse d'abord le code qui sert les requêtes de publication en PHP:

 
On voit qu'on n'a pas de limites de tentatives, que l'utilisateur et son mot de passe sont définis là (pour éviter les bases de données et les complications au code), si l'utilisateur et le mot de passe sont corrects on retourne un code 200 et sinon un 403.

Ensuite, je laisse le code Python qui est responsable de l'envoi des requêtes au code précédent.

 import http.client, urllib.parsefrom time import target time = "/bruteForce/index.php"headers = {" Content-type ":" application / x-www-form-urlencoded "," Accept ":" application / xhtml + xml, text / html; q = 0.9, text / plain; ",} found = Falsepassword = 0home = time () while password <= 99999 and not found: parameters = urllib.parse.urlencode ({'user': ' josue ',' pass': mot de passe}) connection = http.client.HTTPConnection ("localhost") connection.request ("POST", target, parameters, headers) response = connection.getresponse () if (response.status == 200 ): print ("Mot de passe trouvé pour l'utilisateur josue, es", mot de passe) print ("Cela a pris du temps: {0: .2f} s" .format ((time () - start))) found = True else: print ( mot de passe) connection.close () mot de passe + = 1 si introuvable : print ("Aucun mot de passe trouvé pour josue")
Ce code effectue les requêtes de publication, à chaque passage à la boucle, tout ce que nous faisons est de changer le mot de passe et d'y ajouter 1, nous allons donc essayer tous les mots de passe possibles de 0 à 99999 (si nous ne le trouvons pas avant). Peignez tous les nombres que vous trouvez, car c'est comme ça que je le voulais pour l'exemple, vous pouvez le supprimer, pour cela vous éliminez le reste. Exécutons ce code pour voir s'il trouve les mots de passe.

Le premier exemple que nous allons lancer pour trouver le mot de passe 2087, ci-dessous est l'image, vous pouvez voir qu'il ne me faut pas 18 secondes pour l'obtenir.

Si je supprime le else pour qu'il ne peigne pas sur l'écran, chaque numéro prend beaucoup moins de temps, ici vous pouvez voir une capture d'écran :

Maintenant, pour la deuxième et dernière tentative, j'ai mis le mot de passe 20870, pour voir combien de temps cela prend cette fois.

Vous pouvez voir la différence, lors de l'ajout d'un caractère supplémentaire au mot de passe, mais même ainsi, c'est un temps que nous pouvons attendre sans problème, même si nous mettons des threads, le temps diminuerait. C'est pourquoi nous utilisons des mots de passe forts et une authentification robuste dans nos applications, qui ne peuvent pas automatiser cette attaque.

Si vous voulez voir un exemple pratique dans lequel le mot de passe d'un zip ou d'un rar est cassé, vous pouvez visiter le tutoriel suivant :

Casser le mot de passe .rar ou .zip

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave