{'xhtml:p': ['An attacker tries each of the words in a dictionary as passwords to gain access to the system via some user's account. If the password chosen by the user was a word within the dictionary, this attack will be successful (in the absence of other mitigations). This is a specific instance of the password brute forcing attack pattern.', 'Dictionary Attacks differ from similar attacks such as Password Spraying (CAPEC-565) and Credential Stuffing (CAPEC-600), since they leverage unknown username/password combinations and don't care about inducing account lockouts.']}
Description
Attack Execution Flow
Step 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., or whether they are allowed to contain words from the dictionary).
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks).
[Determina la policy delle password dell'applicazione/sistema] Determina le policy delle password dell'applicazione/sistema target.
Determina le lunghezze minime e massime consentite per le password.
Determina il formato delle password consentite (se devono contenere numeri, caratteri speciali, ecc., o se è consentito l'uso di parole dal dizionario).
Determina la policy di blocco dell'account (una policy di blocco dell'account rigorosa impedirà attacchi brute force).
Attack Techniques
-
Determine minimum and maximum allowed password lengths.
-
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks).IT: Determina le lunghezze minime e massime consentite per la password.
-
Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc., or whether they are allowed to contain words from the dictionary).IT: Determina le lunghezze minime e massime consentite per la password.
Step 2
Explore[Select dictionaries] Pick the dictionaries to be used in the attack (e.g. different languages, specific terminology, etc.)
Select dictionary based on particular users' preferred languages.
Select dictionary based on the application/system's supported languages.
[Seleziona dizionari] Scegli i dizionari da utilizzare nell'attacco (ad esempio, lingue diverse, terminologia specifica, ecc.)
Seleziona il dizionario in base alle lingue preferite degli utenti.
Seleziona il dizionario in base alle lingue supportate dall'applicazione/sistema.
Attack Techniques
-
Select dictionary based on the application/system's supported languages.
-
Select dictionary based on particular users' preferred languages.IT: Seleziona il dizionario in base alle lingue supportate dall'applicazione/dal sistema.
Step 3
Explore[Determine username(s) to target] Determine username(s) whose passwords to crack.
Obtain username(s) by sniffing network packets.
Obtain username(s) by querying application/system (e.g. if upon a failed login attempt, the system indicates whether the entered username was valid or not)
Obtain usernames from filesystem (e.g. list of directories in C:\Documents and Settings\ in Windows, and list in /etc/passwd in UNIX-like systems)
[Determina il/i nome/i utente da colpire] Determina il/i nome/i utente le cui password devono essere craccate.
Ottieni il/i nome/i utente intercettando i pacchetti di rete.
Ottieni il/i nome/i utente interrogando l'applicazione/sistema (ad esempio, se in seguito a un tentativo di login fallito, il sistema indica se il nome utente inserito era valido o meno)
Ottieni i nomi utente dal filesystem (ad esempio, elenco delle directory in C:\Documents and Settings\ in Windows, e elenco in /etc/passwd in sistemi UNIX-like)
Attack Techniques
-
Obtain username(s) by querying application/system (e.g. if upon a failed login attempt, the system indicates whether the entered username was valid or not)
-
Obtain username(s) by sniffing network packets.IT: Ottenere il/i nome/i utente interrogando l'applicazione/sistema (ad esempio, se durante un tentativo di accesso fallito, il sistema indica se il nome utente inserito era valido o meno)
-
Obtain usernames from filesystem (e.g. list of directories in C:\Documents and Settings\ in Windows, and list in /etc/passwd in UNIX-like systems)IT: Ottenere il/i nome/i utente interrogando l'applicazione/sistema (ad esempio, se durante un tentativo di accesso fallito, il sistema indica se il nome utente inserito era valido o meno)
Step 4
Exploit[Use dictionary to crack passwords.] Use a password cracking tool that will leverage the dictionary to feed passwords to the system and see if they work.
Try all words in the dictionary, as well as common misspellings of the words as passwords for the chosen username(s).
Try common combinations of words in the dictionary, as well as common misspellings of the combinations as passwords for the chosen username(s).
[Utilizzare un dizionario per craccare le password.] Utilizzare uno strumento di password cracking che sfrutti il dizionario per fornire password al sistema e verificare se funzionano.
Provare tutte le parole presenti nel dizionario, così come gli errori di ortografia più comuni delle parole come password per gli username scelti.
Provare le combinazioni più comuni di parole nel dizionario, così come gli errori di ortografia più frequenti delle combinazioni come password per gli username scelti.
Attack Techniques
-
Try all words in the dictionary, as well as common misspellings of the words as passwords for the chosen username(s).
-
Try common combinations of words in the dictionary, as well as common misspellings of the combinations as passwords for the chosen username(s).IT: Prova tutte le parole presenti nel dizionario, così come gli errori di battitura più comuni delle parole, come password per gli username scelti.