Name |
Password Brute Forcing |
|
Likelyhood of attack |
Typical severity |
Medium |
High |
|
Summary |
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. |
Prerequisites |
An adversary needs to know a username to target. The system uses password based authentication as the one factor authentication mechanism. An application does not have a password throttling mechanism in place. A good password throttling mechanism will make it almost impossible computationally to brute force a password as it may either lock out the user after a certain number of incorrect attempts or introduce time out periods. Both of these would make a brute force attack impractical. |
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 |
Exploit |
[Brute force password] Given the finite space of possible passwords dictated by the password policy determined in the previous step, try all possible passwords for a known user ID until application/system grants access. |
- Manually or automatically enter all possible passwords through the application/system's interface. In most systems, start with the shortest and simplest possible passwords, because most users tend to select such passwords if allowed to do so.
- Perform an offline dictionary attack or a rainbow table attack against a known password hash.
|
|
Solutions | Implement a password throttling mechanism. This mechanism should take into account both the IP address and the log in name of the user. Put together a strong password policy and make sure that all user created passwords comply with it. Alternatively automatically generate strong passwords for users. Passwords need to be recycled to prevent aging, that is every once in a while a new password must be chosen. |
Related Weaknesses |
CWE ID
|
Description
|
CWE-257 |
Storing Passwords in a Recoverable Format |
CWE-262 |
Not Using Password Aging |
CWE-263 |
Password Aging with Long Expiration |
CWE-307 |
Improper Restriction of Excessive Authentication Attempts |
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 |
|
Related CAPECS |
CAPEC ID
|
Description
|
CAPEC-112 |
In this attack, some asset (information, functionality, identity, etc.) is protected by a finite secret value. The attacker attempts to gain access to this asset by using trial-and-error to exhaustively explore all the possible secret values in the hope of finding the secret (or a value that is functionally equivalent) that will unlock the asset. |
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. |
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 operating system credentials (e.g. userID/password) to achieve authentication and to perform authorized actions on the system, under the guise of an authenticated user or service. This applies to any Operating System. |
|
Taxonomy: ATTACK |
Entry ID
|
Entry Name
|
1110.001 |
Brute Force:Password Guessing |
|