crunch使用教程

crunch 是一款功能强大的单词列表(词表)生成工具,它能够根据用户指定的条件和规则生成自定义词表。这些词表主要用于密码破解、渗透测试和安全评估等场景,帮助测试人员评估系统密码的强度。

与其他词表生成工具相比,crunch 的特点是高度灵活,支持通过字符集、模式、组合规则等方式生成高度定制化的词表。它可以将生成的结果输出到屏幕、文件或直接传递给其他工具(如密码破解工具),是渗透测试中生成针对性密码字典的重要工具。

二、工具常用参数说明

参数 中文说明
<min> 必需参数,指定生成单词的最小长度
<max> 必需参数,指定生成单词的最大长度
-b <size>[k|m|g] 指定输出文件的大小上限,单位可以是 k(KB)、m(MB)、g(GB),达到上限后自动分文件
-c <number> 指定每个输出文件中包含的单词数量
-d <number> 限制相同字符连续出现的最大次数,格式为 <数字> 或 <数字>:<字符>
-e <string> 当生成到指定字符串时停止
-f <path> 使用预定义的字符集文件(默认路径为 /usr/share/crunch/charset.lst)
-i 反转输出的单词顺序
-o <file> 将生成的词表保存到指定文件
-p [charset] [charset] ... 生成字符集的所有可能组合,不考虑长度限制(忽略 min 和 max)
-q <file> 从指定文件中读取单词并生成所有可能的组合
-r 继续上次中断的词表生成过程
-s <string> 从指定字符串开始生成词表
-t <pattern> 按照指定模式生成词表,支持通配符(%=数字,@=小写字母,^=大写字母,,=特殊字符)
-u 禁止打印进度信息
-z <compression> 对输出文件进行压缩,支持 gzip、bzip2、lzma、7z 等格式

三、使用教程

1. 基础使用方法

crunch 的基本语法为:

复制代码
crunch <最小长度> <最大长度> [字符集] [选项]

如果不指定字符集,默认使用小写字母(abcdefghijklmnopqrstuvwxyz)。

2. 常用命令示例

(1)生成基础字母词表

复制代码
crunch 3 5

功能:生成长度为 3 到 5 的所有小写字母组合(如 aaa、aab...zzzzz)

输出:直接显示在终端,按 Ctrl+C 可终止

(2)指定字符集生成数字词表

复制代码
crunch 4 4 0123456789 -o numbers.txt

功能:生成所有 4 位数字组合(0000 到 9999),并保存到 numbers.txt 文件

适用场景:破解纯数字密码(如 PIN 码、简单密码)

(3)混合字符集生成复杂词表

复制代码
crunch 6 6 abc123! -o mixed_words.txt

功能:生成长度为 6 的词表,字符来自 a、b、c、1、2、3、! 的组合

优势:包含字母、数字和特殊字符,模拟复杂密码规则

(4)使用预定义字符集

复制代码
crunch 5 5 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o predefined.txt

功能:使用系统预定义的 "mixalpha-numeric-all-space" 字符集(包含大小写字母、数字、空格和特殊字符)生成 5 位长度的词表

说明:预定义字符集文件中包含多种常用字符组合,可通过查看该文件了解更多选项

(5)按模式生成词表

复制代码
crunch 8 8 -t @@@%^^^ -o pattern_based.txt

模式说明:

  • @ 代表小写字母(如 a-z)
  • % 代表数字(0-9)
  • ^ 代表大写字母(A-Z)

功能:生成 8 位词表,格式为 "3个小写字母+1个数字+3个大写字母"(如 abc1ABC 符合格式)

适用场景:已知密码遵循特定格式(如前半为字母后半为数字)

(6)生成组合词表(无长度限制)

复制代码
crunch 0 0 -p apple banana cherry -o combinations.txt

功能:生成 "apple"、"banana"、"cherry" 三个单词的所有可能组合(如 applebananacherry、bananaapplecherry 等)

说明-p 参数忽略 min 和 max,此时可设为 0 0

(7)限制字符重复次数

复制代码
crunch 4 4 -d 2@ abcdef -o no_repeat.txt

功能:生成 4 位词表(字符来自 a-f),限制相同字符最多连续出现 2 次(如 aabc 合法,aaab 非法)

优势:减少无意义的重复字符组合,缩小词表体积

(8)分卷生成大词表

复制代码
crunch 6 6 -b 10m -o output_ -z gzip

功能:生成 6 位词表,每个文件大小不超过 10MB,使用 gzip 压缩,文件名为 output_000.gz、output_001.gz 等

适用场景:生成超大词表时避免单个文件过大

(9)从指定字符串开始生成

复制代码
crunch 3 3 -s abc -o continue_from_abc.txt

功能:从 "abc" 开始生成 3 位小写字母词表(跳过 aaa 到 abb 的组合)

优势:可继续上次未完成的词表生成任务

3. 使用注意事项

  • 性能与资源:
    • 词表大小随长度呈指数增长(如 6 位大小写字母+数字组合约有 91.6 亿种可能),生成前需评估存储空间和时间成本
    • 避免生成过长(如超过 8 位)的全字符集词表,可能导致文件过大(GB 甚至 TB 级)
  • 字符集选择:
    • 根据目标密码策略选择字符集(如已知密码仅包含数字和小写字母,无需加入大写和特殊字符)
    • 合理使用预定义字符集(charset.lst)可简化命令
  • 组合策略:
    • 结合目标信息(如生日、品牌名、常见密码前缀)使用 -t 模式生成针对性词表,比全组合词表更高效
    • 对于复杂密码,可先用 crunch 生成基础词表,再用其他工具(如 hashcat)添加规则扩展
  • 输出方式:
    • 直接输出到破解工具(如 crunch 4 4 0123456789 | john --stdin hash.txt)可节省存储空间
    • 大词表建议使用分卷(-b)和压缩(-z)选项
相关推荐
藤谷性能7 小时前
Ubuntu 22.04:安装Android Studio
linux·ubuntu·android studio
铅笔小新z7 小时前
【Linux】基本开发工具使用
linux·运维·服务器
乐迪信息7 小时前
乐迪信息:船舶AI逆行检测算法在单向航道中的强制管控
大数据·人工智能·安全·计算机视觉·目标跟踪
lwx9148528 小时前
Linux-yumdownloader命令详解
linux·运维·服务器
Alphapeople8 小时前
isaac sim和isaac lab的安装
linux·运维·服务器
炘爚8 小时前
Linux 时间函数、格式化及 printf 相关总结
linux
平常心cyk8 小时前
Linux快速复习——常用命令
linux
w6100104668 小时前
CKAD-2026-金丝雀部署
linux·运维·服务器·k8s
.小小陈.8 小时前
深度拆解 Linux Ext 系列文件系统:从硬件底层到软硬链接全流程
linux·运维·服务器