




————————————————
“灵山栓意马,玉府锁心猿,至此,心猿归林,意马有缰。 --《抖音》”
导言:今天带来的是一个功能性十分强大的字典生成工具---pydictor.py。在渗透测试中的信息收集阶段,我们除了对ip,端口,服务,域名,中间件,系统版本等信息进行收集外,相关网站管理人员的邮箱,联系方式,个人信息等等,都可以作为我们收集的目标,为之后的账户爆破工作,字典生成,鱼叉,水坑攻击做一定的准备。
Pydictor介绍

简介:
为什么要使用pydictor ?
生成密码它总会帮到你 你可以用pydictor生成普通爆破字典、基于网站内容的自定义字典、社会工程学字典等等一系列高级字典;你可以使用pydictor的内置工具,对字典进行安全删除、合并、去重、合并并去重、高频词筛选, 除此之外,你还可以输入自己的字典,然后使用handler工具,对字典进行各种筛选,编码或加密操作;
可定制性强 你可以通过修改多个配置文件、加入自己的字典、选用leet mode 模式、长度选择、 各类字符数量筛选、各类字符种类数筛选、正则表达式筛选,甚至可通过修改 lib/fun/encode.py文件,自定义加密方法等高级操作;按照API编写标准,在/plugins/文件夹下添加自己的插件脚本, 在/tools/目录下添加自己的工具脚本等。生成独一无二的高度定制、高效率和复杂字典,生成密码字典的好坏和你的自定义规则、能不能熟练使用pydictor有很大关系;
强大灵活的配置解析功能 无需多言,熟练运用后自己体会;
兼容性强 不管你是使用的python 2.7版本还是python 3.4 以上版本,pydictor都可以在Windows、Linux 或者是Mac上运行;
安装:

Pydictor使用
用例:
Python pydictor.py -basse d --len 6 6 //生成6位纯数字字典
Python pydictor.py -base dL --len 2 4 //生成数字和小写字母组成的所有2-4位长度字典
Python pydictor.py -base dLc --len 4 6 //生成数字、小写字母和大写字母组成的所有4-6位字典
Python pydictor.py -char aAbBcC123. --len 6 8 //生成由’aAbBcC123.’ 10个字符组成的所有6位到8位字典 注: 当需要空格等特殊字符时,请加双引号包围所有自定义字符,如:”abcAB C123.”
Python pydictor.py -chunk abc ABC 123 . //生成由’abc’、’ABC’、’123’ 和’.’4个块组成的所有排列的可能性组合字典 注: 当需要空格等特殊字符时,请加双引号单独包围特殊字符,如:abc ” ” 123 asdf;此类字典的生成长度为块数的阶乘.
Python pydictor.py -plug pid6 --sex m //pid6插件 中国公民身份证后6位爆 生成中国男性公民的身份证后6位所有可能性组合字典
Python pydictor.py -plug pid8 //pid8插件 中国公民身份证后8位爆破字典生成 生成所有中国公民的身份证后8位所有可能性组合字典 注: 不支持指定生成此类字典的长度,默认的–sex参数为全体(“all”)公民
Python pydictor.py -base L --len 1 4 --head a --tail 123 //注: 指定的头和尾并不包括在指定的长度(–len参数)中,而是在原来的长度基础上额外增加的。
Python pydictor.py -base d --encode b64 //注: 支持 base64 urlencode编码, md5(32位) md516(16位) sha1 sha256 sha512加密
Python pydictor.py -base d --len 4 4 -o D:\output //注: 如指定的目录不存在, 则会尝试创建;如果创建失败,则使用或创建默认的results目录;
Python pydictor.py --conf //--conf此功能可以完成”-base”和”-char”的所有功能,并在此基础上有更精细化的提升;使用默认位置的build.conf 配置文件建立字典
Python pydictor.py --conf D:\conf\my.conf //使用指定位置的配置文件建立字典

配置文件解析规则:
解析的基本单位称为一个解析元,一个解析元包括五个解析元素,分别是:头、字符集、长度范围、编码方式、尾,其中的头与尾均可省略不写;一个标准解析元的写法:head[characters]{minlength:maxlength}<encode-type>tail,一个示例解析元,如:a[0-9]{4:6}<none>_ 其意义为生成以"a"为开头,以0到9共10个字符为字符集的,字符集生成长度为4到6位,不做任何编码的,并以"_"结尾的字典集合;
暂时只支持一行解析,生成一个字典,一个生成好的字典中的一行为一条解析的一种可能;
每一行当作一条解析,一条解析可包含一至十个解析元,以提供粒度更小的字典生成方式;如:[4-6,a-c,A,C,admin]{3:3}<none>_[a,s,d,f]{2:2}<none>[789,!@#]{1:2}<none>,就包含了三个解析元;值得注意的是字符集:既可以按照字符的大小顺序,以"-"来连接,表示用多个单个字符做为元素组成的字符集;又可以用","来分隔多个字符集,或单个字符,或单个字符串,来作为字符集中的一个元素;
支持的编码方式: none 不进行任何编码 b64 base64 编码 md5 md5 摘要输出32位 md516 md5 摘要输出16位 sha1 sha1 摘要 url urlencode sha256 sha256 摘要算法 sha512 sha512 摘要算法
从控制范围上看解析元素,长度范围的控制范围仅为字符集中的生成长度,不包括头、尾以及编码后的长度,而编码方式的控制范围为一个解析元;
配置文件的一行中的第一个字符为"#"字符的,代表注释,程序将不再解析本行;
用配置文件方式可产生精确至一位的高度可控字典,推荐有需求的人员使用;

Python pydictor.py --shred //删除默认的 results 目录及其所有字典文件
Python pydictor.py --shred base //删除当前输出目录(默认为results)下,以"BASE"开头的所有字典文件
Python pydictor.py --shred data/mess //删除整个/data/mess目录
Python pydictor.py --shred D:\mess\1.zip //删除D:\mess\1.zip 文件
Python pydictor.py --sedb //进入社工字典生成界面

其实pydictor还有很多用于字典的工具,可以用来对字典进行安全删除、合并、去重、合并并去重、高频词筛选, 除此之外,你还可以输入自己的字典,然后使用handler工具,对字典进行各种筛选,编码或加密操作;
python pydictor.py -tool comparer big.txt small.txt //对字典进行比较
。。。。。。

Pydictor小结
最后在记录一下pydictor这个工具的大致结构:

再附上它的使用说明



类似的字典生成工具还有 crunch superdic等。
“销声匿迹的日子里,我都在热爱生活,少年的梦不应止于心动,更要付诸行动。 ”
1
END
1




