Attacchi a dizionario: come creare il proprio dizionario

Ho deciso di scrivere questo post dato che un utente della comunità di Informatica Italia su Google+ ha sollevato la questione. Innanzitutto è necessario fare un po' di chiarezza sull'argomento perché come al solito nel web è possibile trovare molte informazioni (tante delle quali vaghe o sbagliate)

Cos'è una "WordList"?

Esistono diverse tecniche per "cracckare" una password, ma una delle più comuni consiste nel testare una serie di password prestabilite attraverso l'utilizzo di un dizionario. Per prima cosa bisogna capire quali sono le diverse tecniche per il recupero di una password.

Attacco a dizionario

Un attacco a dizionario prevede l'utilizzo di un file di testo dove all'interno ogni riga corrisponde ad una password prestabilita. Un esempio può essere il seguente:

== test.txt ==
1 ciao
2 ciaociao
3 ciao1
4 ciao!
5 passwd
6 pa$$wd
7 .....

In questo modo il software proverà ad utilizzare ogni singola riga di questa lista di password. In genere questi files hanno un ordine ben preciso: dalla password più utilizzata a quella meno utilizzata. E' quindi possibile accorciare il tempo necessario per il recupero della password stessa.

Attacco di forza bruta o "brute force Attack"

In questo caso è possibile configurare il software in modo da settare il numero di lettere della password da testare, la presenza di simboli o numeri e la complessità. In questo caso sarà possibile trovare password senza alcun significato, ma pagando un piccolo prezzo... il tempo! Questa tecnica richiede molto più tempo e CPU.
Un esempio di brute force:
1 aaaa
2 aaab
3 aaac
4 aaad
5 aaae
6 aaaf
7 ....

Se però sapete esattamente che tipo di password state cercando allora vi consiglio di passare oltre! Questo tipo di attacco può impiegare molte settimane senza ottenere alcun risultato.

Attacco ibrido o "Hybrid Attack"

Questo tipo di attacco mescola le parole trovate nel dizionario assieme a simboli o numero. Molti utenti infatti utilizzano come password una parola e un numero, spesso la data di nascita!!!
Ecco un esempio di questo attacco:

1 antonio76
2 76antonio
3 antonio!
4 antonio#
5 #antonio
6 !anotinio
7 ....

Questo attacco richiede molto più tempo dell'attacco a dizionario, ma se siete sicuri dei numeri o simboli da mescolare, sicuramente ne trarrete beneficio!

Generare il proprio dizionario con crunch

Crunch è un software che permette la generazione di un file di testo contente una lista di password da testare. Questo programma è altamente personalizzabile e come sempre vi consiglio di leggere il manuale del comando in modo da non perdere tempo "provando" ad utilizzare il programma.

La sintassi è la seguente:

$ crunch <min> <max> <charset> -t <pattern> – o <filename.lst>

Dove:
min: è il minimo numero di caratteri per password
max: è il massimo numero di caratteri per password
charset: imposta i caratteri che volete utilizzare nelle vostre password come "abcd" o "1234"
pattern: definisce alcune posizioni fisse dei caratteri. Ad esempio se volete che le vostre password finiscano tutte con 77 dovrete usare il seguente pattern "********77".

Un esempio di utilizzo di crunch:

root@KaliLinux:~#crunch 10 10  abcd987 -t abc@@@@@@ -o /root/Desktop/file.txt

Questa istruzione genererà 823543 password!

Dove recuperare dei dizionari già esistenti?

Ci sono molti siti dove recuperare dei dizionari pronti, ma il problema è che spesso sono in inglese e magari a volte non sono molto aggiornati. Vi consiglio comunque di provarne l'efficacia, magari facendo un attacco ibrido! Di seguito elencherò una lista di siti che dove è possibile scaricare dei dizionari pronti all'uso!
Spero che questo breve articolo vi abbia illuminato in qualche modo!

ftp://ftp.openwall.com - Dizionari suddivisi per lingua
http://gdataonline.com/downloads/GDict/ - Dizionario inglese completo 03/2011
http://www.outpost9.com - Lista dizionari di vario tipo
https://packetstormsecurity.com - Lista dizionari storici

Ad ogni modo in internet facendo qualche piccola ricerca potrete trovare il dizionario che fa al caso vostro! Per qualsiasi commento o accusa sono a disposizione!

Commenti