J'ai un ancien fichier Truecrypt que j'aimerais déchiffrer. Je connais le mot de passe de 18 caractères que j'utilisais à l'époque, j'en suis sûr. Cependant, j'ai fait une "variation" de celui-ci: j'ai cartographié des personnages à L33T équivalent (je sais, je sais ... J'étais jeune!).
Je voulais utiliser Hashcat pour le déchiffrer, mais je suis confus sur la façon de partir du mot de passe et générer des variations.
En particulier, comment essayez-moi de tenter des variations L33T pour un seul caractère dans le mot de passe? Par exemple, U est | _ | Donc, 1 caractère est mappé à 3 caractères.
J'ai lu sur les masques et aussi, mais c'est un peu déroutant pour moi. Où devrais-je commencer?
Merci !
Il n'existe actuellement aucun moyen natif de traitement de la liste des règles qui effectuent à la fois des substitutions individuelles à une seule et à plusieurs personnages pour attaquer Truecrypt à des vitesses efficaces. Parce que Truecrypt est un hachage assez lent, vous risquez peut-être mieux d'effectuer les substitutions à l'aide d'un programme externe, puis de la tuyer les résultats à HASHCAT. (En d'autres termes, les frais généraux de générer des mots de passe candidats vous-même ne changeront pas le processus de craquage.)
Vos autres options utilisant HASHCAT sont les suivantes suivantes. Ils ont tous des compromis.
À Remplacez les caractères uniques avec d'autres caractères uniques, vous pouvez utiliser le système de règles intégré de HASHCAT - soit en faisant votre PROPRES RÈGLES, ou en utilisant l'un des règles "LELESPEAK" dans le répertoire "Règles /" distribuée avec HASHCAT. Pour fabriquer des règles personnalisées, vous pouvez étudier le Système de règles et ces règles de réception pour obtenir l'idée.
L'attaque ressemblerait à quelque chose comme:
hashcat -a 0 -m [62xx] -r rules/leetspeak.rule target.hashfile
Remplacement d'un seul caractère avec plusieurs caractères - Votre 'U' -> '| _ |' cas - est un peu plus délicieux.
À des fins générales, il existe des options:
Mappage des caractères moniques à plusieurs caractères est pris en charge dans ce que l'on appelle maintenant Hashcat-héritage (CPU uniquement), à l'aide de ce qu'on appelle A attaque de table!)] ==!)] ==!)] ==!)] ==!)] = =. Cependant, Hashcat-héritage ne supporte pas les hachages TrueCrypt, de sorte que cela ne fonctionnera pas pour vous.
Une attaque similaire est possible dans Hashcat moderne à l'aide des paramètres -J and -K et des éléments appelés Paramètres de position dans le système de règles. Fondamentalement, vous dites à Hashcat de "se souvenir" de la position qu'il a trouvé un caractère, enlevant le caractère à cette position, puis insérez les caractères que vous souhaitez.
La deuxième approche est un cas particulier de substitution sélective du caractère, comme documenté sur le wiki Hashcat . Voici la partie pertinente de cette documentation, avec l'approche multi-caractères mentionnée en dernier:
Si vous souhaitez uniquement utiliser la première instance d'un personnage, vous pouvez utiliser% 1s, ou simplement utiliser '/' :
$ echo -n 'Odessa77' | hashcat --stdout -j '%1s Dp ip$'
Ode$sa77
$ echo -n 'Odessa77' | hashcat --stdout -j '/s Dp ip$'
Ode$sa77
Si vous souhaitez uniquement fonctionner sur la deuxième instance:
$ echo -n 'Odessa77' | hashcat --stdout -j '%2s Dp ip$'
Odes$a77
... etc. Contrairement à la règle de la 'S', qui remplace toutes les instances d'un caractère, cela permet de sélectionner l'instance d'un caractère à remplacer.
Vous pouvez également utiliser cette fonctionnalité pour remplacer un caractère avec plusieurs caractères :
$ echo -n 'p@ssW0rd' | hashcat --stdout -j '%1W DpM ip/ ip\ ip/ ip\'
p@ss\/\/0rd
Notez que l'insertion est un caractère à la fois par rapport à la position mémorisée, les caractères étant insérés sont répertoriés dans l'ordre inverse Dans la commande.
Voici un exemple plus proche de votre cas d'utilisation:
$ echo TrueCrypt | hashcat --stdout -j '%1u ip| ip_ ip|'
Tr|_|ueCrypt
L'inconvénient majeur de cette approche est que les paramètres de position ne fonctionnent qu'avec -j
et -k
, et donc ne peut être utilisé qu'à un moment (pour une substitution unique, ne faisant pas partie d'une grande liste de substitutions que vous voudrez probablement).
Donc, c'est la longue histoire de savoir pourquoi rouler votre propre méthode de substitution du personnage - avec, dire, python, perl ou même sed - serait la solution la plus flexible (et parce que Truecrypt est un cash "lent", générant les cordes à Les vitesses super-hautes ne sont pas nécessaires).