Aujourd’hui nous allons voir comment utiliser l’outil Hydra.
Hydra est un outil de test d’intrusion spécialisé dans les attaques par brute force. Conçu pour évaluer la sécurité des systèmes en testant la robustesse des mots de passe, Hydra peut automatiser le processus d’essai de différentes combinaisons d’identifiants et de mots de passe pour accéder à des services tels que FTP, SSH, HTTP, et bien d’autres.
Basic HTTP Authentification
Utiliser une wordlist combinée pour l’utilisateur et le mot de passe :
Forcer l’utilisateur et le mot de passe :
SSH
Forcer l’utilisateur et le mot de passe :
Forcer seulement le mot de passe si on connait le nom de l’utilisateur :
FTP
Forcer l’utilisateur et le mot de passe :
hydra -L user.txt -P password.txt ftp://TARGET_IP
Forcer seulement le mot de passe si on connait le nom de l’utilisateur :
Formulaire d’authentification POST
Pour les formulaires de connexion utilisant la méthode POST, nous devons d’abord déterminer 3 paramètres afin de configurer hydra.
1- URL du formulaire de connexion
2- Les paramètres POST de connexion
3- Un paramètre validateur qui va permettre à hydra de savoir si la connexion a réussi ou pas
Déterminer l’URL
Nous allons commencer par analyser l’URL de la page du formulaire de connexion.
Notre formulaire de connexion se trouve à cette URL :
Nous récupérons donc « /login.php ».
Déterminer les paramètres de connexion POST
Ensuite on doit déterminer les paramètres de connexion que nous allons ensuite devoir inclure dans la commande hydra.
Pour se faire on va entrer des identifiants aléatoires et intercepter la requête avec Burp.
Nous récupérons les paramètres de connexion :
Nous allons à présent remplacer les champs « admin » avec ^USER^ et ^PASS^ afin d’indiquer à hydra les champs qu’il doit forçer :
Nous pourrions également le faire en ouvrant l’inspecteur du navigateur pour nous rendre dans l’onglet « Network » et entrer des identifiants aléatoires dans le formulaire et envoyer la requête afin de voir les paramètres de connexion.
Déterminer un paramètre validateur
Pour finir nous devons indiquer un paramètre qui va permettre à hydra de savoir si la connexion a réussi ou pas.
Cela peut être un élément HTML de la page de connexion qui ne sera pas présent sur la nouvelle page lorsque l’on sera authentifié. Hydra va examiner le code HTML de la page de réponse qu’il obtient après chaque tentative, en recherchant la chaîne que nous avons fournie.
Nous pouvons effectuer deux types d’analyse différents :
FAIL : F=html_content
SUCCESS : S=html_content
Si nous donnons un élément FAIL, hydra poursuivra sa recherche jusqu’à ce que cette chaîne ne soit plus détectée dans la réponse.
Si nous spécifions un élément SUCCESS, hydra poursuivra sa recherche jusqu’à ce que cette dernière soit présente dans la réponse.
Nous pourrions par exemple indiquer la balise HTML contenant le message d’erreur que nous obtenons lorsque la connexion a échoué dans une chaine FAIL.
Nous pouvons récupérer :
A présent nous avons nos trois éléments que nous allons compiler qui vont nous permettre de lancer notre attaque :
La commande hydra pour forcer l’utilisateur et le mot de passe :
La commande si l’on souhaite forcer uniquement le mot de passe :
RDP
Forcer l’utilisateur et le mot de passe :
Forcer seulement le mot de passe si on connait le nom de l’utilisateur :
SMB
Forcer l’utilisateur et le mot de passe :
Forcer seulement le mot de passe si on connait le nom de l’utilisateur :
MySQL
Forcer l’utilisateur et le mot de passe :
Forcer seulement le mot de passe si on connait le nom de l’utilisateur :
VNC
Forcer l’utilisateur et le mot de passe :
Forcer seulement le mot de passe si on connait le nom de l’utilisateur :
hydra -l bob –P password.txt -s PORT TARGET_IP vnc