Name |
Rainbow Table Password Cracking |
|
Likelyhood of attack |
Typical severity |
Medium |
Medium |
|
Summary |
An attacker gets access to the database table where hashes of passwords are stored. They then use a rainbow table of pre-computed hash chains to attempt to look up the original password. Once the original password corresponding to the hash is obtained, the attacker uses the original password to gain access to the system. |
Prerequisites |
Hash of the original password is available to the attacker. For a better chance of success, an attacker should have more than one hash of the original password, and ideally the whole table. Salt was not used to create the hash of the original password. Otherwise the rainbow tables have to be re-computed, which is very expensive and will make the attack effectively infeasible (especially if salt was added in iterations). The system uses one factor password based authentication. |
Execution Flow |
Step |
Phase |
Description |
Techniques |
1 |
Explore |
[Determine application's/system's password policy] Determine the password policies of the target application/system. |
- Determine minimum and maximum allowed password lengths.
- Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc.).
- Determine account lockout policy (a strict account lockout policy will prevent brute force attacks).
|
2 |
Explore |
[Obtain password hashes] An attacker gets access to the database table storing hashes of passwords or potentially just discovers a hash of an individual password. |
- Obtain copy of database table or flat file containing password hashes (by breaking access controls, using SQL Injection, etc.)
- Obtain password hashes from platform-specific storage locations (e.g. Windows registry)
- Sniff network packets containing password hashes.
|
3 |
Exploit |
[Run rainbow table-based password cracking tool] An attacker finds or writes a password cracking tool that uses a previously computed rainbow table for the right hashing algorithm. It helps if the attacker knows what hashing algorithm was used by the password system. |
- Run rainbow table-based password cracking tool such as Ophcrack or RainbowCrack. Reduction function must depend on application's/system's password policy.
|
|
Solutions | Use salt when computing password hashes. That is, concatenate the salt (random bits) with the original password prior to hashing it. |
Related Weaknesses |
CWE ID
|
Description
|
CWE-261 |
Weak Encoding for Password |
CWE-262 |
Not Using Password Aging |
CWE-263 |
Password Aging with Long Expiration |
CWE-308 |
Use of Single-factor Authentication |
CWE-309 |
Use of Password System for Primary Authentication |
CWE-521 |
Weak Password Requirements |
CWE-654 |
Reliance on a Single Factor in a Security Decision |
CWE-916 |
Use of Password Hash With Insufficient Computational Effort |
|
Related CAPECS |
CAPEC ID
|
Description
|
CAPEC-49 |
An adversary tries every possible value for a password until they succeed. A brute force attack, if feasible computationally, will always be successful because it will essentially go through all possible passwords given the alphabet used (lower case letters, upper case letters, numbers, symbols, etc.) and the maximum length of the password. |
CAPEC-151 |
Identity Spoofing refers to the action of assuming (i.e., taking on) the identity of some other entity (human or non-human) and then using that identity to accomplish a goal. An adversary may craft messages that appear to come from a different principle or use stolen / spoofed authentication credentials. |
CAPEC-560 |
An adversary guesses or obtains (i.e. steals or purchases) legitimate credentials (e.g. userID/password) to achieve authentication and to perform authorized actions under the guise of an authenticated user or service. |
CAPEC-561 |
An adversary guesses or obtains (i.e. steals or purchases) legitimate Windows administrator credentials (e.g. userID/password) to access Windows Admin Shares on a local machine or within a Windows domain. Windows systems within the Windows NT family contain hidden network shares that are only accessible to system administrators. These shares allow administrators to remotely access all disk volumes on a network-connected system and further allow for files to be copied, written, and executed, along with other administrative actions. Example network shares include: C$, ADMIN$ and IPC$. If an adversary is able to obtain legitimate Windows credentials, the hidden shares can be accessed remotely, via server message block (SMB) or the Net utility, to transfer files and execute code. It is also possible for adversaries to utilize NTLM hashes to access administrator shares on systems with certain configuration and patch levels. |
CAPEC-600 |
An adversary tries known username/password combinations against different systems, applications, or services to gain additional authenticated access. Credential Stuffing attacks rely upon the fact that many users leverage the same username/password combination for multiple systems, applications, and services. |
CAPEC-653 |
An adversary guesses or obtains (i.e. steals or purchases) legitimate Windows domain credentials (e.g. userID/password) to achieve authentication and to perform authorized actions on the domain, under the guise of an authenticated user or service. Attacks leveraging trusted Windows credentials typically result in the adversary laterally moving within the local Windows network, since users are often allowed to login to systems/applications within the domain using their Windows domain password. This domain authentication can occur directly (user typing in their password or PIN) or via Single Sign-On (SSO) or cloud-based authentication, which often don't verify the authenticity of the user's input. |
|
Taxonomy: ATTACK |
Entry ID
|
Entry Name
|
1110.002 |
Brute Force:Password Cracking |
|