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-wordlist

Crunch其实最厉害的是知道密码的一部分细节后,可以针对性的生成字典,这在渗透中就特别有用,比如知道用户密码的习惯是taobao2013(taobao+数字年),这可以通过Crunch生成taobao+所有的年份字典,用来进行暴力破解攻击其效果尤佳!

其最新版本为3.6,现已支持:

  • Crunch可以以组合和排列的方式生成字典
  • 它可以通过行数或文件大小中止输出
  • 现在支持恢复
  • 现在支持数字和符号模式
  • 现在分别支持大小写字符模式
  • 在生成多个文件时添加状态报告
  • 新的-l选项支持@,%^
  • 新的-d选项可以限制重复的字符,可以通过man文件查看详细信息
  • 现在支持unicode

安装

$ 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

特殊字符

%      代表数字
^      代表特殊符号
@      代表小写字母
,      代表大写字符

使用案例

1.生成一个字典库 (5位的6个小写字母的随机排列组合,可以生成67 MB这么大的字典文件)

$ crunch   -b 20mib -o START

2.生成一个字典文件,用自己指定的字符(默认为26个小写字母为元素的所有组合)

$ crunch   abc

3.通过-l参数来使@,%^等特殊字符输出

$ crunch   -t p@ss,%^ -l a@aaaaa

4.-o参数也可使用>>来简化

$ crunch   -d @ -t @@@% >> test.txt

5.生成10位密码,并指定格式

$ crunch   -t @@@^%%%%^^ -d @ -d % -b 20mb -o START

格式为三个小写字母+一个符号+四个数字+两个符号,限制每个密码至少2种字母和至少3种数字,文件大小为20MB。“-d 2@”表示字母重复最多2次。

-d 数字符号,限制出现相同元素的个数(至少出现元素个数),“-d 2@”限制小写字母输出像aab和aac,aaa不会产生,因为这是连续3个字母,格式是数字+符号,数字是连续字母出现的次数,符号是限制字符串的字符,例如@,%^(“@”代表小写字母,“,”代表大写字符,“%”代表数字,“^”代表特殊字符)

-t @,%^,指定模式,@,%^分别代表意义如下:

@ 插入小写字母
, 插入大写字母
% 插入数字
^ 插入特殊符号

密码库

/usr/share/crunch/charset.lst

numeric     表示0123456789
Lalpha      表示26位小写字母
Ualpha      表示26位大写字母

案例:

$ crunch   -f /usr/share/crunch/charset.lst  mixalpha-numeric-all-space -o  START  -c   

-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   -t pass%%  >>newpwd.txt 

2.生成六位小写字母密码,其中前四位为pass

$ crunch   -t pass@@  >>newpwd.txt 

3.生成六位密码,其中前四位为pass,后二位为大写

$ crunch   -t pass,,  >>newpwd.txt 

4.生成六位密码,其中前四位为pass,后二位为特殊字符

$ crunch   -t pass^^  >>newpwd.txt 

5.制作8位数字字典

$ crunch   charset.lst numeric -o num8.dic 

6.制作6位数字字典

$ crunch     –o num6.dic 

7.制作139开头的手机密码字典

$ crunch    + -t %%%%%%%% -b 20mib -o START

8.在线使用生成的密码

$ crunch    | aircrack-ng a,cap -e [ESSID] -w -
$ crunch --stodout | airolib-ng testdlb -import passwd –
$ crunch | 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

crunch--字典生成工具的更多相关文章

  1. SQL Server2005+、MySQL、Oracle 数据库字典生成工具

    之前找的数据库字典生成工具基本上都依赖于 Office Com 组件,在不安装 Office的情况下无法使用.怒,于是自己用C# 写了一个.     特征如下:         一.支持的数据库 MS ...

  2. linux下字典生成工具-crunch与rtgen

    所谓的密码字典主要是配合密码破解软件所使用,密码字典里包括许多人们习惯性设置的密码.这样可以提高密码破解软件的密码破解成功率和命中率,缩短密码破解的时间.当然,如果一个人密码设置没有规律或很复杂,未包 ...

  3. PJzhang:crunch,一个很好的字典生成工具

    猫宁!!! 之前收集子域名的时候使用过子域名挖掘机这个windows软件,查看了它所使用的字典,基本上是小写字母数字1-4位的一个合集.   36+36*36+36*36*36+36*36*36*36 ...

  4. linux字典生成工具crunch

    安装 tar zxvf crunch-3.6.tgz cd crunch-3.6 gcc -Wall -lm -pthread -std=c99 -m64 -D_LARGEFILE_SOURCE -D ...

  5. 密码字典生成工具crunch的简单使用

      案例1: crunch 1 8 #生成最小1位,最大8位,由26个小写字母为元素的所有组合   案例2: crunch 1 6 abcdefg #生成最小为1,最大为6.由abcdefg为元素的所 ...

  6. crunch字典生成

    密码破解基本有三种方法:第一种是人工猜解(垃圾桶工程和被动信息收集): 第二种是基于字典暴力破解(主流) 在kali里,是默认自带了字典的,分别放在下面三个文件中:/usr/share/wordlis ...

  7. DBCHM -最简单、最实用的数据库文档生成工具

    项目介绍 DBCHM 是一款数据库文档生成工具! 该工具从最初支持chm文档格式开始,通过开源,集思广益,不断改进,又陆续支持word.excel.pdf.html.xml.markdown等文档格式 ...

  8. 文件上传漏洞fuzz字典生成脚本小工具分享

    前言 学习xss的时候翻阅资料发现了一个文件上传漏洞fuzz字典生成脚本小工具,试了试还不错,分享一下 配置 需要python2环境 工具地址:https://github.com/c0ny1/upl ...

  9. 数据字典生成工具之旅(4):NPOI操作EXECL

    这篇会介绍NPOI读写EXECL,读写EXECL的组件很多,可以使用微软自己的COM组件EXECL.exe读写,不过这种方式限制很大. 1:客户环境必须装Office(虽然现在机子上不装Office的 ...

  10. 两款不错的Linux密码生成工具

    先介绍最简单的方法,Linux自带的 $ strings /dev/urandom | | ; echo whucNWhr35W6ZP0MxrLQ $ /dev/random | base64 | t ...

随机推荐

  1. C++标准模板库(STL)之Queue

    1.Queue的常用用法 queue:队列,实现的一个先进先出的容器. 1.1.queue的定义 使用queue,首先要加头文件#include<queue>和using namespac ...

  2. Linux—shell中$(( ))、$( )、``与${ }的区别

    命令替换 在bash中,$( )与` `(反引号)都是用来作命令替换的.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行. exp 1 [ ...

  3. 苹果手机的SB系列(2)为什么不能重命名?

    为什么没有重命名? 在手机端不能重命名,在WINOWS端文件是只读的,连他TM的只读属性都无法改,不能重命名,你让我怎么备份? 我怎么知道哪些照片上次备份过了?又重头来过?还是要用苹果的MAC?这种态 ...

  4. webpack中 resolve.alias 配置,@import相关踩坑

    1.在使用webpack打包项目时,可以在配置文件中配置resolve.alias来定义一些绝对路径,方便在项目中灵活使用路径,举例如下: resolve: { extensions: [‘.js‘, ...

  5. DbArithmeticExpression 参数必须具有数值通用类型问题的解决

    C#中LINQ to Entities进行日期比较,使用-运算符,比如: list.FirstOrDefault(s =>(DateTime.Now - s.Updated).TotalHour ...

  6. NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc limit ?,20;出现

    异常:类型不匹配 05-06 08:12:38.151: E/AndroidRuntime(14904): java.lang.NumberFormatException: Invalid int: ...

  7. cocoapods 换源

    1. 用以下步骤换源: pod repo remove master pod repo add master https://code.aliyun.com/Magi/CocoaPods.git po ...

  8. 使用该方法在ubuntu下安装flashplayer的rpm包

    Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo apt-get install alien #alien默认没有安装,所以首先要安装它 su ...

  9. STL中set的使用方法

    第一次想认真地学学set,是在我做一题treap的时候产生的念头.(HNOI2004 宠物收养场,洛谷P2286) 嗯,虽然学过一丢丢的treap和splay,但是这编程复杂度貌似有点高…… 无奈翻开 ...

  10. SQL-53 按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees

    题目描述 按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employeesCREATE TABLE `dept_emp` (`emp_ ...