如何为字典攻击生成字典?

信息安全 密码 蛮力 字典
2021-08-24 12:23:22

我需要破解自己的密码。优点是我知道可能的字符和最大长度。

我需要的是创建一个字典。字典应该包含我选择的所有字符组合(例如,我不需要包含字符 T 的单词列表,因为我没有在密码中使用 T)。

我怎样才能做到这一点?

4个回答

所以你可以使用 python 来生成所有可能的组合 itertools.permutation

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

其中'abc'是一串可能的字符。注意 a 和 A 是不一样的!

这将输出:

abc
acb
bac
bca
cab
cba

编辑(感谢@buherator):

如果您想要重复的字母(例如 aaa 等),则需要使用itertools.product例如,

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

这将输出:

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

可以通过这种方式使用密码破解工具,例如 John the Ripper 或 hashcat。他们有各种“修改”规则,这些规则将使用字典(在您的情况下是一个单词字典),然后对其应用许多转换。然后,您可以根据您可能使用密码所做的事情来指定规则。

学习如何指定这些类型的规则并非易事,不幸的是,您无法在不透露太多密码的情况下寻求详细的帮助。

以下是一些示例,带注释的 john CONFIG,可能会有所帮助:

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

这是约翰教程的列表,但我自己并没有真正看过任何教程,所以再次,我只能为您指明大方向:

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

您应该使用Crunch或 john the ripper。如果您知道密码的长度和可能的组合,您可以制作一本非常好的字典。例如,您知道您的密码类似于

p@$$w0rd123

或许

P@s$word1@3

等等..你可以做

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

这将创建一个包含任何给定字符的最小长度为 8 max 11 的列表。请注意,这可能是一个巨大的列表。

您需要使用单词表来创建字典攻击。您可以编写自己的词表生成器或使用现有的。

以下是一些现有的词表生成器:

你可以找到更多。生成单词表后,您需要尝试这些单词的每种组合,直到找到与您的密码匹配的单词。