在渗透测试前期,信息收集是非常重要的工作,需要对目标的各种信息进行分析,拆分和融合,目的是对目标进行全方位的了解,其中一个直接产出就是生成账号密码的字典,为后续的鱼叉,水坑攻击做好准备。很多时候的成功攻击,都是从一个个脆弱的密码开始的。
接下来介绍的工具叫做pydictor
代码语言:javascript复制地址https://github.com/LandGrey/pydictor/
他可以帮助我们快速的生成普通爆破字典、基于网站内容的自定义字典、社会工程学字典等等一系列高级字典
还可以使用内置工具,对字典进行安全删除、合并、去重、合并并去重、高频词筛选
生成独一无二的高度定制、高效率和复杂字典,生成密码字典的好坏和你的自定义规则、能不能熟练使用pydictor有很大关系
兼容性强python 2.7版本还是python 3.4 以上版本,pydictor都可以在Windows、Linux 或者是Mac上运行
pydictor可以生成的所有字典的类型及其说明
字典操作功能及说明对照表
支持的编码或加密方式
核心功能字典
代码语言:javascript复制1. 基础字典
python pydictor.py -base L --len 2 3 --encode b64
python pydictor.py -base dLc --len 1 3 -o /awesome/pwd
python pydictor.py -base d --len 4 4 --head Pa5sw0rd --output D:existsornotdict.txt
2. 自定义字符集字典
python pydictor.py -char "asdf123._@ " --len 1 3 --tail @site.com
3. 排列组合字典
python pydictor.py -chunk abc 123 "!@#" @ . _ " " --head a --tail @pass --encode md5
4. 语法引擎解析字典
python pydictor.py --conf 用默认的"/funcfg/build.conf"文件建立字典
python pydictor.py --conf /my/other/awesome.conf
python pydictor.py --conf "[0-9]{6,6}<none>[a-f,abc,123,!@#]{1,1}<none>" --encode md5 --output parsing.txt
5. 模式字典快速生成
# note that:
# 1. using python3 is fast than python2
# 2. one element only support single character, like: [***]{1,1}<***>
# generate pattern: abc[%d][%d][%l][%d][%d][%l][%d][%d]
python3 pydictor.py --head abc --pattern "[0-9]{1,1}<none>[0-9]{1,1}<none>[a-z]{1,1}<none>[0-9]{1,1}<none>[0-9]{1,1}<none>[a-z]{1,1}<none>[0-9]{1,1}<none>[0-9]{1,1}<none>" -o output.txt
6. 规则扩展字典
python pydictor.py -extend bob --level 4 --len 4 12
python pydictor.py -extend liwei zwell.com --more --leet 0 1 2 11 21 --level 2 --len 6 16 --occur "<=10" ">0" "<=2" -o /possbile/wordlist.lst
插件型字典(可自己根据API文档开发)
代码语言:javascript复制1. 一段时间内生日字典
python pydictor.py -plug birthday 19800101 20001231 --len 6 8
2. 身份证后4/6/8位字典
python pydictor.py -plug pid4
python pydictor.py -plug pid6 --encode b64
python pydictor.py -plug pid8 --encode sha1 -o pid8.txt
3. 网页原始关键词字典
python pydictor.py -plug scratch 用/funcfg/scratch.sites 文件中的多行 url 作为输入
python pydictor.py -plug scratch http://www.example.com
内置工具(可自己根据API文档开发)
1. 字典合并工具
python pydictor.py -tool combiner /my/mess/dir
2. 字典比较工具
python pydictor.py -tool comparer big.txt small.txt
3. 词频统计工具
python pydictor.py -tool counter s huge.txt 1000
python pydictor.py -tool counter v /tmp/mess.txt 100
python pydictor.py -tool counter vs huge.txt 100 --encode url -o fre.txt
4. 字典处理工具
python pydictor.py -tool handler raw.txt --tail @awesome.com --encode md5
python pydictor.py -tool handler raw.txt --len 6 16 --occur "" "=6" "<0" --encode b64 -o ok.txt
5. 安全擦除字典工具
python pydictor.py -tool shredder 擦除当前输出目录下所有字典文件
python pydictor.py -tool shredder base 擦除当前输出目录下所有以"base"开头的字典文件
python pydictor.py -tool shredder /data/mess
python pydictor.py -tool shredder D:mess1.zip
6. 合并去重工具
python pydictor.py -tool uniqbiner /my/all/dict/
7. 字典去重工具
python pydictor.py -tool uniqifer /tmp/dicts.txt --output /tmp/uniq.txt
8. 多字典文件组合工具
python pydictor.py -tool hybrider heads.txt some_others.txt tails.txt
社工字典 这个社工字典的功能,在渗透测试中非常有用。生成出来的命中率也是非常高的。上面的字典生成方式,没有针对目标本身进行生成,具有普遍性,从而导致无法精准打击目标。社工字典的方式,通过我们输入目标的一些信息,可以针对这个目标生成定制化的字典。
代码语言:javascript复制python pydictor.py --sedb
可以看到有非常多的选项提供,根据目标任务的信息生成定制化的字典去爆破成功率高很多 例如设置以下信息
代码语言:javascript复制cname kevin
birth 20200101
phone 13888888888
email 123@qq.com
usedpwd qwer123456.
在results文件夹目录下会生成我们的字典
可以看到生成的字典都是根据我们提供的信息来生成的。生成了6022条还是非常强大的 包括生成身份证后x位,生日等的功能也是非常实用的
详细用法可以参考官方文档 https://github.com/LandGrey/pydictor/blob/master/docs/doc/usage.md