Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Creare una wordlist per un attacco a dizionario

Impariamo a creare una wordlist originale da sfruttare per attacchi a dizionario.
Impariamo a creare una wordlist originale da sfruttare per attacchi a dizionario.
Link copiato negli appunti

Un attacco a dizionario, a differenza di un attacco a forza bruta consente di provare a decifrare un codice o una determinata password cercando tra un numero finito di stringhe di solito già generate, come ad esempio parole comuni. La serie continua con cui cercheremo di individuare la password di siti web, server ftp, ssh o altri servizi sarà molto più ristretta rispetto ad un attacco brute force.

L'attacco dizionario diminuisce notevolmente il tempo e la complessità per portare a termine l’attacco, ma con esso diminuisce la probabilità di decifrare la password. In contrasto con un attacco brute force, dove tutte le possibili password sono ricercate in maniera esaustiva, un attacco a dizionario prova solamente quelle ritenute più probabili, tipicamente contenute in una lista da noi creata con parole chiave come la data di nascita della vittima e la sua lingua madre.

La maggior parte delle persone ha la tendenza a scegliere password semplici da ricordare (e quindi semplici da scoprire, ad esempio il proprio nome, quello dei propri figli, date di nascita) e tendenzialmente sceglie parole prese dalla propria lingua nativa. Esistono diversi tool per creare dizionari efficaci per attacchi di questo tipo.
Oltre a questi tools, esistono anche dizionari già “ottimizzati” per questo tipo di attacco. Uno fra i tool più utilizzati per generare buoni dizionari è Crunch, disponibile in tutte le distro Linux per il penetration test più famose, come BackBox o Kali linux e con diverse opzioni per personalizzare il nostro dizionario.

La sintassi di questo tool è molto semplice:

crunch [minlength] [maxlength] [charset] OPZIONI -o fileoutput

Crunch genera dizionari partendo da un charset di caratteri che li viene fornito in input. Da questo charset/lista in input, genera tutte le possibili combinazioni o permutazioni comprese tra la lunghezza minima e quella massima. Il risultato di Crunch andrà a finire in un file output specificato attraverso il parametro -o. Un esempio reale, può essere il sottostante:

crunch 1 4 12345 -o dizionario.txt

Crunch worlist

In questo primo esempio aviamo mostrato come crunch può generare tutte le combinazioni con stringhe o numeri/simboli passategli in input.

Crunch permette anche di generare permutazioni. Ad esempio, se volessimo generare una password partendo dalla data di nascita e il nome di una persona, dovremmo scrivere questo comando:

crunch 1 1 -o dizionario.txt -p NOME DATA_NASCITA

In questo caso le password generate saranno solamente 2:

  • NOMEDATA_NASCITA
  • DATA_NASCITANOME

Se invece volessimo generare un dizionario che contiene anche dei simboli o delle altre parole tra quelle passategli in input, possiamo seguire il mio comando di esempio:

crunch 13 13 123456789 -o dizionario.txt -t ALESSIO@1993@

Così facendo, al posto della chiocciola saranno inseriti i simboli o numeri o lettere date in input a crunch nel nostro charset.

Crunch è molto utile soprattuto per generare dizionari con tutte le possibili combinazioni di un charset specifico in input. L'attacco a dizionario è meno complesso e di solito il più veloce ma per ottenere un risultato soddisfacente dobbiamo possedere dei dizionari completi i quali pesano anche diversi Gigabyte. Su torrent si trovano diversi dizionari, utilizzati da molti per recuperare password deboli e con parole comuni.

Senza però ricorrere al download di questi ultimi, anche Ubuntu ci mette a disposizione dei dizionari, in diverse lingue, con le parole più comuni. Un esempio di alcuni dizionari disponibili su Ubuntu e installabili sono i seguenti "wamerican American English dictionary words for /usr/share/dict", "wamerican-huge American English dictionary words for /usr/share/dict"
"wamerican-insane American English dictionary words for /usr/share/dict" etc.

Per installare uno di questi dizionari su ubuntu o comunque una distro debian like come backbox, basta digitare il seguente comando:

sudo apt-get install -y NOME_DIZIONARIO

Al posto della dicitura “NOME_DIZIONARIO” andrà inserito il nome del pacchetto dizionario che vogliamo installare. Ad esempio:

sudo apt-get install -y witalian

I dizionari una volta installati saranno disponibili nella seguente directory:

/usr/share/dic

Per visualizzare i dizionari già installati nel nostro sistema, digitiamo:

ls -l /usr/share/dict

Esempio nella immagine:

wordlist con Crunch

Oltre ai dizionari che possiamo generarci con Crunch e a quelli con le parole più comuni forniti da Ubuntu, voglio mostrarvi anche un altro tipo di dizionari, specifici per il password cracking e resi disponibili da Metasploit.

Metasploit ci fornisce dei dizionari in cui sono contenute le parole più utilizzate come password, le password di default divise per servizi e sistemi e alcuni dizionari generici. In Backbox, la directory per consultare questa lista di dizionari è la seguente:

/opt/backbox/msf/data/wordlist

Questi dizionari sono in formato testo e vengono utilizzati dagli strumenti per il brute force disponibili in Metasploit, come login cracker.

Infine avendo un dizionario con le parole comuni di Ubuntu, un dizionario con le password più usate e utilizzate da vari sistemi e servizi di default con in aggiunta un dizionario specifico creato con Crunch potremo aumentare le possibilità di recuperare una password persa.

Ti consigliamo anche