Come avrete capito siamo in tema di Sicurezza Informatica, e vogliamo presentarvi il noto programma: John The Ripper. Ma non solo, abbiamo anche pensato di darvi la guida definitiva per usarlo al meglio. Se siete interessati continuate dunque a leggere!
John The Ripper (che da ora abbrevieremo a JTR) e uno stupendo tool per Linux che serve per il cracking delle password. Tramite JTR è anche possibile oltre al classico bruteforce, implementare attacchi a “forza bruta esaustivi”, non utilizzando il classico dizionario ma scandagliando in tutti i modi possibili un set di caratteri di input. Vediamo quindi come installarlo su Ubuntu.
Né l’ autore né OpenGeek si assumono la responsabilità di eventuali danni e malfunzionamenti al vostro PC. Non instighiamo a delinquere, questo articolo ha uno scopo puramente didattico e formativo.
Premessa
JTR e stato testato e funzionante su più computer, tuttavia qui si fa riferimento a Ubuntu 10.10.
Installazione e test
- Aprite il terminale e date: sudo apt-get update && sudo apt-get install john
- Attendete e alla fine date: sudo apt-get update
- Ora provate a creare una passwordlist: sudo unshadow /etc/passwd /etc/shadow > passwdlist
- Per testare che sia stato installato correttamente digitiamo: john -test
- Per lanciare john basta dare: ./john –single passwdlist
- Fine
Ma non finisce quì. Andiamo a vedere meglio cosa si può fare con un rapido elenco delle opzioni disponibili.
Advanced
john [OPTIONS] [PASSWORD-FILES]
-single
-wordfile:FILE
-rules
-incremental[:MODE]
-external:MODE
-stdout[:LENGTH]
-restore[:FILE]
-session:FILE
-status[:FILE]
-make-charset:FILE
-show
-test
-users:[-]LOGIN|UID[,..]
-groups:[-]GID[,..]
-salts:[-]COUNT
-format:NAME (DES/BSDI/MD5/BF/AFS/LM)
-savemem:LEVEL
- single: E’ consigliata solo per le password che possono essere definite “deboli” in quanto comprende solo poche regole e il dizionario di default è formato con poche parole
john -single pass.txt (pass.txt è il file dove sono memorizzate le password da craccare) - wordfile:FILE: Opzione che utilizza un dizionario personalizzato al posto di quello di default. Prova con ogni parola della lista finché non trova una corrispondenza o raggiunge la fine della lista. Non troppo efficace…
john -wordfile:password.lst pass.txt - rules: Grazie a questo comando potete definire le regole per l’utilizzo delle liste delle parole. Le opzioni sono tante… Troppe… Se volete utilizzare questo comando controllate qui di seguito:http://www.openwall.com/john/doc/RULES.shtml.
- incremental[:MODE]: Il comando consente di eseguire un attacco bruteforce, con delle particolari regole, che sono le seguenti:
john -incremental:alpha pass.txt (solo lettere)
john -incremental:digits pass.txt (solo numeri)
john -incremental:lanman pass.txt (lettere, numeri,e alcuni caratteri speciali)
john -incremental:all pass.txt (tutti i caratteri) - external:MODE: Può essere usato per definire delle modalità esterne per il cracking, usando funzioni scritte in C.
john -external:[MODE] pass.txt - stdout[:LENGTH]: Serve solo a scrivere in un file o verso l’input di un altro programma.
john -incremental:alpha -stdout (stampa tutte le combinazioni di lettere a video) - restore[:FILE]: Durante il cracking con JTR se premete la combinazione “ctrl + c” prima di uscire dal programma verrà creato in automatico un file chiamato “restore”, successivamente potrete riprendere da quel punto utilizzando questa opzione (una sorta di chek point)
john -restore:restore - session:FILE: Cambia il nome del file per il restore.
john -session:[nomefile] pass.txt - status[:FILE]: Mostra l’ avanzamento del file restore.
john -status:[nomefile] - show: Mostra quante password sono state crackate e quante no.
john -show pass.txt - make-charset:FILE: Viene usato per definire un alternativo set di caratteri personalizzati per il cracking, questo file verrà utilizzato con la modalità incrementale (-incremental[:MODE])
john -make-charset:custom.chr pass.txt - users:[-]LOGIN|UID[,..]: Cracca le password solo per l’utente indicato.
john -users:User pass.txt - groups:[-]GID[,..]: Cracca le password solo per il gruppo indicato.
john -group:gruppo pass.txt - format:NAME (DES/BSDI/MD5/BF/AFS/LM): JTR può rompere diversi tipi di cifratura, è possibile indicarli con questa opzione tramite:
john -format:DES pass.txt
john -format:BSDI pass.txt
john -format:MD5 pass.txt
john -format:BF pass.txt
john -format:AFS pass.txt
john -format:LM pass.txt - savemem:LEVEL: Usato per salvare il processo in corso.
john -savemem:1 pass.txt (salvato 1 livello)
john -savemem:2 pass.txt (salvato 2 livello)
Quindi ora sapete anche quali sono i comandi con le relative spiegazioni. Non vi resta che sbizzarrirvi, ma prima un’ ultima chicca… Vediamo come creare un dizionario personalizzato con JTR (utilizzabile anche con altri programmi).
Creazione dizionario personale
Poniamo che la password da rompere sia esattamente di 5 caratteri:
Apriamo con un editor di testo qualunque il file: john.conf e moddiamolo cosi:
[Incremental:custom_1]
File = $JOHN/alnum.chr
MinLen = 5
MaxLen = 5
CharCount = 36
In particolare:
File = $JOHN/alnum.chr: Dice a john di utilizzare solo caratteri alfanumerici.
MinLen = 5: Dice a john che la minima lunghezza della parola è 5 caratteri
MaxLen = 5: Dice a john che la massima lunghezza della parola è 5 caratteri.
CharCount = 36: E’ il conteggio dei caratteri disponibili nel file “alnum.chr”.
Supponiamo anche di sapere che i numeri nella password sono da 0 a 9 e che sono presenti lettere dalla a alla f.
Nel file alnum.chr sono presenti anche altre lettere oltre che a,b,c,d,e,f, quindi bisognerà scrivere un filtro da utilizzare con il parametro -external. Per scrivere i filtri di JTR si deve utilizzare un sottoinsieme del linguaggio C:
- Come cicli è ammesso solo il ciclo “while”.
- Solo i tipi int e void sono ammessi.
- Non sono ammessi puntatori.
- Le strutture non sono supportate.
- Gli array possono avere una sola dimensione.
Come parametro di input al nostro nuovo filtro riceveremo da JTR l’array “word” a cui è possibile accedere, per filtrare le lettere che non ci interessano. Il filtro è questo:
[List.External:Filter_custom_1]
void filter()
{
int i, c;
i = 0;
while (c = word[i++])
if ((c < ‘a’ || c > ‘f’) && (c < ’0′ || c > ’9′)) {
word = 0; return;
}
}
Non serve sapere necessariamente programmare in C per capire come modificarlo a nostro piacere. Salvate e uscite. Ora lanciate JTR con il seguente comando (da terminale): ./john -incremental:custom_1 -external:Filter_custom_1 -stdout > mydiz.txt
Il file mydiz.txt conterrà tutte le parole contenenti solo i caratteri e i numeri scelti.
Questo e tutto. Ora siete pronti per sbizzarrirvi. Ricordatevi che e solo per testare la vostra password!
Fonte: http://www.opengeek.it
Nessun commento:
Posta un commento