Disco cifrato Linux: brute forcing con LUKS

Written by diariodiunit

9 Settembre 2023

LUKS è l’acronimo di Linux unified key setup ed è un robusto sistema di cifratura implementato in molte distribuzioni di Linux. Tramite LUKS è possibile cifrare intere partizioni tramite un set di password. In alcuni casi, ad esempio quando l’utente ha dimenticato la password oppure negli ambiti di indagine forense, può essere necessario accedere a partizioni cifrate con LUKS.

Gli approcci basati sull’inserimento di manuale risultano essere improponibili per la lentezza delle operazioni. Per questo motivo può essere utile creare uno script che legge un file di testo contenente le password e, sequenzialmente, prova a decifrare/sbloccare il volume

Verificare che il volume sia protetto con LUKS

La prima cosa da fare è quella di accertarsi che il volume sia effettivamente protetto da LUKS. Per fare questo basta utilizzare il semplice comando.

sudo cryptsetup isLuks /dev/sd2 -v

Qualora il volume, in questo caso /dev/sd2/ fosse cifrato con LUKS il sistema risponde con “comando eseguito con successo”

Creare un file di password

Il file di password, che per convenzione chiameremo password.txt, conterrà per ciascuna linea l’elenco di password potenziali per sbloccare il volume. Ciò non toglie che possono essere utilizzati elenchi già esistenti che contengono le combinazioni più comuni di password.

Anche in questo caso basta creare da shell il file password.txt.

nano password.txt

Creazione dello script

Adesso è ora di creare un semplice script, chiamato bruteforce.sh, che conterrà le istruzioni utili per leggere ogni linea del file e utilizzarla come password di sblocco del volume. Appena lo script rileva la password corretta si blocca restituendo un avviso.

touch bruteforce.sh
chmod +xbruteforce.sh
nano bruteforce.sh

A questo punto, dall’editor nano, basta incollare questo breve script. In caso di tentativo di sblocco di un volume diverso da /dev/sd2 basta sostituire il riferimento con la posizione desiderata (ad esempio /dev/sda, /dev/hd1, /dev/hd2, …)

set -x
while read password; 
do
	printf $password | sudo cryptsetup luksOpen --test-passphrase /dev/sdb $@ && echo Trovata && break;
done < password.txt

Articoli correlati

DHCP e indirizzi di rete

DHCP e indirizzi di rete

Tramite il protocollo DHCP è possibile assegnare in modo coerente gli indirizzi IP all’interno di una rete.

Plesk – Script per backup automatico siti e database

Plesk – Script per backup automatico siti e database

In sintesiScript per la creazione di un sistema di backup automatico dei siti ospitati su Linux/Plesk, comprensivo di backup del database. I vecchi backup sono cancellati in automatico. Il sistema integrato di backup, presente nelle recenti versioni di Plesk, si...