Crunch是一种建立密码字典工具,按照指定的规则生成密码字典,能够灵活的制定本身的字典文件。使用Crunch工具生成的密码能够输出到屏幕,保存到文件、或另外一个程序。crunch程序在2004年及之前由email为 mimayin@aciiid.ath.cx 的做者编写,后续版本由 bofh28@gmail.com 负责维护,所以在github上有两个版本:
https://github.com/crunchsec/crunch
https://github.com/jaalto/external-sf--crunch-wordlisthtml
Crunch其实最厉害的是知道密码的一部分细节后,能够针对性的生成字典,这在渗透中就特别有用,好比知道用户密码的习惯是taobao2013(taobao+数字年),这能够经过Crunch生成taobao+全部的年份字典,用来进行暴力破解攻击其效果尤佳!
其最新版本为3.6,现已支持:git
$ sudo apt-get install crunch -y
$ crunch --help Usage: crunch <min> <max> [options] where min and max are numbers
min 设定最小字符串长度(必选)
max 设定最大字符串长度(必选)
options
-b 指定文件输出的大小,避免字典文件过大
-c 指定文件输出的行数,即包含密码的个数
-d 限制相同元素出现的次数
-e 定义中止字符,即到该字符串就中止生成
-f 调用库文件(/etc/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,baa
-I 一般与-t联合使用,代表该字符为实义字符
-m 一般与-p搭配
-o 将密码保存到指定文件
-p 指定元素以组合的方式进行
-q 读取密码文件,即读取pass.txt
-r 定义重某一字符串从新开始
-s 指定一个开始的字符,即从本身定义的密码xxxx开始
-t 指定密码输出的格式
-u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z github
% 表明数字
^ 表明特殊符号
@ 表明小写字母
, 表明大写字符 工具
1.生成一个字典库 (5位的6个小写字母的随机排列组合,能够生成67 MB这么大的字典文件)
spa
$ crunch 5 5 -b 20mib -o START
2.生成一个字典文件,用本身指定的字符(默认为26个小写字母为元素的全部组合)
code
$ crunch 1 3 abc
3.经过-l参数来使@,%^等特殊字符输出
htm
$ crunch 7 7 -t p@ss,%^ -l a@aaaaa
4.-o参数也可以使用>>来简化
blog
$ crunch 4 4 -d 2@ -t @@@% >> test.txt
5.生成10位密码,并指定格式
ip
$ crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START
格式为三个小写字母+一个符号+四个数字+两个符号,限制每一个密码至少2种字母和至少3种数字,文件大小为20MB。“-d 2@”表示字母重复最多2次。
-d 数字符号,限制出现相同元素的个数(至少出现元素个数),“-d 2@”限制小写字母输出像aab和aac,aaa不会产生,由于这是连续3个字母,格式是数字+符号,数字是连续字母出现的次数,符号是限制字符串的字符,例如@,%^(“@”表明小写字母,“,”表明大写字符,“%”表明数字,“^”表明特殊字符)
-t @,%^,指定模式,@,%^分别表明意义以下:
@ 插入小写字母
, 插入大写字母
% 插入数字
^ 插入特殊符号ci
/usr/share/crunch/charset.lst
numeric 表示0123456789
Lalpha 表示26位小写字母
Ualpha 表示26位大写字母
$ crunch 1 1 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o START -c 60
-c 数字 指定写入输出文件的行数,也即包含密码的个数,例如使用字符规则mixalpha-numeric-all-space,生成最小和最大字符串为1的且每个文件保存60个字符串的密码字典
-f /path/to/charset.lst charset-name,从charset.lst指定字符集,也即调用密码库文件,好比kali中的charset.lst 在/usr/share/crunch/charset.lst,则参数为“-f /usr/share/crunch/charset.lst”
1.生成pass01-pass99全部数字组合
$ crunch 6 6 -t pass%% >>newpwd.txt
2.生成六位小写字母密码,其中前四位为pass
$ crunch 6 6 -t pass@@ >>newpwd.txt
3.生成六位密码,其中前四位为pass,后二位为大写
$ crunch 6 6 -t pass,, >>newpwd.txt
4.生成六位密码,其中前四位为pass,后二位为特殊字符
$ crunch 6 6 -t pass^^ >>newpwd.txt
5.制做8位数字字典
$ crunch 8 8 charset.lst numeric -o num8.dic
6.制做6位数字字典
$ crunch 6 6 0123456789 –o num6.dic
7.制做139开头的手机密码字典
$ crunch 11 11 +0123456789 -t 139%%%%%%%% -b 20mib -o START
8.在线使用生成的密码
$ crunch 2 4 0123456789 | aircrack-ng a,cap -e [ESSID] -w - $ crunch 10 1012345 --stodout | airolib-ng testdlb -import passwd – $ crunch 1 6 0123456789 | john pwd.txt --stdin -
这个依赖 aircrack-ng ,没装的装一下
$ sudo apt-get install aircrack-ng -y
不用把庞大的字典保存在硬盘上,生成一个密码用一个,不过消耗的时间多,比较占用cpu,参数最后面的-表示引用crunch生成的密码,例如无线密码在线破解。
1) https://www.freebuf.com/sectool/170817.html
2) http://netsecurity.51cto.com/art/201706/541638.htm