A dictionary password attack is a more refined version of a brute force attack, and here’s how it works:
📘 What Is a Dictionary Attack?
A dictionary attack is a method used to crack passwords by systematically trying words from a predefined list—often a file containing thousands or millions of common passwords, phrases, or variations.
Unlike brute force attacks that try every possible combination of characters, dictionary attacks focus on likely passwords based on human behavior.
🧠 How It Works
-
The Attacker Prepares a Dictionary File
- This file contains commonly used passwords like:
password
123456
letmein
qwerty
iloveyou
admin
welcome
- This file contains commonly used passwords like:
-
Automated Software Tries Each Word
- The attacker uses a tool to input each word from the dictionary into the login field or password hash comparison.
-
Success or Failure
- If the password matches one in the dictionary, the attacker gains access.
- If not, the attack continues until the list is exhausted.
🧰 Tools Commonly Used
- John the Ripper
- Hashcat
- Hydra
- Medusa
These tools can be configured to use dictionary files and even combine them with rules to add numbers or symbols (e.g., password123
, admin!
).
🔍 Why It Works
Because many people use simple, predictable passwords, dictionary attacks are surprisingly effective. Studies show that a large percentage of users still rely on passwords found in basic wordlists.
🛡️ How to Defend Against It
- Use complex, unique passwords that aren’t based on dictionary words
- Avoid common substitutions (e.g.,
P@ssw0rd
is still vulnerable) - Enable account lockouts after multiple failed attempts
- Use password hashing with salt to make precomputed dictionary attacks (like rainbow tables) ineffective
- Implement multi-factor authentication (MFA)
⚠️ Real-World Example
In the Adobe breach of 2013, millions of passwords were leaked. Many were weak and easily cracked using dictionary attacks. The breach exposed how predictable user behavior can be—and why dictionary attacks remain a go-to method for hackers.