专栏首页信安之路pydictor 爆破字典生成指南

pydictor 爆破字典生成指南

pydictor 是一个使用 python 语言开发,遵循 GPLv3 协议的开源命令行工具,主要用来帮助安全研究人员生成称心如意的暴力破解字典。

以功能强大、简洁实用、适用场景多、自定义程度强为开发目标。

开源地址:

https://github.com/LandGrey/pydictor

点击阅读原文查看项目。

0x01:特点与功能

今天主要是讲 pydictor 如何结合渗透测试过程常见的场景使用,特点与功能:

https://github.com/LandGrey/pydictor/blob/master/README_CN.md

有详细讲解,下面只梳理一下大概脉络,方便下文的理解。

特点:

1.完全使用 python 的原生库写成,不需要额外安装其它任何的 python 模块;

2.同时支持 python 2.7+ 和 python 3.4+ 版本,可在 Windows、Linux 和 Mac 平台上运行;

3. 可自定义化程度高,留出很多可配置规则的文件;

4. 爆破必备,新老皆宜.

功能:

1.基于三大字符集(d: 数字 L: 小写字母 c: 大写字母)的基础字典;

2.基于自定义字符集(包括特殊字符)的字典;

3.排列组合字典(几个字符或字符串的所有排列可能);

4.用配置文件或者符合 pydictor 字典语法的字符串直接生成字典;

5.析取网页中可能有意义的原始单词字典;

6.基于关键词生成针对性密码字典;

7.基于性别生成中国公民身份证后 4/6/8 位字典;

8.生成一段时间内的生日字典(自定义位数);

9.用 pydictor 的 handler 功能润色下自己的字典;

10.基于个人信息和规则生成社会工程学字典(呃,蹭下知名度,本质还是基于关键词,重在密码规则模式)

11.一系列和字典的整个生命周期有关的内置工具;包括字典合并、合并后去重、字典去重、单词频率统计、安全擦除字典;

12.一系列和生成优化字典有关的选项; 包括自定长度范围、字典加前缀、加后缀、编码或加密字典、用 1337 模式、控制字典所用规则的程度、根据数字、字符和特殊字符的个数或种类的多少来筛选字典、用正则表达式来筛选字典等。

0x02:使用场景

早期开发是为了让功能匹配使用场合,后期开发是让具体场景拥有对应的功能。

01:字典合并

字典都不是凭空捏造或生成的,一般都会参考前辈们公布的字典。所以,先收集百八十个字典,放到一个目录下,把字典合并起来吧。

1. 合并目录/网站路径爆破字典

2. 合并子域名字典

3. 合并用户名字典

4. 合并弱密码字典

5. 其它各式各样的字典

python pydictor.py -tool combiner /my/dict/dirpath -o comb.txt

02:词频统计

但是有时候我们通常不需要那么大的字典,选合并后字典的出现频率最高的前1000条保存吧。筛选出

最常用的网站路径/子域名/用户名/弱密码/...

修改 lib/data/data.py 中 counter_split 变量指定的分隔符 ( 默认 "\n" ),也可以统计其它字符分隔的字典词频.

python pydictor.py -tool counter vs comb.txt 1000

03:去除重复项

面对合并后的超大字典,还是不舍得只要频率高的词,路径字典有时候还是多多益善。去重下,照单全收

python pydictor.py -tool uniqifer comb.txt --output uniq.txt

或者直接合并加去重

python pydictor.py -tool uniqbiner /my/dict/dirpath --output uniq.txt

04:枚举数字字典

准备好字典了,拿最基础的试试手

1.爆破 4 位或 6 位数字手机短信验证码

2.爆破用户名ID值

生成 4 位纯数字字典

python pydictor.py -base d --len 4 4

05:简单用户名字典

不能确定是否存在某用户时,试试 1 位到 3 位的拼音字典,加上 123456 这样的几个弱口令,说不定就有意外收获:

python pydictor.py -base L --len 1 3 -o dict.txt

06:后台管理员密码字典(明文传输)

经常遇到的测试场景了,就是一个登录页,把收集到的信息都用上,生成后台爆破字典,比如

域名: test.land.com.cn

编辑名: 张美丽、Adaor、midato

公司名: 上海美丽大米有限责任公司(如有雷同纯属巧合)

座机: 568456

地址: xxx 园区 A 座 312 室

把自己常用的弱口令字典复制到 wordlist/Web 目录下,最终生成的字典会包含它们;

然后把下列信息写入 /data.txt

test land zhangmeili meili zml Adaor midato meilidami mldm shmldm 568456 A312

生成字典:

python pydictor.py -extend /data.txt --level 3 --len 4 16

弱口令字典 + 部分信息 + 生成规则 + level3,最终生成了七万多条密码,一部分密码如下:

07:后台管理员密码字典(前台普通加密)

有时候网站的密码可能不是直接明文传输过去的,程序员会用 js 简单加密下再传输过去,比如 base64 编码、md5 加密,这时候可以用 --encode 参数生成加密字典

python pydictor.py -extend /data.txt --level 3 --len 4 16 --encode b64

python pydictor.py -extend /data.txt --level 3 --len 4 16 --encode md5

08:后台管理员密码字典(前台js自定义加密)

高级点的程序员,还喜欢前端自定义个 js 加密方法,把用户名和密码加密后传输过去,比如

这时候,普通爆破工具基本都无能为力了,但是却依旧可以通过 pydictor 来生成字典;

修改 /lib/fun/encode.py 文件的 test_encode() 函数,用 python 语法仿照上图的加密方式再实现一遍加密:

然后运行命令,生成按照前端js加密方法加密后的密码字典,可以直接用burpsuite加载

python3 pydictor.py -extend /data.txt --level 3 --len 4 16 --encode test

最后通过这种方式生成符合前端加密方法的用户名字典,先探测出存在的用户名,再结合几个弱密码,爆破出来 100 多个弱口令。

需要注意的是,一般生成加密字典前要生成一个没加密的字典,因为每一项在文件中的顺序是一致的,所以爆破出来密码后,可以通过行数对照去没加密的字典中查找明文。

09:复杂格式的字典

例如,你通过 shoulderhack 和一些信息,猜到别人的密码大概是

Cxhai【三位或四位数字】_abc123@【qq,163,wy,mail 中的一个】,然后 md5 加密的值

这种复杂格式的字典,pydictor 也可以轻松的生成

python pydictor.py --conf "Cxhai[0-9]{3,4}<none>_abc123@[qq,163,wy,mail]{1,1}<none>" --encode md5

没加密前的字典:

最终加密后的字典:

10:社会工程学字典

通过配置文件定义的规则和一部分内置代码逻辑,你可以输入一些关于个人的信息,生成关于某个人可能用的密码,比如,我只知道一个的如下信息

姓名: 景林

生日:1997 年 7 月 16 日

以前用过密码:Jlin520

然后一波操作,生成了四万多条密码

嫌密码太多了?没事,只要长度 6-16 的,级别设置大点,密码会少很多;

查看下当前配置,重新生成字典,只有三千多条了

11:处理自己的字典

退一万步来讲,上面的字典都帮不了你,但是 pydictor 的 handler 功能还是可以帮你根据具体的使用场景来处理自己的字典,让自己原本的字典适用各种场合。

比如:

对方密码策略要求是 6 到 16 位;必须有数字和字母,不允许有特殊字符;前端 js 对密码 base64 编码后传输到后端。

可以用下面的命令处理自己原先的字典 raw.txt,生成符合本次爆破场景的字典:

python pydictor.py -tool handler /wordlist/raw.txt --len 6 16 --occur ">0" ">0" "<=0" --encode b64 -o /wordlist/ok.txt

0x03:结语

pydictor 的常见使用场景都简单介绍过了,另外还有一些特殊字典,比如身份证后几位、生日日期字典;内置的专门用来破解 SSH 弱口令的键盘模式字典

https://github.com/LandGrey/pydictor/blob/master/wordlist/Sys/SSH_Root_Weak_Pass.txt

等等,就不一一介绍了,相信自己看看就能理解。

结合目标的爆破场景,合理使用 pydictor,人人都是爆破小能手。

本文分享自微信公众号 - 信安之路(xazlsec),作者:LandGrey

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 生成花式密码

    大家好,我是木禾,第一次给信安之路投稿哈,因为中午刚好看到有关于 pydictor 的文章,咦,有用过。几个月前也在烦生成密码的问题,当时认真看过 pydict...

    信安之路
  • 好用的小工具分享-pydictor

    在渗透测试前期,信息收集是非常重要的工作,需要对目标的各种信息进行分析,拆分和融合,目的是对目标进行全方位的了解,其中一个直接产出就是生成账号密码的字典,为后续...

    黑白天安全
  • 信息收集之社工字典

    本次文章依然是由八戒哥哥投稿,如果大家想来七夜安全博客投稿,可以后台联系我们哈。如果文章不错,我就找七夜要几个鹅厂公仔送给大家。

    七夜安全博客
  • 突破封闭 Web 系统的技巧之正面冲锋

    在互联网安全服务公司乙方工作的人或者进行 SRC 众测等相关渗透测试时,经常碰到客户只给一个 "xxx信息管理系统"、"xxx平台"之类的一个 Web 登录界面...

    企鹅号小编
  • 突破封闭 Web 系统的技巧之正面冲锋

    在互联网安全服务公司乙方工作的人或者进行 SRC 众测等相关渗透测试时,经常碰到客户只给一个 "xxx信息管理系统"、"xxx平台"之类的一个 Web 登录界面...

    信安之路
  • 一步一步拿到学校图书馆, 资产管理,教务系统,学工系统权限的过程

    (还有一些没有拿到管理员权限的系统这里就不写了),还有就是这些漏洞现在均以上交给学校。

    黑战士
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群:很多朋友们接触安全都是通过书籍;网上流传的PDF;亦或是通过论坛里的文章,但可能经过了这样一段时间的学习,了解了一些常见漏洞的原理之后,对于漏洞挖...

    HACK学习
  • 运维安全第2节—暴力破解之基于表单的暴力破解实验

    如果一个网站没有对登陆接口实施防暴力破解的措施,或者实施了不合理的措施,则称该网站存在暴力破解漏洞。常见类型:

    阿dai学长
  • 小记 - CTF

    默认分离 binwalk -e xxx.xxx dd命令分离 # dd if=xxx.xx of=a.xxx skip=12345 bs=1 ​...

    Naraku
  • 推荐 | 一款功能强大的子域收集工具

    在渗透测试中信息收集的重要性不言而喻,子域收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:

    HACK学习
  • 推荐一款Web渗透测试数据库

    PentestDB 1 介绍 本项目用于提供渗透测试的辅助工具、资源文件 1.1 辅助工具 提供轻量级的易扩展的工具,可以快速编写exploit、添加漏洞...

    用户1467662
  • 新手指南:DVWA-1.9全级别教程之Brute Force

    目前,最新的DVWA已经更新到1.9版本 ,而网上的教程大多停留在旧版本,且没有针对DVWA high级别的教程,因此萌发了一个撰写新手教程的想法,错误的地方还...

    FB客服
  • 安全从业人员常用工具指引

    简介 一直以来嫌麻烦没注册freebuf,总是以游客的身份在看一些东西,今天特此注册了一下,首先要表扬一下freebuf,安全验证比较给力,其次感谢平台收集并整...

    FB客服
  • 介绍一款牛逼的渗透测试框架

    工欲善其事必先利其器,一件好的工具能给我们渗透测试提高很多效率,今天就介绍一款我个人觉得非常牛逼的渗透测试框架,———PentestDB(https://git...

    kevinfaith
  • Mr.Robot靶机 - 机器人先生

    靶机主题来自美剧《黑客军团》,这是一部传达极客精神和黑客文化的上佳作品,不同于《硅谷》的搞笑风格,这部剧的主角Eliot患有精神分裂,整部剧的情节都较为压抑,有...

    Ms08067安全实验室
  • HTB-Blunder-Writeup

    访问/admin目录需要用户密码登录,简单尝试fuzz无果,收获是发现这个cms是Bludit Cms。

    字节脉搏实验室
  • 星球优秀成员投稿 | 关于暴力破解常见服务以及工具的使用

    最近想写一篇关于暴力破解相关的文章,本人有写博客的习惯,都是随便写写,以便以后自己回忆知识点。

    7089bAt@PowerLi
  • FuzzDomain域名爆破工具发布以及开源

    前言 个人认为信息收集是渗透测试中最重要的部分,它将直接影响到渗透测试的结果。今天给大家分享的是信息收集中的一小部分,域名爆破。 域名爆破的重要性 域名爆破能...

    FB客服
  • Wireshark攻击行为分析

    肉鸡也称傀儡机,是指可以被黑客远程控制的机器。一旦成为肉鸡,就可以被攻击者随意利用,如:窃取资料、再次发起攻击、破坏等等。下面将利用WireShark一起学习一...

    刘銮奕

扫码关注云+社区

领取腾讯云代金券