所谓的密码字典主要是配合密码破解软件所使用,密码字典里包括许多人们习惯性设置的密码。这样可以提高密码破解软件的密码破解成功率和命中率,缩短密码破解的时间。当然,如果一个人密码设置没有规律或很复杂,未包含在密码字典里,这个字典就没有用了,甚至会延长密码破解所需要的时间。在Linux中有Crunch和rtgen两个工具,可以来创建密码字典。为方便用户的使用,本节将介绍这两个工具的使用方法。
crunch是一款linux下的压缩后仅仅38k的小程序,Crunch最厉害的是知道密码的一部分细节后,可以针对性的生成字典,这在渗透中就特别有用,用来进行暴力破解攻击其效果尤佳!
1、在kali中已经集成crunch,如果 不是kali就下载并安装crunch
1
2
3
4
5
6
|
cd / home / oldboy / tools wget https: / / sourceforge.net / projects / crunch - wordlist / files / crunch - wordlist / crunch - 3.6 .tgz tar xf crunch - 3.6 .tgz cd crunch - 3.6 gcc - Wall - lm - pthread - std = c99 - m64 - D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS = 64 crunch.c - o crunch - lm make install |
2、使用crunch生成密码文件实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
crunch 1 8 #生成最小1位,最大8位,由26个小写字母为元素的所有组合 crunch 1 6 abcdefg #生成 最小为1,最大为6.由abcdefg为元素的所有组合 crunch 1 6 abcdefg\ #生成 最小为1,最大为6.由abcdefg和空格为元素的所有组合(/代表空格) crunch 1 8 - f charset.lst mixalpha - numeric - all - space - o wordlist.txt #调用密码库 charset.lst, 生成最小为1,最大为8,元素为密码库 charset.lst中 mixalpha-numeric-all-space的项目,并保存为 wordlist.txt;其中 charset.lst在kali_linux的目录为 /usr/share/crunch/charset.lst, charset.lst中 mixalpha-numeric-all-space项目包含最常见的元素组合(即大小写字母+数字+常见符号) crunch 8 8 - f charset.lst mixalpha - numeric - all - space - o wordlist.txt - t @@dog @@@ - s cbdogaaa #调用密码库 charset.lst,生成8位密码;其中元素为 密码库 charset.lst中 mixalpha-numeric-all-space的项;格式为“两个小写字母+dog+三个小写字母”,并以cbdogaaa开始枚举(@代表小写字母) crunch 2 3 - f charset.lst ualpha - s BB #调用密码库charset.lst,生成2位和3位密码;其中元素为密码库charset.lst中ualpha的项;并且以BB开头 crunch 4 5 - p abc #crunch将会生成abc, acb, bac, bca, cab, cba,虽然数字4和5这里没用,但必须有 crunch 4 5 - p dog cat bird #crunch将生成以“dog”“cat”“bird”为元素的所有密码组合:birdcatdog,birddogcat,catbirddog, catdogbird, dogbirdcat, dogcatbird crunch 1 5 - o START - c 6000 - z bzip2 # 生成最小为1位,最大为5位元素为所有小写字母的密码字典,其中每一个字典文件包含6000个密码,并将密码文件保存为bz2文件,文件名将以 "第一个密码" + " - " + "最后一个密码" + " .txt.bz2 " 保存(比如000-999.txt.bz2);下面是生成几种格式的压缩文件所用的时间和体积大小对比: crunch 4 5 - b 20mib - o START # 生成最小为4位,最大为5位元素为所有小写字母的密码字典,并以20M进行分割;这时会生成4个文件:aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt:其中前三个大概每个20M,最后一个10M左右(因为总共70M) crunch 4 4 + + 123 + - t % % @^ #生成4位密码,其中格式为“两个数字”+“一个小写字母”+“常见符号”(其中数字这里被指定只能为123组成的所有2位数字组合)。比如12f# 32j^ 13t$ ...... crunch 3 3 abc + 123 @ #! -t @%^ #生成3位密码,其中第一位由“a,b,c”中的一个;第二位为“1,2,3”中的一个;第三位为“!,@,#”中的一个。比如1a! 2a# 3b@ ...... crunch 3 3 abc + 123 @ #! -t ^%@ #生成3位密码,其中格式为“字符+数字+字母”,这里字符范围为!@# ,数字范围为 1 2 3 , 字母范围为a b c比如!1c @3b @2a ...... crunch 5 5 - t ddd@@ - p dog cat bird #生成5个元素组成的密码,其中前三个为 dog cat bird任意组合,后两个为两个小写字母的任意组合。比如birddogcatuz catdogbirdab birdcatdogff ...... crunch 7 7 - t p@ss, % ^ - l a@aaaaa #生成7位密码,格式为“字符p@ss”+大写字母+数字+符号 比如 p@ssZ9> ...... crunch 5 5 - s @ 4 #S2 -t @%^,% -e @8 Q2 -l @dddd -b 10KB -o START #生成5位密码,格式为小写字母+数字+符号+大写字母+数字,并以 @4#S2开始,分割为10k大小。。。 crunch 5 5 - d 2 @ - t @@@ % % #生成5位密码,格式为三个字母+两个数字,并限制每个密码最少出现2种字母 crunch 10 10 - t @@@^ % % % % ^^ - d 2 @ - d 3 % - b 20mb - o START #生成10位密码,格式为三个小写字母+一个符号+四个数字+两个符号,限制每个密码至少2种字母和至少3种数字 crunch 8 8 - d 2 @ #生成8位密码,每个密码至少出现两种字母 crunch 4 4 - f unicode_test.lst the - greeks - t @@ % % - l @xdd #调用密码库 unicode_test.lst中的 the-greeks项目字符,生成4位密码,其中格式为两小写字母+两数字,同样kali_linux中 unicode_test.lst 在/usr/share/crunch目录 - b #体积大小,比如后跟20mib - c #密码个数(行数),比如8000 - d #限制出现相同元素的个数(至少出现元素个数),-d 3就不会出现zzf ffffgggg之类的 - e #定义停止生成密码 ,比如-e 222222:到222222停止生成密码 - f #调用密码库文件,比如/usr/share/crunch/charset.lst - i #改变输出格式 - l #与-t搭配使用 - m #与-p搭配使用 - o #保存为 - p #定义密码元素 - q #读取字典 - r #定义从某一个地方重新开始 - s #第一个密码,从xxx开始 - t #定义输出格式 @代表小写字母 ,代表大写字母 % 代表数字 ^代表符号 - z #打包压缩,格式支持 gzip, bzip2, lzma, 7z |
crunch语法格式:
1
|
crunch [minimum length] [maximum length] [character set ] [options] |
生成一个包含6到7位数字、字母和特殊字符的密码文件password.txt。这个密码文件为后面用Hydra暴力破解工具使用
1
|
crunch 6 7 - f / usr / share / crunch / charset.lst mixalpha - numeric - all - space - o password.txt |
生成的这个字典文件password.txt很大,大概有500多T大小