Linux Password Cracking: Explain unshadow and john commands ( john the ripper tool )

Q. Can you tell me more about unshadow and john command line tools? How does it protect my server from crackers?

A. Both unshadow and john distributed with - John the Ripper security software or fast password cracker software. It is free and Open Source software. It runs on Windows, UNIX and Linux operating system. Use this tool to find out weak users passwords on your own server.

Linux Password Cracking with John The Ripper Tool

John cracking modes

John can work in the following modes:
[a] Wordlist : John will simply use a file with a list of words that will be checked against the passwords. See RULES for the format of wordlist files.

[b] Single crack : In this mode, john will try to crack the password using the login/GECOS information as passwords.

[c] Incremental : This is the most powerful mode. John will try any character combination to resolve the password. Details about these modes can be found in the MODES file in john’s documentation, including how to define your own cracking methods.

Install John the Ripper Password Cracking Tool

John the ripper is not installed by default. If you are using Debian / Ubuntu Linux, enter:
$ sudo apt-get install john
Note: RHEL, CentOS, Fedora, Redhat Linux user can grab john the ripper here. Once downloaded use rpm command:
# rpm -ivh john*

How do I use John the ripper to check weak passwords / crack passwords?

First use the unshadow command to combines the /etc/passwd and /etc/shadow files so John can use them. You might need this since if you only used your shadow file, the GECOS information wouldn’t be used by the "single crack" mode, and also you wouldn’t be able to use the -shells option. On a normal system you’ll need to run unshadow as root to be able to read the shadow file. So login as root or use old good sudo / su command under Debian / Ubuntu Linux:
$ sudo /usr/sbin/unshadow /etc/passwd /etc/shadow > /tmp/crack.password.db
RHEL / CentOS / Fedora Linux user type the following command:
# /usr/bin/unshadow /etc/passwd /etc/shadow > /tmp/crack.password.db
To check weak password (crack password), enter the following command:

WARNING! These examples uses brute-force ~ CPU-time consuming password cracking techniques.

To use John, you just need to supply it a password file created using unshadow command along with desired options. If no mode is specified, john will try "single" first, then "wordlist" and finally "incremental" password cracking methods.
$ john /tmp/crack.password.db
Output:

 john  /tmp/crack.password.db
Loaded 1 password (FreeBSD MD5 [32/32])

This procedure will take its own time. To see the cracked passwords, enter:
$ john -show /tmp/crack.password.db

test:123456:1002:1002:test,,,:/home/test:/bin/bash
didi:abc123:1003:1003::/home/didi:/usr/bin/rssh

2 passwords cracked, 1 left

Above output clearly indicates - user test has 123456 and didi has abc123 password.

Related:

Further readings:

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 9 comments… read them below or add one }

1 blink4blog 01.12.08 at 3:38 pm

It clearly shows that the more complex and non-dictionary words we use, the longer it takes for John to crack them.

Rules of thumb,

- never use the same password forever, change it on a periodic time.

- don’t use personal information as password or any partial of that

- mix numbers, punctuations. symbols if possible

- never share password to others

- never use root account for normal usage

- keep system up to date always

2 vivek 01.12.08 at 3:44 pm

One more addition, give shell access only if required.

3 Nilesh 01.12.08 at 5:40 pm

And one more- Disable unwanted features for users.
Like- SSH.

4 Anil Waghmare 02.05.08 at 4:37 am

its better to make /tmp/crack.password.db to /root/crack.password.db. isn’t it?

5 kojo 05.21.08 at 10:39 pm

nice short tutorial: just a question though:
whats the equivalent of this command in non redhat variant systems where unshadow does not exist?
sudo /usr/sbin/unshadow /etc/passwd /etc/shadow > /tmp/crack.password.db

6 vivek 05.21.08 at 11:05 pm

unshadow is part of the package. It should be at /usr/sbin or /usr/local/sbin

7 Anant Bhasu 05.26.08 at 8:49 am

Always take care that you dont alter the file permissions for the /etc/shadow file, which by default is “-r——–” read only for root(This is definetly true for CentOS and FC,am not sure about the rest). If the read permissions are set for the user for /etc/shadow, a non root user may be able to execute john to retrieve passwords for root as well as other users on that system. Overall this system can then be viable to remote attacks via pre installed back door user accounts.

8 Ashwani 03.30.09 at 3:19 pm

Well i can say its simply doesnt work on tough passwords it works only on simple text passwords i dont know y this package got so…much of popularity

9 Ajit 06.04.09 at 11:09 am

a simple steap is linux passwd

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tagged as: , , , , , , , , , , , , , , , , , , , ,

Previous post: DHCP Client Error: mv cannot move /etc/resolv.conf.dhclient-new to /etc/resolv.conf: Operation not permitted

Next post: Linux Iptables ip_conntrack: table full, dropping packet error and solution