In Linux, encrypted passwords cannot be decrypted. Most modern, technical
encryption processes are now one-way (that is, there is no process to be
executed in reverse that will reveal the password in plain text). This
implementation of password schematics is called "hashing".
A brute-force password hack attempts to guess the password, hash the password
with the same algorithm as the original hash, and through a comparative
analysis, try to match encrypted versions of the password to the original.
These brute-force engines - programs that try word after word, often at high
speeds, rely on the theory that eventually, it will encounter the right word
or phrase. This theory has been proven to be sound, primarily due to the
factor of human laziness. Users simply do not take care to create strong
passwords (words that do not occur in dictionaries, etc..).
Users are rarely, if ever, educated as to what are wise choices for
passwords. If a password is in the dictionary, it is extremely vulnerable
to being cracked, and users are simply not coached as to "safe" choices
for passwords. Of those users who are so educated, many think that simply
because their password is not in /usr/dict/words, it is safe from detection.
Many users also say that because they do not have private files online, they
are not concerned with the security of their account, little realizing that
by providing an entry point to the system they allow damage to be wrought
on their entire system by a malicious cracker.
In order to crack a password with brute-force, one must obtain the password
in its encrypted form. The encrypted form is needed so that as the crack
engine hashes random (or not so random) words and phrases, it must compare
the hashed result to the valid hashed password on the system. The hashed
passwords are available in a file "/etc/passwd" on most older linux systems.
On newer linux systems, obtaining this file is not enough, newer systems use
a newer scheme called password shadowing. The file "/etc/shadow" now contains
the hashed passwords and is not accessible by users of a system. Only the
login daemon and root can access this file, therefore protecting a system
from brute-force crack attempts.
After obtaining the passwd file, one can extract the user's hashed password
and insert it into a file where the engine will compare it with it's hashed
attempts until it matches and the crack is successful. The brute-force engine
often reads a dictionary file and begins hashing each word and comparing it
word by word. This can be very time consuming on slower systems (thus making
hashed passwords somewhat secure). In the future when computers are faster,
500Ghz or so, simple hashing will no longer be strong b/c 20 these machines
clustered together will crack in a more timely manner.
Brute-force engines:
CrackerJack by Jackal
Qcrack by the Crypt Keeper
John the Ripper by Solar Designer
Star Cracker by the Sorcerer
Killer Cracker by Doctor Dissector
Hellfire Cracker by the Racketeer and the Presence
Guess by Christian Beaumont
Linux Passwd Salts (encryption cycles):
cut -f 2 -d \: /etc/passwd | cut -c 1,2 | sort | uniq -c | more