Crack (password software)

Last updated
Crack
Developer(s) Alec Muffett
Stable release
5.0a / June, 2000
Operating system Unix
Type password cracking
Website www.crypticide.com

Crack is a Unix password cracking program designed to allow system administrators to locate users who may have weak passwords vulnerable to a dictionary attack. Crack was the first standalone password cracker for Unix systems [1] [2] [3] [4] and the first to introduce programmable dictionary generation as well.

Contents

Crack began in 1990 when Alec Muffett, a Unix system administrator at the University of Wales Aberystwyth, was trying to improve Dan Farmer's pwc cracker in COPS. Muffett found that by re-engineering the memory management, he got a noticeable performance increase. This led to a total rewrite [5] which became Crack v2.0 and further development to improve usability.

Public Releases

The first public release of Crack was version 2.7a, which was posted to the Usenet newsgroups alt.sources and alt.security on 15 July 1991. Crack v3.2a+fcrypt, posted to comp.sources.misc on 23 August 1991, introduced an optimised version of the Unix crypt() function but was still only really a faster version of what was already available in other packages.

The release of Crack v4.0a on 3 November 1991, however, introduced several new features that made it a formidable tool in the system administrator's arsenal.

Crack v5.0a [6] released in 2000 did not introduce any new features, but instead concentrated on improving the code and introducing more flexibility, such as the ability to integrate other crypt() variants such as those needed to attack the MD5 password hashes used on more modern Unix, Linux and Windows NT [7] systems. It also bundled Crack v6 - a minimalist password cracker and Crack v7 - a brute force password cracker.

Randal L. Schwartz, a notable Perl programming expert, in 1995 was prosecuted for using Crack [8] [9] on the password file of a system at Intel, a case the verdict of which was eventually expunged. [10]

Crack was also used by Kevin Mitnick when hacking into Sun Microsystems in 1993. [11]

Programmable dictionary generator

While traditional password cracking tools simply fed a pre-existing dictionary of words through the crypt() function, Crack v4.0a introduced the ability to apply rules to this word list to generate modified versions of these word lists.

These could range from the simple (do not change) to the extremely complex - the documentation gives this as an example:

X<8l/i/olsi1so0$=
Reject the word unless it is less than 8 characters long, lowercase the word, reject it if it does not contain both the letter 'i' and the letter 'o', substitute all i's for 1's, substitute all o's for 0's, and append an = sign.

These rules could also process the GECOS field in the password file, allowing the program to use the stored names of the users in addition to the existing word lists. Crack's dictionary generation rule syntax was subsequently borrowed [12] and extended [13] by Solar Designer for John the Ripper.

The dictionary generation software for Crack was subsequently reused by Muffett [14] to create CrackLib, a proactive password checking library that is bundled with Debian [15] and Red Hat Enterprise Linux-derived [16] Linux distributions.

Network distributed password cracking

As password cracking is inherently embarrassingly parallel Crack v4.0a introduced the ability to use a network of heterogeneous workstations connected by a shared filesystem as parts of a distributed password cracking effort.

All that was required for this was to provide Crack with a configuration file containing the machine names, processing power rates and flags required to build Crack on those machines and call it with the -network option.

See also

Related Research Articles

<span class="mw-page-title-main">Hacker</span> Person skilled in information technology

A hacker is a person skilled in information technology who achieves goals by non-standard means. The term has become associated in popular culture with a security hacker – someone with knowledge of bugs or exploits to break into computer systems and access data which would otherwise be inaccessible to them. In a positive connotation, though, hacking can also be utilized by legitimate figures in legal situations. For example, law enforcement agencies sometimes use hacking techniques to collect evidence on criminals and other malicious actors. This could include using anonymity tools to mask their identities online and pose as criminals. Likewise, covert world agencies can employ hacking techniques in the legal conduct of their work. Hacking and cyber-attacks are used extra-legally and illegally by law enforcement and security agencies, and employed by state actors as a weapon of legal and illegal warfare.

<span class="mw-page-title-main">Password</span> Used for user authentication to prove identity or access approval

A password, sometimes called a passcode, is secret data, typically a string of characters, usually used to confirm a user's identity. Traditionally, passwords were expected to be memorized, but the large number of password-protected services that a typical individual accesses can make memorization of unique passwords for each service impractical. Using the terminology of the NIST Digital Identity Guidelines, the secret is held by a party called the claimant while the party verifying the identity of the claimant is called the verifier. When the claimant successfully demonstrates knowledge of the password to the verifier through an established authentication protocol, the verifier is able to infer the claimant's identity.

Crack frequently refers to:

A passphrase is a sequence of words or other text used to control access to a computer system, program or data. It is similar to a password in usage, but a passphrase is generally longer for added security. Passphrases are often used to control both access to, and the operation of, cryptographic programs and systems, especially those that derive an encryption key from a passphrase. The origin of the term is by analogy with password. The modern concept of passphrases is believed to have been invented by Sigmund N. Porter in 1982.

<span class="mw-page-title-main">John the Ripper</span> Password cracking software tool

John the Ripper is a free password cracking software tool. Originally developed for the Unix operating system, it can run on fifteen different platforms. It is among the most frequently used password testing and breaking programs as it combines a number of password crackers into one package, automatically detects password hash types, and includes a customizable cracker. It can be run against various encrypted password formats including several crypt password hash types most commonly found on various Unix versions, Kerberos AFS, and Windows NT/2000/XP/2003 LM hash. Additional modules have extended its ability to include MD4-based password hashes and passwords stored in LDAP, MySQL, and others.

In computing, the superuser is a special user account used for system administration. Depending on the operating system (OS), the actual name of this account might be root, administrator, admin or supervisor. In some cases, the actual name of the account is not the determining factor; on Unix-like systems, for example, the user with a user identifier (UID) of zero is the superuser, regardless of the name of that account; and in systems which implement a role-based security model, any user with the role of superuser can carry out all actions of the superuser account. The principle of least privilege recommends that most users and applications run under an ordinary account to perform their work, as a superuser account is capable of making unrestricted, potentially adverse, system-wide changes.

<span class="mw-page-title-main">Key derivation function</span> Function that derives secret keys from a secret value

In cryptography, a key derivation function (KDF) is a cryptographic algorithm that derives one or more secret keys from a secret value such as a master key, a password, or a passphrase using a pseudorandom function. KDFs can be used to stretch keys into longer keys or to obtain keys of a required format, such as converting a group element that is the result of a Diffie–Hellman key exchange into a symmetric key for use with AES. Keyed cryptographic hash functions are popular examples of pseudorandom functions used for key derivation.

In cryptanalysis and computer security, password cracking is the process of recovering passwords from data that has been stored in or transmitted by a computer system in scrambled form. A common approach is to repeatedly try guesses for the password and to check them against an available cryptographic hash of the password. Another type of approach is password spraying, which is often automated and occurs slowly over time in order to remain undetected, using a list of common passwords.

passwd Tool to change passwords on Unix-like OSes

passwd is a command on Unix, Plan 9, Inferno, and most Unix-like operating systems used to change a user's password. The password entered by the user is run through a key derivation function to create a hashed version of the new password, which is saved. Only the hashed version is stored; the entered password is not saved for security reasons.

The Security Account Manager (SAM) is a database file in Windows XP, Windows Vista, Windows 7, 8.1, 10 and 11 that stores users' passwords. It can be used to authenticate local and remote users. Beginning with Windows 2000 SP4, Active Directory authenticates remote users. SAM uses cryptographic measures to prevent unauthenticated users accessing the system.

The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer Systems Research Group at the University of California, Berkeley, based on an early implementation of TCP/IP.

sudo Command on Unix systems to temporarily assume root privileges

sudo is a program for Unix-like computer operating systems that enables users to run programs with the security privileges of another user, by default the superuser. It originally stood for "superuser do", as that was all it did, and it is its most common usage; however, the official Sudo project page lists it as "su 'do'". The current Linux manual pages for su define it as "substitute user", making the correct meaning of sudo "substitute user, do", because sudo can run a command as other users as well.

A security hacker is someone who explores methods for breaching defenses and exploiting weaknesses in a computer system or network. Hackers may be motivated by a multitude of reasons, such as profit, protest, information gathering, challenge, recreation, or evaluation of a system weaknesses to assist in formulating defenses against potential hackers.

<span class="mw-page-title-main">Ophcrack</span> Windows password cracker

Ophcrack is a free open-source program that cracks Windows log-in passwords by using LM hashes through rainbow tables. The program includes the ability to import the hashes from a variety of formats, including dumping directly from the SAM files of Windows, and can be run via the command line or using the program’s GUI. On most computers, ophcrack can crack most passwords within a few minutes.

In Unix computing, crypt or enigma is a utility program used for encryption. Due to the ease of breaking it, it is considered to be obsolete.

In cryptography, key stretching techniques are used to make a possibly weak key, typically a password or passphrase, more secure against a brute-force attack by increasing the resources it takes to test each possible key. Passwords or passphrases created by humans are often short or predictable enough to allow password cracking, and key stretching is intended to make such attacks more difficult by complicating a basic step of trying a single password candidate. Key stretching also improves security in some real-world applications where the key length has been constrained, by mimicking a longer key length from the perspective of a brute-force attacker.

In computer security, the Zardoz list, more formally known as the Security-Digest list, was a famous semi-private full disclosure mailing list run by Neil Gorsuch from 1989 through 1991. It identified weaknesses in systems and gave directions on where to find them. Zardoz is most notable for its status as a perennial target for computer hackers, who sought archives of the list for information on undisclosed software vulnerabilities.

crypt is a POSIX C library function. It is typically used to compute the hash of user account passwords. The function outputs a text string which also encodes the salt, and identifies the hash algorithm used. This output string forms a password record, which is usually stored in a text file.

<span class="mw-page-title-main">Alec Muffett</span> Software engineer, security expert (born 1968)

Alec David Edward Muffett is an Anglo-American internet security expert and software engineer. His work includes Crack, the original password cracker for Unix, and for the CrackLib password-integrity testing library. He is active in the open-source software community.

Hashcat is a password recovery tool. It had a proprietary code base until 2015, but was then released as open source software. Versions are available for Linux, macOS, and Windows. Examples of hashcat-supported hashing algorithms are LM hashes, MD4, MD5, SHA-family and Unix Crypt formats as well as algorithms used in MySQL and Cisco PIX.

References

  1. David R. Mirza Ahmad; Ryan Russell (25 April 2002). Hack proofing your network. Syngress. pp. 181–. ISBN   978-1-928994-70-1 . Retrieved 17 February 2012.
  2. William R. Cheswick; Steven M. Bellovin; Aviel D. Rubin (2003). Firewalls and Internet security: repelling the wily hacker. Addison-Wesley Professional. pp. 129–. ISBN   978-0-201-63466-2 . Retrieved 17 February 2012.
  3. Venema, Wietse (1996-07-01). "Murphy's law and computer security". Proceedings of the Sixth USENIX UNIX Security Symposium. Retrieved 2012-02-17.
  4. Anonymous (2003). Maximum security. Sams Publishing. pp. 269–. ISBN   978-0-672-32459-8 . Retrieved 17 February 2012.
  5. Muffett, Alec (15 July 2004). "Crypticide I: Thirteen Years of Crack". blog post. Retrieved 2012-02-17.
  6. Muffett, Alec. "Crack v5.0" . Retrieved 2012-02-17.
  7. Sverre H. Huseby (15 March 2004). Innocent code: a security wake-up call for Web programmers. John Wiley & Sons. pp. 148–. ISBN   978-0-470-85744-1 . Retrieved 17 February 2012.
  8. Simson Garfinkel; Gene Spafford; Alan Schwartz (17 May 2011). Practical UNIX and Internet Security. O'Reilly Media, Inc. pp. 608–. ISBN   978-1-4493-1012-7 . Retrieved 17 February 2012.
  9. Hakim, Anthony (2004-10-10), "Global Information Assurance Certification Paper Global Information Assurance Certification Paper", Intel v. Randal L. Schwartz (PDF), SANS Institute, p. 5, retrieved 2012-02-17
  10. "Randal Schwartz's Charges Expunged - Slashdot". March 2007. Retrieved 2012-02-17.
  11. Mitnick, Kevin (2011). "Here comes the Sun". Ghost in the Wires . Little, Brown. ISBN   978-0-316-03770-9.
  12. Designer, Solar. "John the Ripper - credits". Solar Designer . Retrieved 2012-02-17.
  13. Designer, Solar. "John the Ripper - wordlist rules syntax". Solar Designer . Retrieved 2012-02-17.
  14. David N. Blank-Edelman (21 May 2009). Automating system administration with Perl. O'Reilly Media, Inc. pp. 461–. ISBN   978-0-596-00639-6 . Retrieved 17 February 2012.
  15. "Debian Package Search" . Retrieved 2012-02-17.
  16. "CrackLib Enhancement Update". Archived from the original on 2012-04-21. Retrieved 2012-02-17.

crack