Crack, giunto attualmente alla versione 5.0a, è un software di password cracking sviluppato originariamente per UNIX da Alec D.E. Muffet, utilizzabile dopo opportune configurazioni anche in ambiente Linux
Analogamente a John The Ripper, Crack permette di indiviudare le password più facilmente violabili su un sistema. Questo software può utilizzare sia le librerie dell'algoritmo di crittografia DES sia quelle dell'MD5.
RECUPERO SORGENTI, CONFIGURAZIONE ED INSTALLAZIONE
E' possibile scaricare Crack liberamente dal server FTP indicato sul sito dell'autore:
[root@Enigma homer]# wget ftp.cerias.purdue.edu/pub/tools/unix/pwdutils/crack/crack5.0.tar.gz
--19:43:46-- http://ftp.cerias.purdue.edu/pub/tools/unix/pwdutils/crack/crack5.0.tar.gz
=> `crack5.0.tar.gz'
Resolving ftp.cerias.purdue.edu... fatto.
Connecting to ftp.cerias.purdue.edu[128.10.252.10]:80... connected.
HTTP richiesta inviata, aspetto la risposta... 200 OK
Lunghezza: 2,964,507 [application/x-tar]
100%[================================================================================>]2,964,507 4.39K/s ETA 00:00
19:54:47 (4.39 KB/s) - `crack5.0.tar.gz' salvato [2964507/2964507]
Successivamente dovranno essere scompattati i sorgenti:
[homer@Enigma homer]# tar xzvf crack5.0.tar.gz
Viene creata la directory c50A e le relative sottodirectory
c50a/
c50a/conf/
c50a/conf/dictrun.conf
c50a/conf/rules.weird
c50a/conf/rules.suffix
...
c50a/extra/Crack7
c50a/extra/b64encode
...
c50a/manual.html
c50a/manual.txt
[root@Enigma homer]#
E' ora necessario spostarsi all'interno della directory appena creata:
[homer@Enigma homer]# cd c50a
[root@Enigma c50a]# ls
conf Crack dict doc extra LICENCE Makefile manual.html manual.txt Reporter scripts src
I file e le directory creati dopo la scompattazione, tra i quali un manuale sia in formato testo che in html
Se il proprio sistema utilizza MD5 come in questo caso (Red Hat 7.3) è necessario eseguire alcune operazioni sui sorgenti come spiegato in manual.html:
[root@Enigma c50a]# mv src/libdes src/libdes,orig
[root@Enigma c50a]# cd src/util
[root@Enigma util]# cp -f elcid.c,bsd elcid.c
[root@Enigma util]# cd ../..
E' necessario inoltre modificare alcune linee in Crack in quanto si utilizza gcc e non cc sotto UNIX. Le direttive di compilazione devono apparire come segue:
# vanilla unix cc
#CC=cc
#CFLAGS="-g -O $C5FLAGS"
#LIBS=-lcrypt # uncomment only if necessary to use stdlib crypt(), eg: NetBSD MD5
# gcc 2.7.2
CC=gcc
CFLAGS="-g -O2 -Wall $C5FLAGS"
LIBS=-lcrypt # uncomment only if necessary to use stdlib crypt(), eg: NetBSD MD5
Una volta configurati i file è possibile lanciare la compilazione dei sorgenti:
[homer@Enigma c50a]# ./Crack -makeonly
Crack 5.0a: The Password Cracker.
..
all made in util
make[1]: Leaving directory `/home/homer/c50a/src/util'
Crack: makeonly done
Si passa quindi alla creazione dei dizionari:
[homer@Enigma c50a]# ./Crack -makedict
Crack 5.0a: The Password Cracker.
(c) Alec Muffett, 1991, 1992, 1993, 1994, 1995, 1996
..
Crack: Created new dictionaries...
Crack: makedict done
E' quindi necessario creare il file da dare in pasto a Crack. Se si utilizzano le shadow password è necessario fare un merge del file con i nomi degli utenti /etc/passwd
con quello contenente le password in forma crittografata /etc/shadow
.
[root@Enigma c50a]# cp /etc/passwd passwd.txt
Copia del file con il nome degli utenti nella directory locale
[root@Enigma c50a]# ./scripts/shadmrg.sv > passwd.txt
Tramite un'utilty a corredo di Crack, shadmrg.sv, è possibile generare un file "violabile"
UTILIZZO
A questo punto è possibile eseguire Crack. La sua sintassi è Crack [opzioni] [-fmt formato] [file...]
[root@Enigma c50a]# ./Crack passwd.txt
Crack 5.0a: The Password Cracker.
(c) Alec Muffett, 1991, 1992, 1993, 1994, 1995, 1996
..
Crack: launching: cracker -kill run/KEnigma.2354
Done
[root@Enigma c50a]#
Una volta lanciata l'esecuzione di Crack, si ritorna al prompt di sistema perchè il software lavora in background. E' possibile tenere sotto controllo il lavoro del programma visualizzando un file utilzzato dallo stesso nella sottodirectory run di nome Knomehost.N, in questo caso KEnigma.2354. Utilizzando TOP è possibile notare che il programma assorbe valori intorno al 98% di CPU
VISUALIZZARE I RISULTATI
L'utility Reporter ci permette di visualizzare le password deboli scovate:
[root@Enigma c50a]# ./Reporter
---- passwords cracked as of sab apr 12 22:17:15 CEST 2003 ----
Guessed root [alabama] root [passwd.txt /bin/bash]
Una password decismente semplice come alabama sul sistema di prova (Pentium III 600 Mhz 126Mb Ram) è stata trovata in pochi minuti
FERMARE LA SESSIONE
Per fermare il il programma in modo pulito è possibile usare uno script sempre a corredo del software:
[root@Enigma c50a]# ./scripts/plaster
RECUPERARE LA SESSIONE IN CASO DI CRASH
In caso il processo dovesse interrompersi per un crash di sistema è possibile riprenderne l'esecuzione creando il file temporaneo da cui ripartire tramite con mv /run/Dnomehost.N /run/nome-file-temporaneo
e poi utilizzare Crack -recover -fmt spf run/nome-file-temporaneo
[root@Enigma run]# mv DEnigma.21087 sessione-interrotta
[root@Enigma c50a]# ./Crack -recover -fmt spf run/sessione-interrotta
Crack 5.0a: The Password Cracker.
(c) Alec Muffett, 1991, 1992, 1993, 1994, 1995, 1996
System: Linux Enigma 2.4.18-3 #1 Thu Apr 18 07:37:53 EDT 2002 i686 unknown
Home: /home/homer/c50a
Invoked: ./Crack -recover -fmt spf run/sessione-interrotta
Option: -recover enabled
Stamp: linux-2-unknown
...
[root@Enigma c50a]#
CRACKING DISTRIBUITO
Il processo di cracking può essere distribuito su più macchine utilizzando il file di configurazione conf/network.conf
. Per utilizzare questa modalità è necessario che Perl sia installato sulla macchina master. Una volta settato il file di configurazione è possibile lanciare l'esecuzione con:
[root@Enigma c50a]# ./Crack -network [opzioni] nomefile
Per la completa lista delle opzioni sia di crack che delle utility è possibile consultare il file manual.html.