explaingit

vanhauser-thc/thc-hydra

11,786CAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

Hydra is an authorized login-testing tool that automates checking username and password combinations across more than 50 protocols including SSH, FTP, HTTP, and RDP, for security professionals and penetration testers.

Mindmap

mindmap
  root((thc-hydra))
    What It Does
      Credential testing
      Parallel login attempts
      Protocol coverage
    Supported Protocols
      SSH and FTP
      HTTP and HTTPS
      RDP and VNC
      SMTP and databases
    Targeting
      Single host
      IP range
      Target list file
    Platforms
      Linux
      macOS
      Docker
    Audience
      Penetration testers
      Security researchers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Test whether SSH servers on your authorized network accept weak or default credentials during a security audit.

USE CASE 2

Check web application login forms for password strength as part of a commissioned penetration test.

USE CASE 3

Audit RDP and VNC endpoints in an authorized assessment to verify they resist credential stuffing.

USE CASE 4

Verify that a network service enforces account lockouts after a configurable number of failed login attempts.

Tech stack

CLinuxmacOSWindowsDocker

Getting it running

Difficulty · moderate Time to first run · 30min

Optional protocol modules require specific system libraries listed for Debian and Ubuntu, basic modules compile without extra dependencies.

AGPLv3, free to use and modify, but any modified version must be released as open source, including if it is used in a network service.

In plain English

Hydra is an open-source login testing tool written in C, originally released in 2001 by the THC security research group. Security professionals and penetration testers use it to check whether a target system's login credentials can be found by trying many username and password combinations in an automated way. The README explicitly states the tool is for legal purposes only and for use by researchers and consultants demonstrating how weak passwords create access risks. The primary feature that distinguishes Hydra from similar tools is its support for a large number of protocols in a single program. It can test logins over SSH, FTP, Telnet, HTTP, HTTPS, SMTP, POP3, IMAP, MySQL, PostgreSQL, MS-SQL, Oracle, RDP, VNC, SMB, LDAP, SNMP, SIP, and more than 50 other protocols and services. The module system for adding new protocols is described as straightforward, and community contributions of new modules are welcomed. From the command line, you specify the protocol, the target system, and lists of usernames and passwords to try. Hydra runs multiple parallel connection attempts at the same time, which can be configured with a number-of-tasks option. Both single targets and ranges of IP addresses are supported. A text file can supply a list of individual targets if you need to test more than one system. A graphical interface called xhydra is available on Linux. Hydra compiles and runs on Linux, macOS, Windows via Cygwin, FreeBSD, Solaris, and some mobile platforms. A Docker image is provided for faster setup. Optional libraries extend which protocol modules are available, the README lists the specific package names for Debian and Ubuntu. The project is licensed under AGPLv3.

Copy-paste prompts

Prompt 1
I have authorization to test this SSH server. Write a Hydra command that tries a list of common passwords against a given username on port 22.
Prompt 2
Show me how to use Hydra to test an HTTP POST login form, specifying the form fields and the failure message it returns.
Prompt 3
Give me a Hydra command to test RDP login on a Windows server using a wordlist, with 4 parallel tasks and a 1-second delay between attempts.
Prompt 4
How do I use a Docker-based Hydra install to test FTP credentials on a target IP without installing anything locally?
Prompt 5
Write a Hydra command that reads target IPs from a file and tests each one for default MySQL credentials.
Open on GitHub → Explain another repo

← vanhauser-thc on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.