拆分密码

0x00 研究范围


  • 在WEB渗透中可能使用某个关键字为密码核心的密码(Mail,Vpn,后台登陆等)

0x01 实际数据分析


  • Gmail 500W明文密码
  • 个人以往渗透实例
  • 美国姓名top2000

在以往的渗透过中发现绝大多数企业的web服务是不允许注册,都是由某个人或系统分配的,而在这之中又有大部分的分配是人为分配,这就引出了我今天研究的主题《拆分密码》。

人们在分配密码的时候是无法做到计算机那样随机的。多数都是根据某个关键字加上一些字符如企业名,时间,123等,这样的分配方式就给密码赋予了结构

0x02 密码结构

  • 前缀
  • 关键字
  • 连接符
  • 后缀

Alt Text

1.)关键字

以drops.wooyun.org为例子

  • URL (二级域名,跟域名)
    • keyword=[drop,wooyun,wooyun.org]
  • 域名注册信息 (邮件,姓名,时间)
    • keyword=[xssshell,fangxiaodun,20100506]
  • 网站内容 (标题,关键字,页脚)
    • keyword=[WooYun,zhishiku,Security,exploits,hacker,0day,pentest]
  • 常用密码关键字
    • keyword=[admin,manage,pass,姓名top500]

收集网页内容关键字小脚本,对中文站没什么效果.这里以www.megacorpone.com为例子,我也是看了这个站点的渗透测试报告才触发我写这篇文章

[email protected]:wget www.megacorpone.com -O 1.html
[email protected]:cat 1.html|tr ' ' '\n'|grep '^[0-9a-Z]*[0-9a-Z]$'|sort|uniq|

Alt Text

当然也有现成工具 cewl

Alt Text

2.)前缀与后缀

在Gmail 500W明文密码中,我用邮件名作为关键字进行分析:

  • 500W密码中有11561条密码是用用户名做关键字且排除了用户名为密码和用户名重复为密码。
  • 11561条密码中有791条是前缀加关键字的模式

Alt Text

  • 11561条密码中有2308条是前缀加关键字加链接符加后缀的模式

Akt Text

  • 11561条密码中有8462条是关键字加后缀的模式

Alt Text

从上面的数据可以分析出,前缀加关键字加链接符加后缀的模式最少,值得我们注意的的是oliver+关键字+@+gmail.com这个模式,很经典。前缀和后缀中使用最多的1和123,前缀中值得注意的是iam,big,the,大多数前缀都使用的名词或者短语,[email protected],[email protected][email protected]

那么问题就来了,为什么是它们?

在我的研究中,我将前缀和后缀分为4个类型:

  • 连续性 字符连续的递增
  • 重复性 字符重复
  • 规则性 利用字符体现某种规则
    • 键盘规则
    • 寓意规则
  • 应付性 满足系统强制要求

单个字符前缀全部看做是 应付性,而没有意义的东西人们往往很难记忆,所以在应付性的情况下会选择规则性帮助记忆。10个数字26字母32个符号一共68个字符

1234567890
qwertyuiopasdfghjklzxcvbnm
  • 键盘的设计是根据人体工程学设计的,最方便的键就是使用频率最高的键。玩过魔兽世界中pve无脑冰法的应该知道,【寒冰箭】基本都放数字1键,因为在抛弃字母键后,无名指按1键最方便,且连续按下123也最快捷。所以在 应付性 下满足系统要求(密码不为纯数字或纯字符)以字母做为关键字的密码,单数字前缀概率最大的为1
  • 寓意规则 1(最大),6(顺的寓意),8(发的寓意)
  • 键盘规则 ①中档键>右手>食指 J
  • 寓意规则 以名字首字母为寓意 A

Alt Text

~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
  • 键盘规则 在输出字符的时候需要按住Shift键
    • 左手小指按Shift键 _
    • 左手大拇指按Shift键 !
  • 寓意规则 @ 像a,邮件代表符号,易记忆

多个字符我们用 连续性 重复性 规则性分析

  • 连续性 连续性字符大于2位,小于等于6位
    • 123,abc,!@#
  • 重复性 重复性字符串大于1位小于等于3位
    • 888,qq,..
  • 规则性
    • 键盘规则
      • qwe,147
    • 寓意规则
      • woshi,520,@))*,名词top100,短语top100
        • @))* == shift(2008)

3.)链接符

链接符不一定存在,弱存在只为一个单符号

  • @ 寓意规则
  • _ 应付性
  • & 键盘规则

前缀和后缀是有区别的,像woshi更应该做为前缀,qwe,888应该做为后缀,前缀可以为空,链接符可以为空,后缀可以为空

Alt Text

4.)组合方式

  • 前缀+关键字
    • 前缀多应付性和寓意性
  • 前缀+关键字+链接符+后缀
    • 关键字多为寓意性
  • 关键字+后缀
    • ALL
  • 关键字+链接符+后缀
    • 后缀多为键盘规则和连续性

0x02 总结


一切非随即密码都是为了方便记忆,现在爆破的核心不是弱密码,而是使用有规则密码的弱用户。人是懒惰的,为了方便记忆会将自己的记忆做为密码记忆。

注①:《电脑键盘字母的优化排列》 这篇文章仅仅是我写社工字典程序的理论框架,如果有与科学理论违背的地方,以科学理论为主

©乌云知识库版权所有 未经许可 禁止转载


30
王松_Striker 2016-04-07 19:14:22

666 牛逼!

30
八六子。 2016-02-17 22:36:41

好文

30
情痴 2015-12-17 11:27:13

学习了,谢谢分享

30
bfish 2015-12-16 16:11:16

没想到有人写文章了,不过我的那个分词法,前提需要有一定的基础数据,然后将社工库里的密码进行分解训练,其实这个还可以进行推算。定义一类人设置这一类人密码习惯,利用社工库查询这个人是否数据这一类,然后通过这一类人的密码习惯生成规则,生成这个人可能存在的潜在密码。

30
麦兜 2015-11-30 19:03:43

@Knight 6666 这是用了多久的abc

30
Knight 2015-11-30 16:44:43

由此可知这篇文章使用拼音输入法敲的。

30
Knight 2015-11-30 16:44:08

一切非随即密码都是为了方便记忆
错别字:随即-》随机

30
扬帆大海 2015-11-26 14:42:24

一切有人参与的系统,其最大的弱点都是人类自身。

30
1 2015-11-26 12:42:44

是克里斯托夫·拉森·肖尔斯(Christopher Latham Sholes)解决了这个问题,他发明了QWERTY键盘的布局,他将最常用的几个字母安置在相反方向,以此最大限度放慢打字时敲键速度,从而避免卡键。
措词修改下就好……

30
justforfun 2015-11-26 12:31:40

好文!

感谢知乎授权页面模版