An attack using every possible input to attempt to produce the correct output. Typically the method of last resort when no weakness allows the use of a more restricted input set. E.g. trying all possible (or likely) passwords, in an attempt to guess the correct one.
A brute-force attack attempts to determine the correct password or secret by simply trying every possible input combination in efforts to gain access to a system.
Commonly confused with a dictionary attack, a brute-force attack differs in the sense that it does not use a pre-compiled wordlist to attempt access. For example, if the password we were trying to crack had a known length of 7 and only used A-Z and 0-9 characters as a ruleset, then a brute-force attack would approach the situation by attempting to recreate every possible combination of the 7-character password, i.e. d07a8c1
. This attack would ordinarily start at aaaaaa0
, then aaaaaa1
, eventually reaching the correct password d07a8c1
, though there is no specific order that the brute-force needs to follow; its only requirement is to attempt all possible permutations of the 7-character password using A-Z, 0-9.
This is an exhaustive method, but provided there was no rate-limiting on the service that is attempting to be cracked or if this cracking was able to be done offline, then the brute-force is highly likely if not guaranteed to succeed, though the time it would take to succeed is determined by the hardware (either GPU or CPU) of the machine attempting the attack. In other words, it would take an ordinary laptop significantly longer to crack a password than let's say a machine that had multiple graphics cards, or was otherwise tailored specifically for intensive computation.
Questions using this tag could either pertain to how to properly attempt a brute-force attack (with proper authorization), how to identify a brute-force attack, or how to prevent against a brute-force attack.