web-dev-qa-db-fra.com

Comment générer un dictionnaire pour une attaque par dictionnaire?

J'ai besoin de déchiffrer mon propre mot de passe. L'avantage est que je connais les caractères possibles et la longueur maximale.

Ce dont j'ai besoin, c'est de créer un dictionnaire. Le dictionnaire doit contenir tous les combos de caractères que je choisis (par exemple, je n'ai pas besoin d'une liste de mots contenant le caractère T, car je n'ai pas utilisé T dans mon mot de passe).

Comment puis je faire ça?

21
RhymeGuy

Vous pouvez donc utiliser python pour générer toutes les combinaisons possibles en utilisant itertools.permutation

import itertools
res = itertools.permutations('abc',3) # 3 is the length of your result.
for i in res: 
   print ''.join(i)

'abc' est une chaîne de caractères possibles. Notez que a et A ne sont pas identiques!

Cela produira:

abc
acb
bac
bca
cab
cba

Modifier (merci à @buherator):

Si vous voulez des lettres répétées (par exemple aaa, etc.), vous devez utiliser itertools.product au lieu. Par exemple,

import itertools
res = itertools.product('abc', repeat=3) # 3 is the length of your result.
for i in res: 
    print ''.join(i)

Cela produira:

aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc
18
Lucas Kauffman

Les outils de piratage de mot de passe, tels que John the Ripper ou hashcat, peuvent être utilisés de cette façon. Ils ont diverses règles de "manipulation" qui prendront un dictionnaire (dans votre cas, un dictionnaire à un mot), puis lui appliqueront un certain nombre de transformations. Vous pouvez ensuite spécifier les règles en fonction du genre de choses que vous avez pu faire avec votre mot de passe.

Apprendre à spécifier ces types de règles n'est pas anodin et, malheureusement, vous n'êtes pas en mesure de demander une aide détaillée sans trop révéler le mot de passe.

Voici quelques exemples de CONFIG de John, annotés, qui pourraient vous être utiles:

https://sites.google.com/site/reusablesec/Home/john-the-ripper-files/john-the-ripper-sample-configs-1

Et voici une liste de didacticiels John, mais je n'en ai pas examiné moi-même, donc encore une fois, je ne peux que vous orienter dans la direction générale:

http://openwall.info/wiki/john/tutorials

13
Jeffrey Goldberg

Vous devez utiliser crunch ou john the ripper. Si vous connaissez la longueur et les combinaisons possibles de votre mot de passe, vous pouvez faire un assez bon dictionnaire. Par exemple, vous savez que votre mot de passe était quelque chose comme

p @ $$ w0rd123

ou peut-être

P @ s $ Word1 @ 3

etc. vous pouvez faire

crunch 8 11 pPa@s$wW0oOrd123 -o list.txt

Cela fera une liste avec une longueur minimale de 8 max 11 contenant l'un des caractères donnés. Notez que cela pourrait être une énorme liste.

5
KDEx

Vous devez utiliser une liste de mots pour créer une attaque par dictionnaire. Vous pouvez écrire votre propre générateur de liste de mots ou utiliser un générateur existant.

Voici quelques générateurs de listes de mots existants:

Vous pouvez en trouver plus. Après avoir généré une liste de mots, vous devez essayer chaque combinaison de ces mots jusqu'à ce que vous trouviez celle qui correspond à votre mot de passe.

4

Vous aurez également besoin d'un outil pour parcourir le dictionnaire.

Pour un site Web, essayez:

ou généralement:

S'il s'agit d'une application de bureau utilisant le mot de passe pour le comportement au lieu de la confidentialité des données, vous pourrez peut-être simplement supprimer les fichiers de paramètres ou pirater sa mémoire pendant l'exécution.

Je suppose que vous n'êtes pas un script kiddie ;-)

2
LateralFractal