🌙
  • 🇺🇸 English
  • 🇫🇷 Français
  • 🇪🇦 Español

NOTE Post Réécriture : Cet article, et bien d’autres, fait parti de la série “Script kiddie”. Il a été écrit il y a plusieurs années. Son contenu n’est pas à jour et il contient potentiellement des erreurs. Plus d’information sur la page de présentation de la série.

La méthode BruteForce consiste à tester toutes les possibilités pour trouver un mot de passe. C’est une technique très simple qui peut demander beaucoup de temps, on préférera donc l’utiliser en dernier recours ou en même temps qu’une autre attaque (au cas où). Pour plus d’informations sur le vocabulaire employé, référez-vous au chapitre sur la cryptographie.

Pour faire nos expériences, on se basera sur un hash très simple que vous pouvez obtenir avec la commande suivante :

echo "12345" | md5sum | tr -d “  -”
d577273ff885c3f84dadb8578bb41399

Collez-le à l’intérieur d’un fichier nommé pass.txt.

Accessoirement, vous aurez également besoin de dictionnaires, c’est-à-dire de grandes listes de mots constituant un ensemble de possibilité de mot-de-passe. Vous en trouverez à cette adresse.

John The Ripper, l’attaque sur CPU

John The Ripper est l’outil de cracking préféré des hackers. Il utilise les ressources du processeur (CPU) pour attaquer, ce qui en fait un outil facile à installer par apport à d’autre, et qui donne l’avantage d’avoir de bonnes performances sans carte graphique (dans la limite de la puissance de l’ordinateur).

Pour l’installer, soit vous passez par GitHub, soit par snap :

apt install john

John The Ripper, que l’on va appeler JtR maintenant, offre de nombreux avantages, comme la reconnaissance du hash, le fonctionnement sur de multiple types de hash et de multiple plateformes.

Il dispose également de plusieurs méthodes d’attaque :

C’est trois techniques peuvent se mettre en commande, et s’exécuter très simplement :

john --single pass.txt
john pass.txt --wordlist=[chemin]
john --incremental pass.txt

Une fois le travail effectué, pour voir le résultat, tapez simplement :

john --show pass.txt

Afin de gagner un peu de temps, vous pouvez préciser le type de hash que vous allez donner à john :

john --single pass.txt --format=RAW-MD5

Vous pouvez obtenir la liste des formats supportés avec :

john --list=formats

Laissez-moi dès à présent vous montrer un cas bien pratique d’utilisation de JtR. Avec ce logiciel, il devient très facile de contourner les mots de passe d’une archive zip.

Par exemple, créons une archive avec cette commande :

zip -e -r pass.zip pass.txt

Le programme vous demande alors de saisir un mot de passe, puis de le vérifier. Je vous encourage à en mettre un pas très long afin de ne pas surcharger John lors de ce petit exercice.

On va à présent utiliser la commande zip2john pour créer un hash à partir de cette archive. Sur certaines installations, la commande peut être john-the-ripper.zip2john :

zip2john pass.zip > hash.txt

Notre nouveau fichier contient à présent le hash de l’archive, il n’y a plus qu’à le cracker simplement avec cette commande :

john --format=zip hash.txt

Vous n’avez plus qu’à récupérer le mot-de-passe avec la commande plus haute.

Hashcat, l’attaque au GPU

Hashcat est également un logiciel de BruteForce très utilisé par les communautés de Hackers. Sa grande différence avec john est que, bien qu’il soit possible de le faire fonctionner sur le CPU, il fonctionne majoritairement sur la carte graphique (GPU). Ainsi, il va nous falloir quelques instructions en plus pour le faire fonctionner parfaitement.

D’abord installons-le avec :

apt install hashcat

Nous allons également recourir à un deuxième paquet qui sera très utile pour beaucoup d’opérations : https://github.com/hashcat/hashcat-utils.git

Vérifiez ensuite si hashcat est pris en charge par votre carte graphique avec cette commande :

hashcat -I

Si elle renvoie ceci :

hashcat (v5.1.0) starting...

No devices found/left.

C’est qu’il va falloir installer les drivers de votre carte graphique. Quelques instructions sont présentes ici : https://hashcat.net/hashcat/

Je possède un intel i915, si c’est aussi votre cas, vous trouverez votre bonheur ci-dessous…

https://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/15532/l_opencl_p_18.1.0.015.tgz

Pour avoir un peu plus d’informations sur hashcat, le mieux reste encore de jeter un œil à sa documentation :

hashcat -h

On remarquera que les paramètres les plus imortants sont en haut du tableau. En effet, -a et -m respectivement utilisé pour rentrer en mode attaque et pour spécifier le type de hash seront souvent présents dans vos instructions.

Vous avez ensuite la liste des algorithmes pris en charge. Le nombre présent sur la colonne de gauche correspond au nom de l’algorithme que vous allez essayer de cracker. Vous avez les formats de hash, les modes d’attaques, le branchement de l’attaque sur le GPU ou le CPU, les performances de la machine allouées à l’exécution et enfin quelques exemples d’utilisation.

Je n’ai presque rien à ajouter, à part appliquer à hashcat notre exemple de tout à l’heure. Si l’on reprend notre fichier pass.txt, la commande pour cracker le mot-de-passe présent à l’intérieur sera alors :

hashcat -m 0 -a 0 -o resultat.txt pass.txt richelieu.txt

Ici j’utilise l’algorithme MD5, en mode d’attaque par dictionnaire. Le résultat sera placé dans le fichier resultat.txt, après avoir décrypté le fichier pass.txt grâce à la liste de mots (dictionnaire) richeulieu.txt.

Comme pour John The Ripper, je vais vous présenter une utilisation un peu plus pratique de Hashcat.

Vous vous rappelez du chapitre sur les réseaux wifis ? Eh bien il est temps de passer à l’étape supérieure avec hashcat en augmentant la rapidité du crack. Pour ce faire, nous avons besoin du fichier contenant le handhake et nous allons le passer dans un des programmes de hashcat-utils. En effet, le handshake sera dans le fichier avec l’extension .cap. Hashcat ne comprenant pas ce genre de fichier, il va falloir le convertir avec hcat-utils en hccapx. Allez dans le dossier /src du dépôt hashcat-utils, puis tapez :

./cap2hccapx [fichierCap] [sortieHccapx]

Le premier chemin est celui vers votre fichier .cap, le deuxième sera pour le nom du fichier dans lequel écrire.

Il va falloir ensuite trouver le mode que hashcat va utiliser :

hashcat --help 

Ici, on cherche le protocole WPA, vous pouvez ajuster la sortie du manuel avec grep.

Ça devrait s’afficher comme ceci :

2500 | WPA-EAPOL-PBKDF2                           Network Protocols

Une fois choisi, tapez :

crunch [min] [max] [chaîne] (options) | hashcat -m 2500 [fichierHccapx]

Avec Hashcat, la rapidité de votre ordinateur devrait accrue. Elle dépendra cette fois-ci de la puissance de votre carte graphique.

Hydra, l’attaque de services

Passons à présent à un logiciel de BruteForce un peu moins utilisé que les deux autres, Hydra. Hydra sert majoritairement à attaquer des services pour trouver un mot de passe, là ou les deux autres sont utilisés pour le crack sur des hash présents sur la machine.

Pour installer Hydra :

apt install hydra

Je vous conseille de faire comme avec hashcat et de jeter directement un œil à l’aide qui est plutôt bien remplie :

hydra -h

Vous avez la liste des services pouvant être attaqués par hydra en dessous de supported services, ainsi que quelques exemples d’utilisation à la fin. On en déduira qu’une des syntaxes les plus couramment utilisées est la suivante :

hydra -l [nomUtilisateur] -P [dictionnaire] [IP] [service]

Un rapide exemple pour la route. Si je veux trouver le mot de passe du super-utilisateur sur la machine 80.74.144.93 :

hydra -l root -P 1millionProbable.txt -s 2121 80.74.144.93 ssh

Il me faut tout de même faire un petit aparté sur les services Web puisque ceux-ci ont une syntaxe un peu particulière :

hydra -l [nom] -P [dictionnaire] [IP] http-post-form “[chemin]:[var1]=[val1]&[var2]=[val2](&[plus2parametres]):[Echec]”

Expliquons cette commande qui est assez grosse pour le coup :

Si certains mots ne vous paraissent pas clairs, tous ces termes ainsi que de plus amples explications sont présents dans la partie sur les requêtes HTTP modéfiées.

Comme un exemple vaut mieux qu’un long discours, voici ce que cette commande peut donner :

hydra -l Administrateur -p richelieu.txt 172.17.200.30 http-post-form "/login:user=^USER^&password=^PASS^:Échec de la connexion (nom d’utilisateur ou mot de passe non valide)"

Ainsi, ^USER^ prendra la valeur de -l (ou -L) et ^pass^ la valeur de -p (ou -P).

Vous voilà maintenant prêts à pouvoir contourner n’importe quel mécanisme de sécurité. Cependant, gardez bien à l’esprit que cette méthode doit constituer le dernier recours de l’exploitation et non pas la stratégie de base. Elle s’avère pratique pour récupérer un maximum de mot-de-passe hashé dans une base de données, mais inutile pour récupérer les identifiants du super-utilisateur sur le service SSH quand d’autres méthodes sont disponibles sur la machine.

Bonus : Découvrir les répertoires cachés d’un site

Un service web est un dossier comportant plusieurs ressources que le client peut consulter. Bien souvent, il s’agit de document HTML, XML, PHP ou de simples textes, mais il peut s’agir d’autres types de fichier (CSS, JavaScript, Musique, Images, Vidéos, etc.).

Il demeure cependant un problème, nous ne pouvons pas nous promener librement sur le site sans avoir l’URL exacte pour consulter une ressource. Cela ne pose pas de soucis quand elles sont indexées (mises en lien sur une page), mais lorsque l’administrateur cache volontairement des informations, il est plus difficile de les retrouver.

Ainsi, le logiciel DirBuster répond à ce problème en essayant chaque possibilité d’URL que vous lui donnerez. Autrement dit, il va vérifier si tels ou tels pages existent selon le dictionnaire que vous lui avez donné.

Vous le trouverez ici : https://sourceforge.net/projects/dirbuster/

Une fois décompressé, le dossier comporte plusieurs listes ainsi que le logiciel sous le format .jar, il faut avoir Java d’installer pour le lancer, vous trouverez suffisamment d’informations sur Internet pour savoir comment faire.

Lancer DirBuster :

java -jar DirBuster-0.12.jar

Ici, nous nous pencherons uniquement sur une utilisation classique de DirBuster, libre à vous d’approfondir derrière. Pour se faire :

Une fois tout cela rempli, appuyez sur Start, le programme fait le reste du boulot.

D’autres logiciels, un peu plus modernes, existent et peuvent constituer de bonnes alternatives à DirBuster si l’installation de java vous effraie. Par exemple : https://github.com/stefanoj3/dirstalk.

Par apport aux autres méthodes de BruteForce, la recherche de dossiers cachés sur un site web est indispensable. Elle peut vous donner accès à des panels secrets et à des interfaces de connexion bien gardées.