Capita di ritrovarsi con delle pendrive crittografate su sistemi Windows e avere la necessità di accedervi dal proprio sistema GNU/Linux. A volte non si ricorda nemmeno la password e in questo caso quei dati sono probabilmente persi per sempre: senza password non è possibile decrittarli. Questo, però, a condizione che la password sia robusta, almeno 8-10 caratteri. Se la password è più breve diventa effettivamente possibile scoprirla con il brute force , ovvero provando tutte le combinazioni fino a trovare quella giusta. I sistemi Windows usano un sistema di crittografia chiamato Bitlocker , che si basa proprio sull’uso di una password: si può quindi tentare di decifrare i file usando proprio il brute force. Ma è possibile accedere alle partizioni Bitlocker da un sistema GNU/Linux? Si, certo, usando il programma Dislocker , che permette il montaggio di una partizione Bitlocker (a condizione di conoscerne la password).
Prima di tutto è necessario procurarsi Dislocker, che viene fornito sotto forma di codice sorgente per diversi sistemi operativi. Per scaricarlo basta dare nel Terminale il comando:
wget http://www.hsc.fr/ressources/outils/dislocker/download/dislocker-0.7.1.tar.gz
L’archivio va poi estratto:
tar -xvf dislocker-0.7.1.tar.gz
Questo crea una serie di cartelle. Occorre poi entrare nella cartella principale con il comando cd dislocker-0.7.1
. Dando il comando ls vedremo la presenza di un file di CMake.
Si devono quindi installare le varie dipendenze necessarie per la compilazione: su un sistema di tipo Debian, il comando da eseguire è:
sudo aptitude install gcc cmake make libfuse-dev libmbedtls-dev ruby-dev
Si può ora verificare che tutto il necessario per la compilazione sia presente sul proprio computer dando il semplice comando:
cmake.
Se il comando termina con la riga Build files have been written allora tutto va bene.
Con cmake si è verificato che le librerie di base siano installate. La compilazione vera e propria del programma Dislocker si può iniziare con il comando make
. Questo richiederà qualche minuto, ma non dovrebbe causare errori.
Per poter lavorare comodamente, Dislocker va poi installato sul sistema usando il comando
sudo make install
Questo permetterà l’esecuzione del programma dando semplicemente il comando dislocker
su qualsiasi terminale.
Si può verificare la corretta installazione di Dislocker dando il comando dislocker -help
, che presenta le opzioni del programma. Come si può intuire, Dislocker offre diverse opzioni per decifrare un disco, come la password o la clearkey.
Per fare una prova pratica, la prima cosa da fare è dare il comando
sudo fdisk -l
in modo da identificare la partizione che vogliamo decifrare. Ovviamente, sarà una partizione di tipo NTFS/HPFS.
Si può provare a decrittare una partizione dando il comando
dislocker -v -V /dev/sdb1 -ulamiapassword -- /mnt/tmp
Ovviamente, /dev/sdb1 è la partizione, mentre /mnt/tmp è il punto di montaggio (al cui interno si trova un file che a sua volta va montato).
Si può, per esempio, dare il comando
mount -o loop,ro /mnt/tmp/dislocker-file /mnt/dis
ottenendo i file decifrati. Se non si conosce la password, basta usare eseguire un brute force.
Per farlo bisogna prima di tutto costruirsi un dizionario, cioè un file con tutte le parole che si vogliono provare come password. Questo si può fare con molti programmi, ma esistono dizionari già pronti da scaricare. Il programma forse più semplice è BF-Words , scaricabile da questo link . Per esempio, per produrre un dizionario di parole fino a 5 caratteri si da il comando:
./bf-words 1 5 > temp.txt
Poi è sufficiente realizzare un piccolo script bash che legge le varie parole e prova ad usarle per montare la partizione:
while read -r line
do
password="$line"
dislocker -v -V /dev/sdb1 -u$password -- /mnt/tmp
if [ -f /mnt/tmp/dislocker-file ]; then
break
fi
done < "temp.txt"