该更新一下你的密码字典了

声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。

前言

虽然弱口令yyds,但是随着安全意识的提升,在授权渗透测试过程中,用常规字典爆破出密码口令的概率已经越来越小了。

基于此,本文做了点工作来更新一下密码爆破字典。

不想看过程的话直接跳到最后就能白嫖字典了。

正文

密码强度

爆破密码不可能不管三七二十一,直接扔字典上去跑。首先要测试它的密码强度要求

一般可以分为:

要求 条件 强度
无要求 X条件 X
6位数字 单条件
6位数字+字母(无大小写要求) 双条件 ⭐⭐
6位数字+大小写字母 三条件 ⭐⭐⭐
8位数字+字母(无大小写要求) 双条件 ⭐⭐⭐
8位数字+大小写字母 三条件 ⭐⭐⭐⭐
8位数字+字母(无大小写要求)+特殊字符 三条件 ⭐⭐⭐⭐
8位数字+大小写字母+特殊字符 四条件 ⭐⭐⭐⭐⭐

需要注意的是,这里的6/8位是指至少是6/8位。一般情况下,如果要求是至少6位,那边密码大概率在6-9位之间,而如果要求是至少8位的话,就很有可能出现密码长度比较的情况了。

后面将根据每种情况生成对应的字典。

字符组合

所谓弱口令,即常见字符的各种组合。

常见字符这里,可能第一想到的就是123456 、111111、888、666、admin、password、aaa这种高频口令,当然实际中最多的也是这种。但是我们同样应该关注的是键盘组合

所谓键盘组合,即键盘上相邻位置或者紧挨着的字符,以及紧挨着的数字、紧挨着的字母以及紧挨着的特殊符号的排列组合,常见的比如:

1qaz2wsx1qaz!QAZ1q2w3e1234QWER-pl,0okmasd123asd123!@#asdjkl123等等。

每个人的精力都是有限的,如果一个不重要的网站要求你输入8位以上满足三条件的密码,你会怎么设置呢?(暂不考虑社工)

1qaz!QAZ123qwe!@#asd123!!asd123!@#!QAZ2wsx!QAZxsw2 是不是很大一部分都是这种。

还有一种拼音组合,根据我们的使用习惯,加入一些常见拼音也是很重要的,比如:

woainihahahamima等等。

最后,我们再将高频口令、键盘组合、拼音组合 根据长度、强度要求,进行杂糅组合,就可以生成一份比较不错的字典了。

字典生成

好了,现在已经知道了常见的字符组合形式,开始着手生成我们的字典了。

数据来源

所有原始数据均来自于 github以及在线网站https://weakpass.com/ ,该网站囊括了小到几百KB,大到几十G,各种类型的字典。

该更新一下你的密码字典了_第1张图片

在这些原始数据的基础上,按照上面的形式进行归类、提取、组合,生成我们需要的字典:

  • 高频口令:直接整合历年的top级别弱口令,去重

  • 键盘组合:首先根据键盘相邻的顺序,生成一组dict,例如,<1,2>,, 再遍历字符串中的每个字符,判断它与它后面的一个字符是否在这组dict中,当至少n-2个字符满足此条件,就认为这是一个键盘组合。

  • 拼音组合:首先建立一个拼音字典,然后在字符串中提取所有字母,然后判断这些字母是否是拼音。(只提取字母判断是因为我们把类似woaini123520aini..也视为拼音组合)

提取出来之后,整合在一起,然后再根据长度、复杂度要求,将密码字典分为如下几类:

  • 数字+字母(无大小写要求)——8位及以下

  • 数字+字母(无大小写要求)——8位及以上

  • 数字+大小写字母

  • 数字+字母(无大小写要求)+特殊符号

  • 数字+大小写字母+特殊符号

  • all-top (数字或字母的高频口令)

所有处理代码放知识星球了,如果你有自己的字典库,可以通过代码将其进行筛选,然后扩充到本字典里。

分类之后,再将各类按频率排序,生成各类型的top字典,频率排序这里我用的是Linux中的sort指令

>sort top.txt | uniq -c | sort –rn

结合社工

最后,当通用的字符组合字典爆破不出来的话,我们就要考虑结合社工信息进行测试了。

社工信息可能大家听的最多的就是姓名、手机号、出生日期、邮箱、QQ等。当然,这些都是挺好的关键字,但是如果我们只有一个后台登录框,没有用户敏感信息呢?

这时候网站的名称(包括全拼、首字母缩写、大小写形式)、域名企业名称等等也是很好的社工关键字。

将这些社工信息结合常见字符,进行组合,即为社工字典,github上有很多社工字典生成工具,如果收集到了比较多的社工信息,可以去用那些工具生成。

这里需要说明的一点是,假如只有很有限的社工关键字,比如网站的名称、域名,这里更推荐直接将社工关键字插入到现有的字典最前面或者最后面,以此来生成一份新的字典。

结果

公众号中回复“字典”,获取最新字典,最后处理之后的结果:

该更新一下你的密码字典了_第2张图片

处理脚本需要的可以去星球看看:

该更新一下你的密码字典了_第3张图片

该更新一下你的密码字典了_第4张图片

最后

感兴趣的小伙伴可以关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

你可能感兴趣的:(web安全,渗透测试)