crunch <min-len> <max-len> [<charset string>][options] |
Crunch 可以根据你所指定的准则创建字典.产生的内容可以输出到屏幕,文件,或者其他应用程序。需用用到下面参数: |
min-len crunch创建字符的最小长度. 此选项是必需参数. |
max-len crunch创建字符的最大长度. 此选项是必需参数. |
charset string 你可以指定crunch命令行所使用的字符集,如果你不指定,crunch会使用默认的字 符集,顺序必须是小写字符,大写字符,数字,符号. 如果不遵循上面的顺序,你将 不能获取你想要的结果. 字符类型或加号,你必须指定每个值. 注意: 如果你的字符集 中想要包含空格,请用\ 字符将其转义或用引号闭合. 请查看例子3,11,12,13. |
OPTIONS -b number[type] 指定输出文件的大小, 只有-o START使用时,该参数才起作用,例如: 60MB 输出文件名的格式是 起始字符-结束字符, 例如: ./crunch 4 5 -b 20mib -o START 会生成四个文件: aaaa-gvfed.txt,gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt . 前面的三种类型kb,mb,gb,是以1000为单位计算统计的。后面的kib,mib,gib是 以1024为基础。注意类型与数字之间没有空格。例如: 500mb 正确, 500 mb错误。 |
-c number 指定写入文件的行数, 只有-o START使用时,该参数才起作用,例如: 60 输出文件名的格式是 起始字符-结束字符. 例如: ./crunch 1 1 -f /pentest/password/crunch/charset.lst mixalpha- numeric-all-space -o START -c 60 会生成两个文件: a-7.txt and 8-\ .txt 第二个文件名中包含\, 是因为后面有个空格. |
-d numbersymbol 限制字符重复的次数. -d 2@ 会限制小写字符集输出类似 aab和aac这样的值. Aaa不 会被产生. 参数格式就是数字后面跟一个符号,数字表示连续字符出现的最大次数,符 号指想要限制的字符集符号,例如: @,%^ 请看例子 17-19. |
-e string 遇到该字符,crunch会提前结束 |
-f /path/to/charset.lst charset-name 从文件中获取字符集 |
-i 反转输出内容,如果原始内容是aaa,aab,aac,aad, 你会得到 aaa,baa,caa,daa,aba,bba, |
-l 当你使用 -t 选项时, crunch会将符号理解为它的字面值. 这样可以在模式中使用占位符. -l 选项应该与-t选项拥有同样的长队,详见例子15. |
-m 与 -p 合并. 请使用 -p. |
-o wordlist.txt 指定输出文件, 例如: wordlist.txt |
-p charset OR -p word1 word2 ... 告诉 crunch 生成不包含重复字符的词. 默认crunch生成的字典大小是 #of_chars_in_charset ^ max_length. 该选项不会产生 #of_chars_in_charset!. ! 代表阶乘. 例如: 字符是 abc,最大长度为 4.. Crunch 默认会生成 3^4 = 81 个词. 该选项会生成 3! = 3x2x1 = 6 个词 (abc, acb, bac, bca, cab, cba). 它必须是最后一个选项! 此选项不能与 -s 一起使用, 它 会忽略最小和最大长度, 但是你必须指定两个数字。 |
-q filename.txt 类似 -p 选项, 不同的是它从文件中获取输入. |
-r 告诉crunch继续完成上次终止的任务. -r仅与 -o 一起时生效-r. 如果与 -s 一起使用, 会出现异常. 如果原始命令中包含 -s 选项, 你必须移除它,然后在命令 末尾加上 -r ,才能继续上次的任务. |
-s startblock 指定一个起始字符串, 例如: 03god22fs |
-t @,%^ 指定模式, 例如: @@god@@@@ where the only the @'s, ,'s, %'s, and ^'s will change. @ will insert lower case characters , will insert upper case characters % will insert numbers ^ will insert symbols |
|
-u 禁止输出百分线. 该选项应该是最后一个参数. |
|
-z gzip, bzip2, lzma, and 7z 压缩 -o 选项指定的输出. 有效参数有gzip, bzip2, lzma, 7z. gzip 速度快,但是压缩率较小. bzip2 比gzip慢,但是有更好的压缩率. 7z最慢, 但是压缩的最好. |
EXAMPLES Example 1 crunch 1 8 crunch会生成一个以a起始, zzzzzzzz 结尾的字典. Example 2 crunch 1 6 abcdefg crunch 根据字符集 abcdefg 生成字典,起始值是a,结束值是gggggg. Example 3 crunch 1 6 abcdefg\ 字符串最后有一个空格. 为了让crunch使用该空格, 你需要使用在空格前使用转义字符 \ . 如果使用引号引用, 那么就不需要转义字符, 例如: "abcdefg". 此处会根据abcdefg 字符集生成 字典, 以a为起始,6个空格结束. Example 4 crunch 1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt crunch 会使用character.lst 里面的字符集 mixalpha-numeric-all-space ,并将字典列表 写入文件 wordlist.txt. 字典以 a 为起始, 8个空格结束 " " Example 5 crunch 8 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt -t @@dog@@@ -s cbdo‐ gaaa crunch 会使用character.lst 里面的字符集 mixalpha-numeric-all-space ,并将字典列表 写入文件 wordlist.txt. 字典以 cbdogaa 为起始, "以 " dog " 结束. Example 6 crunch 2 3 -f charset.lst ualpha -s BB crunch 会生成一个以 BB 为起始, ZZZ 为结尾的字典. 如果你可以在生成字典的过程中停下来 在开始之前,请确保已经将原始的字典改名,因为crunch会覆盖内容. Example 7 crunch 4 5 -p abc 此处的数字不会起什么作用, 但是必须指定. crunch 会生成 abc, acb, bac, bca, cab, cba. Example 8 crunch 4 5 -p dog cat bird 此处的数字不会起什么作用, 但是必须指定. crunch 会生成 birdcatdog, birddogcat, catbirddog, catdogbird, dogbirdcat, dogcatbird. Example 9 crunch 1 5 -o START -c 6000 -z bzip2 crunch 会生成 bzip2 压缩文件,每个文件包含 6000 个词. 压缩包的文件名是 first_word-last_word.txt.bz2 # time ./crunch 1 4 -o START -c 6000 -z gzip real 0m2.729s user 0m2.216s sys 0m0.360s # time ./crunch 1 4 -o START -c 6000 -z bzip2 real 0m3.414s user 0m2.620s sys 0m0.580s # time ./crunch 1 4 -o START -c 6000 -z lzma real 0m43.060s user 0m9.965s sys 0m32.634s size filename 30K aaaa-aiwt.txt 12K aaaa-aiwt.txt.gz 3.8K aaaa-aiwt.txt.bz2 1.1K aaaa-aiwt.txt.lzma Example 10 crunch 4 5 -b 20mib -o START 会生成4个文件: aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt 前面的三个文件都是 20MBs (real power of 2 MegaBytes),最后一个是 11MB. Example 11 crunch 3 3 abc + 123 !@# -t @%^ 会生成长度为三的词,第一个为字母,第二个是数字, 第三个是符号. 指定字符的顺序很重要. 整个顺序是, 小写字母,大写字母,数字, 符号。如果你不打算使用指定的字符集,需要使用 一个加号作为占位符。正如你所看到的那样,我没有使用大写的字符集,因此使用了一个占位 符。上面生成的字典, 将会以a1!起始,c3#结束。 Example 12 crunch 3 3 abc + 123 !@# -t ^%@ 将会生成长度词长为3的字典,以 !1a起始,#3c 为结束. Example 13 crunch 4 4 + + 123 + -t %%@^ (+) 是一个占位符,表示某一类的字符集合. 指定 + 号后, crunch 会使用默认的字符集. 你可以使用指定的值或者加号. 此例中的字符集如下: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 123 !@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ 上面的字符串最后由一个空格, 字典以11a! 起始, "33z "结束. 引号后面有个空格. Example 14 crunch 5 5 -t ddd@@ -o j -p dog cat bird 任何非 @,%^ 的字符表示替换词的占位符. @,%^ 与 -t 有同样的功能. 如果你想使用 @,%^ , 你可以使用 -l 选项指定需要按字面理解的字符. birdcatdogaa birdcatdogab birdcatdogac <skipped> dogcatbirdzy dogcatbirdzz Example 15 crunch 7 7 -t p@ss,%^ -l a@aaaaa crunch 会将 @ 符号理解为其字面意思, 不会替换为大写字符集. 生成的字符集如下: p@ssA0! p@ssA0@ p@ssA0# p@ssA0$ <skipped> p@ssZ9 Example 16 crunch 5 5 -s @4#S2 -t @%^,2 -e @8 Q2 -l @dddd -b 10KB -o START crunch 会生成字符长度为5的字典,以 @4#S2为起始, @8 Q2.为结尾。 每个文件的大小是10KB. Example 17 crunch 5 5 -d 2@ -t @@@%% crunch 会生成字符长度5的字典,以aab00为起始, zzy99为结尾. 包含 aaa 和 zzz 这样的词不会出现. Example 18 crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START crunch 会生成字符长度为10的字典,以aab!0001!!为起始, zzy 9998.为结尾。 每个文件的大小是20mb. Example 19 crunch 8 8 -d 2@ crunch 会生成词长为8的字典,字符重复次数最大为2. Crunch 会以 aabaabaa 为起始, zzyzzyzz为结束. Example 20 crunch 4 4 -f unicode_test.lst japanese -t @@%% -l @xdd crunch 加载unicode_test character文件中的 japanese 字符集. 字典将以 @日00起始, @語99为结束. |