现在网络安全的设备层出不穷,各种网络安全设备不管是对于内网还是对于外网的防护达到了细致入微。社会工程学作为渗透中非常重要的一环,有着非常大的威力,社会工程学最重要的就是密码的暴力破解,暴力破解最重要的就是密码字典。字典的质量直接影响到最终的暴力破解速度,对整个渗透工作起着十分重要的作用。

这里就来介绍一款按照指定规律生成具有针对性字典的工具——crunch

crunch简介

crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活地制定自己的字典文件。使用crunch工具生成的密码可以输出到屏幕,保存到文件、或另一个程序。

crunch安装

现在的kali系统是默认自带crunch的。如果你使用其他系统,可以通过从github的这个地址下载源码:

https://github.com/crunchsec/crunch

crunch参数

一般拿到这种命令行的工具,都会用参数-h看以下帮助说明:

crunch -h

可以看到基本的使用语法:

# min:设定最小字符长度
# max:设定最大字符长度
crunch <min> <max> [options]

如果要看完整的说明文档,要用man命令:

man crunch

最简单的使用就是生成一串固定英文字符跟一串固定数字:

crunch 14 14 -t zhangsan%%%%%% -o aa.txt

其中-t参数用于指定输出完整字符串的格式,后面跟的一些固定的字符和有特殊意义的字符,其中有特殊意义的字符对应具体用处如下:

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

除了这些有特殊意义的字符,还可以直接指定要使用的字符,比如这样:

crunch 1 2 abc

在设定长度后直接跟一个字符串,输出的字典中的字符串都会用命令中传入的字符进行构造。

-o参数用于指定将生成的字符串存入到特定的文档。可以直接传文件名,表示输出文件的名称。也可以跟一些参数,让工具自动生成文件名,比如:

crunch 1 2 abc -o START

遇到字典特别大,需要限制每个字典文件大小的时候,可以使用-b参数:

crunch 14 14 -t zhangsan%%%%%% -o START -b 5mb

除了指定输出字典文件大小外,也可以指定文件中字符串的个数(行数),使用-c参数:

crunch 14 14 -t zhangsan%%%%%% -o START -c 400000

当确认字典中的字符串不存在两个连续字符连续的时候(例如是5位的两个中文拼音,中文拼音不会存在两个相同的拼音字符),可以使用-d参数,表示限制相同字符出现的次数,如果传1就表示不会出现连续两个相同的字符:

crunch 5 5 -t @@@@@ -o START -d 1

kali提供了一些常用的字符集用于制作字典,字符集文件:

cat /usr/share/crunch/charset.lst

crunch可以通过-f参数使用这个字符集:

crunch 5 5 -t @@@@@ -o START -d 1 -f /usr/share/crunch/charset.lst hex-lower

-f参数后不仅要传字符集文件,还要传文件中具体的字符集名称。

当你已经知道目标字符串的组成内容,但是不知道排列顺序时,可以使用-p参数,它的作用是通过指定的字符串,输出所有可能的组合方式:

crunch 8 8 -p 12345@cy > aa.txt

需要注意两点,当使用-p参数的时候,入参中的最小、最大字符长度其实是不会生效的,但是必须传;另一个需要注意的是,-p参数必须放在命令行的最后。

-p参数还有种用法,将特定字符串作为也给整体进行组合:

crunch 1 1 -p zhang san 123 > aa.txt

crunch的组合规律其实是能猜测出来的,当你觉得crunch输出的字典在某一个字符串前面的内容是有问题的,不想让这些有问题的字符串出现在字典中,可以使用-s参数,比如这样:

crunch 8 8 12345@cy -s 1212121c -o aa.txt

-s参数和-p参数两者是互斥的,虽然同时使用也不会报错,但是-s参数的功能会失效。

当目标字符串其中的几个字符串是有特殊意义的,肯定是组合在一起使用的,可以使用-q参数,读取一个文件,里面的每一行都会作为一个整体进行组合,例如这样:

crunch 1 1 -q pass.txt > aa.txt

如果按照设定的规律生成的字典文件非常大,除了前面的-b参数,将一个字典文件拆分成多个文件,还可以使用-z参数,将字典文件压缩,支持对压缩方式有以下几种:

  • gzip
  • bzip2
  • lzma
  • 7z

其中7z的压缩比例是最大的。

crunch 1 1 -q pass.txt -o aa.txt -z 7z

最后再罗列一些各个参数:

-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

总结

其实可以生成字典的工具很多,就连python都可以自己手写脚本来生成字典。但是kali中有预装的工具,为什么不用呢,而且crunch的使用也的确非常方便。

crunch的使用过程中除了几个互斥的参数,其他参数都是可以组合使用的。根据收集到的信息,制定合理的字典生成规则,最终得到的字典文件能够帮助我们更快、更高效地达成目的。

密码字典生成工具:crunch相关推荐

  1. php 生成密码字典,密码字典生成工具crunch的简单使用

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

  2. python123测验5随机密码生成_基于社会工程学的弱口令密码字典生成工具

    Chinese Common User Passwords Profiler 基于社会工程学的弱口令密码字典生成工具 使用方法 : 第一步 : 定义已知信息 class Person: NAME = ...

  3. 【网安神器篇】——Crunch字典生成工具

    作者名:Demo不是emo  主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭:不要让时代的悲哀 ...

  4. 字典生成工具 -- CUPP

    你别怕,不回你消息的那个人,也总会遇到一个不回她消息的人... 今天给大家介绍一款字典生成工具:CUPP 一.环境 kali2019.4 python3 二.安装过程: 复制到本地安装包 https: ...

  5. 好用的fuzz字典以及fuzz字典生成工具

    一.fuzz字典下载地址 https://github.com/fuzzdb-project/fuzzdb https://github.com/TheKingOfDuck/fuzzDicts htt ...

  6. python——字典生成工具

    环境:python 3.6.7 简单的字典生成工具 # -*- coding: utf-8 -*-f = open("F:\\dict.txt", 'w') #字典文件的存储路径, ...

  7. crunch字典生成工具

    Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件.使用Crunch工具生成的密码可以输出到屏幕,保存到文件.或另一个程序.由其在渗透测试需要爆破的时候,字典 ...

  8. 【KALI基础】字典生成和CRUNCH工具的运用

    大家号,今天我们来讲讲如何自己生成字典.我们需要运用Crunch工具.当然这个工具也是在KALI中预先安装好的. 当我们对一些网站渗透时就可以用到字典的生成.比如说学校的网站的登录密码存在一定的规律, ...

  9. Linux密码生成工具crunch使用攻略

    crunch是一款linux下的压缩后仅仅38k的小程序,crunch程序在2004年及以前由email为的作者编写mimayin@aciiid.ath.cx,后续版本由bofh28@gmail.co ...

  10. kali CeWL密码攻击工具 Linux字典生成工具 自定义单词列表生成器

    目录 网络安全法普及 1 CeWL 介绍 2 安装 2.1 CentOS安装 3 使用 3.1 帮助 3.2 常用命令 网络安全法普及 中华人民共和国网络安全法 网络安全审查办法 中华人民共和国密码法 ...

最新文章

  1. 【 English 】计算机常用英文单词
  2. php实现cc攻击防御和防止快速刷新页面示例
  3. springmvc十三:REST风格增删改查
  4. 大白话5分钟带你走进人工智能-第十节梯度下降之归一化的各种方式和必要性(5)...
  5. 机器学习资源和路线图
  6. Fiddler抓包工具详解(五)(IOS、安卓抓包+fildder插件)
  7. mysql insert into select大量数据插入比较慢_史上最全MySQL锁机制
  8. 【Python】count()方法:统计字符串出现的次数
  9. Adbshell相关命令
  10. CSS3 Flex布局(伸缩布局盒模型)学习
  11. linux安装卸载mysql,Linux6 系列 安装、卸载mysql
  12. python安卓开发实例_python服务器与android客户端socket通信实例
  13. mac 允许任何源 软件安装 -- 在安全模式中没有显示
  14. 字节流和字符流学习笔记:
  15. android 下载视频文件怎么打开,安卓手机支付宝文件夹下的视频文件是什么
  16. Mblog 系统配置
  17. python股票交易接口源代码分享
  18. 日志配置:logging.file.path与logging.file.name的区别
  19. 数字签名与数字证书技术简介(三)
  20. 医疗保健数据接口_为什么需要用于医疗保健业务的应用程序

热门文章

  1. 23种Python设计模式之建造者模式详解
  2. 区块链技术指南学习(一)未来已来
  3. PHP字符串函数hex2bin( 转换十六进制字符串为二进制字符串)
  4. 吴恩达机器学习视频笔记和编程作业(Python实现)汇总
  5. 手把手教你升级到MySQL 8.0
  6. Gartner零信任网络访问市场指南(2020版)
  7. 【原创】docker在Ubuntu下1小时快速学习
  8. 我应该通过软件或硬件调整音量以获得最佳声音吗?
  9. VB 源码 产生任意数之间随机数,支持负数
  10. 使用Microsoft Office Visio 2007 绘图