首页
社区
课程
招聘
[原创]关于密码字典那些事
发表于: 2017-10-29 17:00 2129

[原创]关于密码字典那些事

2017-10-29 17:00
2129
 

关于密码你知道多少?密码也就是口令,通常作为身份验证的一部分来使用,也就是说如果密码被人盗取或者破解,那么攻击者就可以使用你的身份来做很多事情,这是你所不能接受的。在互联网上几乎每个人都有自己的密码,通常在多个网站登录都使用同一个密码,由于经常使用,所以密码也经常是容易记忆的,既然容易记忆那就很可能存在一定的规律,所以今天的主要内容就是关于密码组成的那些事,看看大家的常用密码是否中枪。

弱口令

弱口令的存在,一个很重要的原因是方便记忆,很简单不需要专门去记忆就完全可以记得住。还有一点是大众的用户不明白密码的重要性,抱着别人又不会专门来搞我的想法,即使被提醒修改密码也不会去修改。

 

针对这个的破解是最简单的,网络上出现了很多次的密码泄漏事件,其中有很多的明文密码被泄漏,经过排序计算重复,排在前面的就属于弱口令的行当,只需要提取其中的top100,说不定就能破解出很多用户的口令。在离线破解hash的时候,可以把网络上公开的密码字典全部收集起来,去重之后加入破解即可。

 

关于弱口令,freebuf上有一个文章专门做了描述:

http://www.freebuf.com/articles/web/42120.html

密码分解的几种方式

除开弱口令之后,我们来重点分析一下,其他比较复杂的密码组成。通常由于数字一共有10个,所以使用纯数字作为密码的通常都可以视为弱口令,经过牌类组合之后,十位的数字密码使用hashcat可以轻松跑完。所以纯数字密码不在我们的讨论范围之内。

字符和数字组合

关于这个组合,我们来看几个常见密码:

password123、passw0rd、0password0、123456admin、a123456a

 

这种密码的组合方式也就大概这么几种:数字在字符串后面、数字在字符串中间、数字在字符串两边、数字在字符串前边,字符串在数字串两边等等。

 

对于这些密码如何生成相应的字典来破解呢?

数字在字符串后面

对于密码:password123,我们可以分解为两个部分,一个是常用字符串一个是常用数字串。知道这个之后我们就可以通过网络上泄漏的密码字典进行分解,提取其中比较常见的字符串以及常见的数字串,然后将提取出来的两个字典进行组合,这样针对这种类型的密码就可以破解出一大部分。这种方式同样可以使用的像123456admin(数字在字符串前边)也可以使用。像0password0(数字在字符串两边)、a123456a(字符串在数字串两边)由于是三个部分的组合,所以使用上面讲述的方法,最后三个字典文件进行组合,结果非常大,破解时间需求很大,而且密码破解率也不高,所以这种密码就可以使用后面提供的方法。

数字在字符串中间

对于密码:passw0rd,这个密码的存在通常是人们为了好记,在自己想到一个比较熟悉的字符串后,将其中的字母与数字进行了替换,例如:o换为0、B换为8、e换为3、i换为1等等。所以对于这种密码的破解,就需要了解用户的心思,将常用的替换字母做一下总结,整理一个常用字符串列表,对其中的字符一一替换生成字典,这样,这种方式的密码就可以在猜到使用的字符串之后轻松破解。

数字在字符串两边、字符串在数字串两边

对于密码组合比较复制的密码,通过收集常用字符串和常用数字串然后组合的方式不太现实,所以推荐一种方法,不仅仅适用于这种,几乎可以适用于所有类型的密码组合。

字符、数字、特殊字符

在前文的基础上,加上特殊字符后,组合方式多了一种,在破解难度上增加了n多倍,所以使用猜测组合的方式已经不太适用,所以这种密码的破解方式也要使用后面要讲的密码分解方式,使得密码破解更加简单便捷。

最终密码分解方式

对于所有的密码组合,在我们的能力范围之内,能够把小于十二位的密码破解出来就已经很不错了,就别说大于十二位的密码,所以我们讨论的范围就是小于十二位密码的密码破解。

 

首先拿到几个密码,如:admin123!@#、123@#pass、1S@d5da3等,如何使用一种方式适用多种密码的分解?我的做法是:

  • 总结一份全网公开的密码字典
  • 使用脚本提取所有密码的前面的五到八位,分别存入t5.txt、t6.txt、t7.txt、t8.txt
  • 使用脚本提取所有密码的后面的五到八位,分别存入e5.txt、e6.txt、e7.txt、e8.txt
  • 对所有文件进行排序并且计算其重复数,如果密码字典过大可以选择性的提取重复数大于等于几的密码进行使用
  • 最后使用前*后的方式组合密码,形成密码字典进行破解

推荐hash破解工具

其实hashcat自带的使用的mask的方式破解八位以内的密码还是可以的,破解八位以上的就需要字典与mask、mask与mask、字典与字典的组合才能完成任务。工具如何使用,就是大家的事情了,密码字典如何收集也是大家的事情了,之前有位同学已经发了一个关于hashcat 的文章:《密码破解那些事》。大家有什么经验和建议,请大家不吝赐教。

有兴趣可以关注一下我的微信公众号 【信安之路】 基本保持每天一篇新鲜的文章,可以及时在手机微信上阅读,目前公众号上百篇文章,以渗透测试为主。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//