# 乌云归档：拆分密码

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2015-11-26T02:36:00Z
Canonical: https://wepostx.com/topics/1203

> 乌云历史资料归档
>
> **原始作者：** 路人甲
> **原始编号：** superkieran-wooyundrops:910
> **原始发布时间：** 2015-11-26 10:36
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

# 0x00 研究范围

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

# 0x01 实际数据分析

- Gmail 500W明文密码

- 个人以往渗透实例

- 美国姓名top2000
在以往的渗透过中发现绝大多数企业的web服务是不允许注册，都是由某个人或系统分配的，而在这之中又有大部分的分配是人为分配，这就引出了我今天研究的主题《拆分密码》。
人们在分配密码的时候是无法做到计算机那样随机的。多数都是根据某个关键字加上一些字符如企业名，时间，123等，这样的分配方式就给密码赋予了结构

# 0x02 密码结构

- 前缀

- 关键字

- 连接符

- 后缀

![原文图片](/media/2016/06/e04c0da49a1828de24fee172226ff4fc)

### 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为例子，我也是看了这个站点的渗透测试报告才触发我写这篇文章

```text
[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|
```

![原文图片](/media/2016/06/b7413c3b6f37947e755cb6f9f7f230da)

当然也有现成工具 cewl

![原文图片](/media/2016/06/bb1e49ea193e8a08df10af6aaf10dfe3)

### 2.)前缀与后缀
在Gmail 500W明文密码中，我用邮件名作为关键字进行分析：

- 500W密码中有11561条密码是用用户名做关键字且排除了用户名为密码和用户名重复为密码。

- 11561条密码中有791条是前缀加关键字的模式

![原文图片](/media/2016/06/df49221f7f709921ba55a7feaf3b9c2b)

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

![原文图片](/media/2016/06/2e5bcf69f7bab5059ff073c0b429ebe3)

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

![原文图片](/media/2016/06/9bb0e9c5174068b13082445eac9783e5)

从上面的数据可以分析出，前缀加关键字加链接符加后缀的模式最少，值得我们注意的的是oliver+关键字+@+gmail.com这个模式，很经典。前缀和后缀中使用最多的1和123,前缀中值得注意的是iam，big,the，大多数前缀都使用的名词或者短语，[email protected],[email protected][email protected]
那么问题就来了，为什么是它们?
在我的研究中，我将前缀和后缀分为4个类型:

- 连续性 字符连续的递增

- 重复性 字符重复

- 规则性 利用字符体现某种规则
- 键盘规则

- 寓意规则

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

```text
1234567890 qwertyuiopasdfghjklzxcvbnm
```

- 键盘的设计是根据人体工程学设计的，最方便的键就是使用频率最高的键。玩过魔兽世界中pve无脑冰法的应该知道，【寒冰箭】基本都放数字1键，因为在抛弃字母键后，无名指按1键最方便，且连续按下123也最快捷。所以在 应付性 下满足系统要求（密码不为纯数字或纯字符）以字母做为关键字的密码，单数字前缀概率最大的为1

- 寓意规则 1(最大）,6(顺的寓意）,8（发的寓意）

- 键盘规则 ①中档键>右手>食指 J

- 寓意规则 以名字首字母为寓意 A

![原文图片](/media/2016/06/6c00a58ed9e300fd5dd0c9593cbeb7d0)

```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应该做为后缀,前缀可以为空，链接符可以为空，后缀可以为空

![原文图片](/media/2016/06/f75a46c51b934f041c4e2d95a4e139a5)

### 4.)组合方式

- 前缀+关键字
- 前缀多应付性和寓意性

- 前缀+关键字+链接符+后缀
- 关键字多为寓意性

- 关键字+后缀
- ALL

- 关键字+链接符+后缀
- 后缀多为键盘规则和连续性

# 0x02 总结

一切非随即密码都是为了方便记忆，现在爆破的核心不是弱密码，而是使用有规则密码的弱用户。人是懒惰的，为了方便记忆会将自己的记忆做为密码记忆。
注①：《电脑键盘字母的优化排列》 这篇文章仅仅是我写社工字典程序的理论框架，如果有与科学理论违背的地方，以科学理论为主

## Replies
