Crunch
从字符集生成单词表
简介
crunch <min-len> <max-len> [<charset string>] [options]
说明
Crunch可以根据您指定的条件创建单词表。crunch的输出可以发送到屏幕、文件或其他程序。
参数说明:
参数 | 简介 |
---|---|
min-len | 你希望crunch开始的最小长度字符串。即使对于不使用该值的参数,也需要此选项。 |
max-len | 您希望crunch结束的最大长度字符串。即使对于不使用该值的参数,也需要此选项。 |
charset string | 您可以指定crunch要在命令行上使用的字符集,如果留空,crunch将使用默认字符集。顺序必须是小写字符、大写字符、数字,然后是符号。如果你不遵循这个顺序,你将得不到你想要的结果。必须为字符类型或加号指定值。注意:如果要在字符集中包含空格字符,则必须使用字符对其进行转义,或将字符集括在引号中,i.e. "abc "。示例见示例3、11、12和13。 |
选项:
参数 | 介绍 |
---|---|
-b number[type] | 指定输出文件的大小,仅当使用-o START时有效,即:60MB输出文件将采用起始字母结尾字母的格式例如:./crunch 4 5 -b 20mib -o START。将生成4个文件: aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt 。有效的数据单元类型是 kb, mb, gb, kib, mib, and gib.前三种类型基于1000,而后三种类型基于1024。注意,数字和类型之间没有空格。例如, 500mb 是正确的,500 mb 是不正确的。 |
-c number | 指定要写入输出文件的行数,仅在使用-o START时有效,i.e.: 60。输出文件将以起始字母和结束字母的格式为例:./crunch 1 1 -f /pentest/password/crunch/charset.lst mixalpha-numeric-all-space -o START -c 60。将生成2个文件:a-7.txt 和 8- .txt。第二个文件名中斜杠的原因是结尾字符是空格,ls必须对其进行转义才能打印。是的,在指定文件名时,您需要输入,因为最后一个字符是空格。 |
-d numbersymbol | 限制重复字符的数量。 -d 2@将小写字母限制为像aab和aac一样输出。 将不会生成aaa,因为这是a的3个连续字母。 格式是数字然后是符号,数字是连续字符的最大数量,符号是您要限制的字符集的符号,i.e. @,%^。参见示例17-19。 |
-e string | 指定crunch应该提前停止的时间 |
-f /path/to/charset.lst charset-name | 从charset.lst中指定字符集 |
-i | 反转输出,以便获得aaa,baa,caa,daa,aba,bba等,而不是aaa,aab,aac,aad等 |
-l | 当您使用-t选项时,此选项告诉紧缩应该将哪些符号视为文字。 这将允许您将占位符用作模式中的字母。 -l选项的长度应与-t选项的长度相同。 参见示例15。 |
-m与-p合并 | 请改为使用-p。 |
-o wordlist.txt | 指定要将输出写入的文件,e.g. wordlist.txt |
-p charset OR -p word1 word2 ... | 告诉crunch生成没有重复字符的单词。默认情况下,压缩将生成一个单词列表大小为#of_chars_in_charset ^ max_length。这个选项将生成#of_chars_in_charset!这个选项将生成#of_chars_in_charset!。!代表的阶乘。例如,字符集是abc和最大长度是4..在默认情况下,Crunch将生成3^4 = 81个单词。这个选项将生成3!= 3x2x1 = 6个单词(abc, acb, bac, bca, cab, cba)。这必须是最后的选择!这个选项不能与-s一起使用,它忽略最小和最大长度,但是您仍然必须指定两个数字。 |
-q filename.txt | 告诉crunch读取filename.txt并对所读取的内容进行排列。这类似于-p选项,只是它从filename.txt获取输入。 |
-r | 告诉crunch从它停止的地方继续生成单词。只有在使用-o时-r才有效。必须使用与生成单词的原始命令相同的命令。唯一的例外是-s选项。如果原始命令使用-s选项,则必须在恢复会话之前删除该选项。只需在原始命令的末尾添加-r。 |
-s startblock | 指定一个起始字符串,e.g. 03god22fs |
-t @,%^ | 指定一个模式,e.g. @@god@@@@ 唯一的 @'s, ,'s, %'s, 和 ^'s 将会改变。@ 将插入小写字符。, 将插入大写字符。% 将插入数字。^ 将插入符号。 |
-u | -u选项禁用print百分比线程。这应该是最后的选择。 |
-z gzip, bzip2, lzma, and 7z | 压缩-o选项的输出。 有效参数是gzip,bzip2,lzma和7z。gzip是最快的,但是压缩是最小的。 bzip2比gzip慢一点,但压缩效果更好。 7z最慢,但压缩效果最佳。 |
i.e.:举例
e.g.:例如
示例:
例子1
crunch 1 8
crunch将显示一个从a开始到zzzzzz结束的单词列表
例子2
crunch 1 6 abcdefg
crunch将使用字符集abcdefg显示一个单词列表,该字符集以a开头并以gggggg结尾
例子3
crunch 1 6 abcdefg
字符串末尾有一个空格。 为了使紧缩空间能够使用,您需要使用字符对其进行转义。 在此示例中,您也可以在字母两边加上引号,而不需要,即“ abcdefg”。 Crunch将使用字符集abcdefg显示一个单词表,该字符集以a开头,以(6个空格)结尾
例子4
crunch 1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt
Crunch将使用charset.lst中的mixalpha-numeric-all-space字符集,并将单词表写入名为wordlist.txt的文件中。 文件将以a开头,以" "结束。
例子5
crunch 8 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt -t @@dog@@@ -s cbdogaaa
Crunch应该使用charset.lst中的mixalpha-number-all-space字符集生成一个8个字符的单词表,并将该单词表写入名为wordlist.txt的文件中。该文件将以cbdogaaa开头,以“dog”结尾
例子6
crunch 2 3 -f charset.lst ualpha -s BB
从BB开始生成单词表,以ZZZ结尾开始处理。 如果您必须在中间停止生成单词表,这将很有用。 只需执行尾部wordlist.txt并将-s参数设置为序列中的下一个单词即可。在开始之前,请确保重命名原始的wordlist,因为压缩将覆盖现有的wordlist。
例子7
crunch 4 5 -p abc
这些数字尚未处理,但是是必需的。
crunch将生成abc, acb, bac, bca, cab, cba。
例子8
crunch 4 5 -p dog cat bird
这些数字尚未处理,但是是必需的。
crunch会生成birdcatdog, birddogcat, catbirddog, catdogbird, dogbirdcat, dogcatbird。
例子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
例子10
crunch 4 5 -b 20mib -o START
会生成4个文件:aaaa-gvfed.txt,gvfee-ombqy.txt,ombqz-wcydt.txt,wcydu-zzzzz.txt,前三个文件为20MB(实际功率为2 MB),最后一个文件为11MB。
例子11
crunch 3 3 abc + 123 !@# -t @%^
将生成一个3个字符长的单词,其中第一个字符为字符,第二个字符为数字,第三个字符为符号。 指定所需字符的顺序很重要。 您必须将顺序指定为小写字母,大写字母,数字和符号。 如果您不打算使用特定的字符集,则可以使用加号作为占位符。 如您所见,我没有使用大写字符集,所以我使用了加号占位符。 以上将从a1! 开始,并在c3#处结束。
例子12
crunch 3 3 abc + 123 !@# -t ^%@
会生成以!1a开头以#3c结尾的3个字符的字符串
例子13
crunch 4 4 + + 123 + -t %%@^
加号(+)是一个占位符,因此可以为字符类型指定字符集。当crunch在命令行上设置一个+(加号)时,crunch将使用默认的字符类型设置。必须为每种字符类型指定值或使用加号。例如,如果你有两种字符类型,你必须为每种类型指定值或者使用一个加号。所以在这个例子中字符集是:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
123
!@#$%^&*()-_+=~`[]{}|:;"'<>,.?/
在上面的字符串末尾有一个空格,输出将从11a!开始,以“33z”结尾。引号显示字符串末尾的空格。
例子14
crunch 5 5 -t ddd@@ -o j -p dog cat bird
除以下之一以外的任何字符:@,%^ 是要置换的单词的占位符。@,%^ 符号的功能与-t相同。如果要在输出中使用@,%^,则可以使用-l选项指定要将紧缩字符视为文字的字符。
所以结果是
birdcatdogaa
birdcatdogab
birdcatdogac
<skipped>
dogcatbirdzy
dogcatbirdzz
例子15
crunch 7 7 -t p@ss,%^ -l a@aaaaa
crunch现在将把@符号当作一个文字字符,而不是用大写字母替换该字符。
这将生成
p@ssA0!
p@ssA0@
p@ssA0#
p@ssA0$
<skipped>
p@ssZ9
例子16
crunch 5 5 -s @4#S2 -t @%^,2 -e @8 Q2 -l @dddd -b 10KB -o START
crunch将生成以@4#S2开始,以@8 Q2结束的5个字符串。
输出将被分解为10KB大小的文件,以文件的开始和结束字符串命名。
例子17
crunch 5 5 -d 2@ -t @@@%%
crunch将生成以aab00开头并以zzy99结束的5个字符串。注意,aaa和zzz不存在。
例子18
crunch 10 10 -t @@@%%%%^ -d 2@ -d 3% -b 20mb -o START
crunch将生成10个以aab开头的字符串 !0001!! 在zzy9998结束时,输出将被写入20mb文件。
例子19
crunch 8 8 -d 2@
crunch将生成8个字符,将相同数量的小写字符限制为2个。crunch将开始于aabaabaa,结束于zzyzzyzz。
例子20
crunch 4 4 -f unicode_test.lst japanese -t @@%% -l @xdd
crunch将从unicode_test字符集文件中加载一些日语字符。输出将从 @日00 开始,到 @語99 结束。
重定向
-
从2.6版开始,Crunch将显示将要生成多少数据。 在2.7中,它还将显示将生成多少行。 现在,Crunch将等待3秒钟,然后开始生成数据,如果发现值对于应用程序太大,您可以按Ctrl-C取消Crunch。
-
我在charset.lst中添加了十六进制低位(0123456789abcdef)和十六进制高位(0123456789ABCDEF)。
-
一些人要求我增加对空格字符的支持。 crunch始终在命令行和charset.lst中支持空格字符。要在命令行中添加空格,必须使用/字符对其进行转义。有关语法,请参见示例3。您可能需要转义其他字符!或#取决于您的操作系统。
-
如果从2.7开始生成文件,则每10秒将收到%完成。
-
从3.0开始,我必须将-t *字符更改为a,因为*是保留字符。如果在*前面加上,您仍然可以使用它。是的,它破坏了紧缩的语法,我尽力避免这样做,但是在这种情况下,进行更改以获得长期支持会更容易。
-
缺少某些输出。 没有生成文件。主要的解释是磁盘空间不足。 如果您已验证有足够的磁盘空间,则问题很可能是文件名以句点开头。 在Linux中,以句点开头的文件名被隐藏。 要查看它们,请执行ls -l。*
-
Crunch说最大长度和最小长度应与您指定的图案大小相同,但是长度设置正确。这通常意味着您的模式包含需要转义的字符。在bash中,您需要转义以下内容:&,*,空格,,(,),|,',“,;,<,>。bash中的转义字符是。因此具有&和的模式其中的*看起来像这样:
crunch 4 4 -t &*d@
对于转义字符,另一种方法是用引号将字符串括起来。例如:
crunch 4 4 -t "&*d@"*
如果要在模式中使用 ",则需要像这样转义它:crunch 4 4 -t "&*"@"
请注意,不同的终端具有不同的转义字符,并且可能具有需要转义的不同字符。 请检查终端的手册页中是否有转义字符和需要转义的字符。
-
使用-z 7z选项时,7z不会删除原始文件。 您将必须手动删除这些文件。