Exécuter une attaque HTTP de base
Dans cette étape, nous allons effectuer une attaque HTTP de base en utilisant Hydra. Hydra est un outil puissant de craquage de mots de passe et peut être utilisé pour tester la sécurité de divers services, y compris HTTP. Nous ciblerons un simple formulaire de connexion HTTP pour démontrer les capacités de Hydra.
Avant de commencer, comprenons quelques concepts de base :
- HTTP (Hypertext Transfer Protocol) : Le fondement de la communication de données sur le World Wide Web.
- Hydra : Un outil de craquage de connexion parallélisé qui prend en charge de nombreux protocoles pour effectuer des attaques.
- Cible : Dans notre cas, un serveur web avec un formulaire de connexion.
- Liste d'utilisateurs : Un fichier contenant une liste d'utilisateurs potentiels.
- Liste de mots de passe : Un fichier contenant une liste de mots de passe potentiels.
Tout d'abord, créons une simple liste d'utilisateurs et une liste de mots de passe. Nous utiliserons nano
pour créer ces fichiers dans le répertoire ~/project
.
Créez un fichier nommé users.txt
avec le contenu suivant :
nano ~/project/users.txt
Ajoutez les utilisateurs suivants au fichier :
admin
user
test
Enregistrez le fichier en appuyant sur Ctrl+X
, puis Y
, puis Entrée
.
Ensuite, créez un fichier nommé passwords.txt
avec le contenu suivant :
nano ~/project/passwords.txt
Ajoutez les mots de passe suivants au fichier :
password
123456
test
Enregistrez le fichier en appuyant sur Ctrl+X
, puis Y
, puis Entrée
.
Maintenant, supposons que nous ayons un serveur web en cours d'exécution à l'adresse 127.0.0.1
sur le port 80
avec un formulaire de connexion. Le formulaire nécessite un nom d'utilisateur et un mot de passe, et la page de connexion se trouve à l'adresse /login.php
. Nous utiliserons Hydra pour tenter de craquer la connexion.
Remarque : Pour ce laboratoire, nous allons simuler le service HTTP. Dans un scénario du monde réel, vous remplaceriez 127.0.0.1
par l'adresse IP réelle ou le nom de domaine du serveur cible.
Pour effectuer l'attaque HTTP de base, utilisez la commande suivante :
hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 http-post-form "/login.php:username=^USER^&password=^PASS^:Invalid username or password"
Décortiquons cette commande :
hydra
: La commande Hydra.
-L ~/project/users.txt
: Spécifie le fichier de la liste d'utilisateurs.
-P ~/project/passwords.txt
: Spécifie le fichier de la liste de mots de passe.
127.0.0.1
: L'adresse IP cible.
http-post-form
: Spécifie le module d'attaque de formulaire HTTP POST.
"/login.php:username=^USER^&password=^PASS^:Invalid username or password"
: Spécifie la page de connexion, les champs de nom d'utilisateur et de mot de passe, ainsi que le message d'erreur affiché en cas d'échec de connexion. ^USER^
et ^PASS^
sont des espaces réservés que Hydra remplace par les noms d'utilisateur et les mots de passe des listes.
Après avoir exécuté la commande, Hydra tentera de se connecter en utilisant chaque combinaison de nom d'utilisateur et de mot de passe. Si une connexion réussie est trouvée, Hydra affichera le nom d'utilisateur et le mot de passe.
Exemple de sortie (en cas de réussite) :
Hydra v9.6 (c) 2024 by van Hauser/THC - Use freely but only for legal purposes.
Hydra is starting...
[DATA] 1 task, 3 servers, 3 login tries (l:3/p:3), ~1 try per server
[DATA] attacking service http-post-form on port 80
[ATTACK] attacking 127.0.0.1:80/login.php
[80][http-post-form] host: 127.0.0.1 login: admin password: password
Cette sortie indique que Hydra a réussi à trouver la combinaison de nom d'utilisateur admin
et de mot de passe password
.
Si aucune connexion réussie n'est trouvée, Hydra se terminera sans afficher de informations de connexion réussies.