• 字典生成_Crunch


    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 结束。

    重定向

    1. 从2.6版开始,Crunch将显示将要生成多少数据。 在2.7中,它还将显示将生成多少行。 现在,Crunch将等待3秒钟,然后开始生成数据,如果发现值对于应用程序太大,您可以按Ctrl-C取消Crunch。

    2. 我在charset.lst中添加了十六进制低位(0123456789abcdef)和十六进制高位(0123456789ABCDEF)。

    3. 一些人要求我增加对空格字符的支持。 crunch始终在命令行和charset.lst中支持空格字符。要在命令行中添加空格,必须使用/字符对其进行转义。有关语法,请参见示例3。您可能需要转义其他字符!或#取决于您的操作系统。

    4. 如果从2.7开始生成文件,则每10秒将收到%完成。

    5. 从3.0开始,我必须将-t *字符更改为a,因为*是保留字符。如果在*前面加上,您仍然可以使用它。是的,它破坏了紧缩的语法,我尽力避免这样做,但是在这种情况下,进行更改以获得长期支持会更容易。

    6. 缺少某些输出。 没有生成文件。主要的解释是磁盘空间不足。 如果您已验证有足够的磁盘空间,则问题很可能是文件名以句点开头。 在Linux中,以句点开头的文件名被隐藏。 要查看它们,请执行ls -l。*

    7. Crunch说最大长度和最小长度应与您指定的图案大小相同,但是长度设置正确。这通常意味着您的模式包含需要转义的字符。在bash中,您需要转义以下内容:&,*,空格,,(,),|,',“,;,<,>。bash中的转义字符是。因此具有&和的模式其中的*看起来像这样:

      crunch 4 4 -t &*d@

      对于转义字符,另一种方法是用引号将字符串括起来。例如:

      crunch 4 4 -t "&*d@"*

      如果要在模式中使用 ",则需要像这样转义它:crunch 4 4 -t "&*"@"

      请注意,不同的终端具有不同的转义字符,并且可能具有需要转义的不同字符。 请检查终端的手册页中是否有转义字符和需要转义的字符。

    8. 使用-z 7z选项时,7z不会删除原始文件。 您将必须手动删除这些文件。

  • 相关阅读:
    java.lang.Math.pow方法
    【动态代理】增强代理方法、代理多种方法
    Exception in thread "main" java.net.ConnectException: Connection refused: connect
    serialVersionUID设置自动添加
    三个线程之间的通信
    LinkedList源码分析
    JavaScript学习
    Java学习大纲
    w3cschool-javascript教程-学习笔记
    FreeMarker学习总结
  • 原文地址:https://www.cnblogs.com/ananing/p/13672888.html
Copyright © 2020-2023  润新知