Cracking the Code: A Guide to Using Password Lists with THC-Hydra
In the world of penetration testing, one tool stands as the "Swiss Army Knife" of network logon cracking: THC-Hydra. Whether you are auditing a client’s SSH server or testing your own router’s security, Hydra is the go-to choice for fast, parallelized brute-force attacks.
A brute-force attack is only as good as the data you feed it. Today, we’ll look at how to properly use a passlist.txt file with Hydra to identify weak credentials. What is THC-Hydra?
Hydra is an open-source, multi-threaded password cracker that supports over 50 protocols, including SSH, FTP, HTTP, SMB, and RDP. Its primary power lies in its speed; unlike single-threaded tools, Hydra can launch multiple connection attempts simultaneously to find a match in seconds. Preparing Your Wordlist
A "passlist" or "wordlist" is a simple text file (.txt) containing one password per line.
Generic Lists: Popular lists like rockyou.txt contain millions of leaked passwords used in real-world breaches.
Targeted Lists: If you know the target is a specific device (like a Cisco router), you might use a list of default manufacturer passwords. The Command Breakdown
To run a basic attack using a password list, you’ll use the following syntax: passlist txt hydra upd
hydra -l [username] -P [path/to/passlist.txt] [target_ip] [protocol] Key Flags to Know:
-l (lowercase): Used for a single, known username (e.g., -l admin).
-L (uppercase): Used to provide a file containing a list of potential usernames. -p (lowercase): Used for a single, known password.
-P (uppercase): The most important flag for our guide; this points Hydra to your passlist.txt.
-t: Sets the number of parallel tasks (threads). The default is 16, but you can lower it to avoid crashing the service or set it higher for speed.
-vV: Enables "very verbose" mode, showing you every login attempt in real-time. Real-World Example: Auditing an SSH Service
Imagine you are testing an internal SSH server at 192.168.1.50 for the user georgia: Cracking the Code: A Guide to Using Password
hydra -l georgia -P /usr/share/wordlists/passlist.txt 192.168.1.50 ssh
Hydra will cycle through every password in your list until it finds a match or exhausts the file. If it finds the correct credential, it will highlight it in the terminal. Staying Under the Radar
Modern systems often have "fail2ban" or account lockout policies that block an IP after too many failed attempts. To avoid this, pros use:
-f: Stops the attack immediately after the first successful password is found.
Throttling: Use a lower thread count (-t 1) to mimic a slower, more "human" login attempt. Ethical Reminder
Hydra is a powerful tool for defensive auditing. Only use it on systems you own or have explicit, written permission to test. Unauthorized use is illegal and can lead to severe consequences.
Looking to dive deeper? Check out more Hydra documentation and training to master advanced modules like http-post-form for web logins. Sources: Collect from breach compilations
Compilations from the rockyou.txt (2009), Collection #1-5, HaveIBeenPwned (Pwned Passwords), and recent breaches (e.g., Naz.API, 2024-2025).
passlist.txtA static list of 123456 and password is useless. A modern passlist.txt must be curated. According to annual breach reports (like the Verizon DBIR or SplashData), the following categories are essential:
admin/admin, root/toor, cisco/cisco.Summer2024, Winter2025, Spring2025!.CompanyName2024, CompanyName@123.Example of a basic passlist.txt:
admin
password123
Password2025
qwerty
letmein
root
toor
1234567890
password123
Summer2023!
Tr0ub4dor
hydra -l admin -P passlist.txt 192.168.1.10 http-post-form "/login:user=^USER^&pass=^PASS^:F=invalid" -V
The acronym UPD in the context of security testing often reminds us of the need to Update our dictionaries. Old password lists like rockyou.txt are legendary, but modern password policies have changed. If you are still using 2010-era wordlists, you are wasting time.
Here is how to "UPD" your approach:
upd (Update Pipeline)Here are three ways to keep your passlist.txt "hydra-ready" with continuous updates.