Cracking Passwords with John
Cracking Passwords with John the Ripper
Introduction
John the Ripper (often referred to simply as "John") is one of the most popular password-cracking tools in the cybersecurity field. It is designed to crack password hashes using several algorithms and cracking methods such as dictionary-based attacks, brute force, and hybrid attacks. John supports a wide range of hash types, including DES, MD5, SHA-1, and more.
In this tutorial, we'll show you how to use John the Ripper to crack password hashes extracted from the /etc/passwd and /etc/shadow files, which are commonly found on Unix-based systems.
Prerequisites
Before proceeding with cracking passwords using John the Ripper, ensure you have the following:
Access to a system where John the Ripper is installed.
The
/etc/passwdand/etc/shadowfiles (you need root or sudo access to retrieve these files).A basic understanding of password hashes and how they are stored in the
/etc/passwdand/etc/shadowfiles.
If you don't have John the Ripper installed, you can install it using the following commands (depending on your operating system):
Install John the Ripper on Ubuntu/Debian
sudo apt update
sudo apt install johnUnderstanding /etc/passwd and /etc/shadow Files
The /etc/passwd file contains user account information such as the username, user ID, group ID, home directory, and login shell. It is a plain-text file that typically includes a hash of the user's password. However, starting with modern Linux systems, the password hash is often stored in the /etc/shadow file for security reasons.
Here is an example entry from /etc/passwd:
username:$6$WqOHLu6B$e8G5wzk7hT2oZbN4zyDdD3Fd.wkwrfTp52nxOxxHQWpY8AeHc/Bqh0XJ0sEPklhoFPJ70iXe0Cu.Lyg79TQmB/:1001:1001::/home/username:/bin/bashThe part following the first colon (:) is the password hash, which will be cracked.
The /etc/shadow file stores the hashed passwords securely and is only readable by the root user. An example line in /etc/shadow might look like this:
username:$6$WqOHLu6B$e8G5wzk7hT2oZbN4zyDdD3Fd.wkwrfTp52nxOxxHQWpY8AeHc/Bqh0XJ0sEPklhoFPJ70iXe0Cu.Lyg79TQmB/:18129:0:99999:7:::Step 1: Extract the Password Hashes
To crack the passwords, we need to extract the hashes from the /etc/passwd and /etc/shadow files. If you're working with a local system, you can retrieve these files directly. For this example, we will assume you have both files on your local machine.
Extract
/etc/passwd: You can view the/etc/passwdfile with the following command:cat /etc/passwdExtract
/etc/shadow: You can view the/etc/shadowfile with the following command (this requires root access):sudo cat /etc/shadow
For John to work with these files, we need to prepare them in a format that John can process. Fortunately, John the Ripper can handle the hash formats directly, but we need to combine them for cracking.
Step 2: Prepare the Files for John
John the Ripper requires the hashes to be combined into a single file for cracking. To do this, we will use the unshadow tool, which is included with John the Ripper.
Use the following command to combine /etc/passwd and /etc/shadow into a single file:
sudo unshadow /etc/passwd /etc/shadow > hashes.txtThe hashes.txt file will now contain all the password hashes from both files.
Step 3: Cracking the Password Hashes
Now that we have our hashes, we can use John to crack them. To start the cracking process, run the following command:
john hashes.txtJohn will attempt to crack the hashes using its default wordlist (/usr/share/john/password.lst) or any custom wordlist you provide.
To use a custom wordlist, specify the path to your wordlist file like so:
john --wordlist=/path/to/wordlist.txt hashes.txtYou can also use other cracking methods, such as brute-force attacks, by adding flags for different attack types. For example:
john --incremental hashes.txtThis method will try all possible character combinations for cracking the password, but it will take longer.
Step 4: View the Cracked Passwords
Once John the Ripper has finished cracking the hashes, you can view the results with the following command:
john --show hashes.txtThis will display the cracked passwords for each user, if the password was successfully cracked.
Example Output:
username:password123If John was unable to crack a hash, it will be indicated in the output.
Advanced Cracking Methods
John the Ripper also supports several advanced features, such as:
Rainbow Tables: Using precomputed hash tables to speed up the cracking process.
Custom Wordlists: Providing your own list of passwords (e.g., from leaks or common password patterns).
Hybrid Attacks: Combining dictionary and brute-force attacks to create powerful cracking methods.
Refer to the John the Ripper documentation for more advanced usage scenarios.
Conclusion
John the Ripper is a versatile and powerful tool for cracking password hashes. In this tutorial, we demonstrated how to crack password hashes from the /etc/passwd and /etc/shadow files using the unshadow tool and the John the Ripper cracking engine. With the right wordlists and cracking strategies, John can help uncover weak or easily guessable passwords, which is a critical step in securing systems and applications.
Last updated