volume truecrypt - Recupera la password conosciuta di 18char con hashcat (variazioni di caratteri)

2

Ho un vecchio file TrueCrypt che vorrei decifrare. Conosco la password di 18 caratteri che stavo usando in quel momento, ne sono sicuro. Comunque ne ho fatto una "variazione": ho mappato alcuni personaggi con l33t equivalente (lo so, lo so ... ero giovane!).

Volevo usare hashcat per decodificarlo, ma sono confuso su come iniziare dalla password e generare variazioni.

In particolare, come faccio a provare le variazioni l33t per un singolo carattere nella password? Ad esempio, U è | _ | quindi 1 carattere è mappato a 3 caratteri.

Ho letto di maschere e simili ma è un po 'confuso per me. Dove dovrei iniziare?

Grazie!

    
posta Pak 11.01.2018 - 11:32
fonte

1 risposta

2

Attualmente non esiste un modo nativo hashcat per elaborare un elenco di regole che eseguono sostituzioni di caratteri uno-a-uno e uno-multiplo per attaccare TrueCrypt a velocità efficiente. Poiché TrueCrypt è un hash piuttosto lento, è meglio eseguire le sostituzioni utilizzando un programma esterno e quindi eseguire il piping dei risultati su hashcat. (In altre parole, il sovraccarico di generazione delle password dei candidati non ostacolerà il processo di cracking.)

Le altre opzioni che utilizzano hashcat direttamente sono le seguenti. Hanno tutti dei compromessi.

Per sostituire i singoli caratteri con altri singoli caratteri , puoi utilizzare il sistema di regole integrato di hashcat, sia creando le tue regole, sia utilizzando uno dei "leetpeak" "set di regole nella directory" rules / "che è distribuita con hashcat. Per creare alcune regole personalizzate, puoi studiare il sistema di regole e questi set di regole per ottenere l'idea.

L'attacco sarebbe simile a:

hashcat -a 0 -m [62xx] -r rules/leetspeak.rule target.hashfile

Sostituzione di un singolo personaggio con più caratteri - la tua "U" - > '| _ |' caso: è un po 'più complicato.

Per scopi generali, ci sono opzioni:

  1. Il mapping di singoli caratteri a più caratteri è supportato in quello che ora viene chiamato hashcat-legacy (solo CPU) , utilizzando quello che viene chiamato un attacco alla tabella . Tuttavia, hashcat-legacy non supporta gli hash TrueCrypt, quindi non funzionerà per te.

  2. Un attacco simile è possibile nel moderno hashcat usando i parametri -j e -k e quelli che sono chiamati parametri posizionali nel sistema di regole. Fondamentalmente, stai dicendo a hashcat di "ricordare" la posizione in cui ha trovato un personaggio, rimuovendo il personaggio in quella posizione, e quindi inserendo i caratteri che desideri.

Il secondo approccio è un caso speciale di sostituzione selettiva di caratteri, come documentato sul wiki di hashcat . Ecco la parte rilevante di tale documentazione, con l'approccio multi-carattere menzionato per ultimo:

Se vuoi operare solo sulla prima istanza di un personaggio, puoi usare% 1s, o semplicemente usare '/':

$ echo -n 'Odessa77' | hashcat --stdout -j '%1s Dp ip$'
Ode$sa77
$ echo -n 'Odessa77' | hashcat --stdout -j '/s Dp ip$'
Ode$sa77

Se vuoi operare solo sulla seconda istanza:

$ echo -n 'Odessa77' | hashcat --stdout -j '%2s Dp ip$'
Odes$a77

... ecc. A differenza della regola "s", che sostituisce tutte le istanze di un carattere, ciò consente di selezionare l'istanza di un carattere da sostituire.

Puoi utilizzare questa funzionalità anche per sostituire un personaggio con più caratteri:

$ echo -n 'p@ssW0rd' | hashcat --stdout -j '%1W DpM ip/ ip\ ip/ ip\'
p@ss\/\/0rd

Si noti che l'inserimento è un carattere alla volta rispetto alla posizione memorizzata, quindi i caratteri inseriti sono elencati nell'ordine inverso nel comando.

Ecco un esempio più vicino al tuo caso d'uso:

$ echo TrueCrypt | hashcat --stdout -j '%1u ip| ip_ ip|'
Tr|_|ueCrypt

Il principale svantaggio di questo approccio è che i parametri posizionali funzionano solo con -j e -k , e quindi possono essere usati solo uno alla volta (per una sostituzione singola, non fa parte di un ampio elenco di sostituzioni quando probabilmente vorranno).

Quindi questa è la lunga storia del perché rotolare il proprio metodo di sostituzione dei caratteri - con, diciamo, Python, perl, o anche sed - sarebbe la soluzione più flessibile (e perché TrueCrypt è un hash così "lento", che genera le stringhe a velocità super alte non sono necessarie).

    
risposta data 11.01.2018 - 16:11
fonte