浅析弱口令

浅析弱口令.png

0x00 前言

弱口令其实是长期以来一直存在的问题,直到今天我们还能经常听某个著名厂商公司因为存在弱口令问题而导致大量内部或外部用户信息泄露,甚至商业计划和机密泄露,所以一个安全密码设置的重要性不言而喻,涉及密码,不得谈到密码的强弱,当然强弱密码的区分没有一个严格明确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或容易被破解工具破解的口令均为弱密码,在此我粗略谈谈弱密码方面,也就是我们经常说到的弱口令。

其实设置密码的强弱很大程度上与这个人的个人习惯和安全意识有关,当然还是受其他的因素的影响,比如公司出于安全考虑要求设置强密码等其他强制硬性要求,个人觉得弱口令可以大致分为两类,一类就是公共弱口令,另一类就是个人弱口令。

0x01 公共弱口令

公共弱口令也就是根据大量的密码数据统计得出的出现频率较高弱口令,关于这方面的弱口令统计结果有很多,在此我就列举一些出现频率比较高的公共弱口令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
0123456789
aa123456789
zxcvbnm
QAZ123
asdfghjkl
wang123456
qwer1234
123456789qq
q123456789
1qazxsw2
100200
123qweasd
7894561230
7758521
123456789
zxc123
qq123123
abcd123
7758258
zhang123
123321
1A2B3C4D
asd123
789456123
5845201314
qwe123
123456.
000000000
qq123456789
123698745
1q2w3e4r
nihao123
123123
w123456
1233211234567
z123456789
520520
7708801314520
110120
147258369
1234554321
123qwe
11111111
a111111
584520
456852
wang123
123456789..
1q2w3e
123abc
qaz123456
123456
123456asd
zxcvbnm123
qazwsxedc
31415926
1314520520
aaaaaa
123456789a
caonima
1123581321
woaini1314
1234567891234567
147258
5201314a
qwe123456
love1314
159753
5841314520
666666
aa123456
1q2w3e4r5t
5201314
1234567891
1234567890
123456abc
qazwsx123
iloveyou
741852963
abc123
123456789.
12qwaszx
1111111111
caonima123
111111a
q1w2e3
q123456
aptx4869
0000000000000000
www123456
woaini123
12345678910
asdasd123
0000000000
asd123456
abc123456
zxc123456
qq5201314
a12345678
qq123456
5211314
1111111111111111
1234567899
123123a
123654
110110
12345678
12345678900
123123123
abc123456789
a000000
123456q
woaini1314520
abcd123456
aaa123
000000
123000
qwertyuiop
a5201314
123456a
s123456
1234qwer
abcd1234
1357924680
123456aa
qwerty
753951
woaini
5201314520
111111111
as123456
1472583690
z123456
123456789abc
qq1314520
1qaz2wsx
159357
9876543210
112233
1314521
1314520
000000a
987654321
123456qq
123456..
asdasd
521521
52013145201314
aaa123456
135792468
w123456789
a123456789
woaini521
woaini520
aini1314
q1w2e3r4
111111
123456789q
110120119
a123123
a123456
a123321

0x02 个人弱口令

个人弱口令往往与这个人的个人信息(姓名,生日,手机号,特殊昵称,爱好,社交软件账号,常用username,邮箱…),关系成员(家庭成员,男女朋友…),所处环境(车牌号,公司信息比如公司名称,公司成立时间或地点,公司domain等…),还有特殊的指定字符(数字,单词…),在这里我也列举一些经常出现的组合:

生日                 19901014(农历和国历都可以考虑)
身份证后六位         143256
自己或关系成员中文名拼音           Xiaoming ...
自己或关系成员中文名拼音+生日      xiaoming19901014 ...
自己或关系成员中文名拼音+特定字符  xiaoming5201314 ...
username+生日        mingxiaozi19901014 ...
username+特定字符    mingxiaozi5201314 ...
公司名拼音           JingDong  (这里没有特定针对某东,只是举个例子,虽然他们曾经出新过此类问题)
公司名拼音+特定字符  jingdongxxxx
公司domain           www.xx.com
公司domain+时间      xx20150101
username+domain      mingxiaozijd
组合有很多种,没有一一列举,可以自由发挥。

另提示一点:当系统要求密码组合必须包含大写字母时候,根据中国人密码设定习惯,会有83%的人将大写字母,且是唯一存在的大写字母放在第一位。

0x03 弱口令生成

关于弱口令生成可以利用相关工具或者脚本,工具的话网上有很多,可以自行搜索下载,在这里我提供自己写的python小脚本,如果有需要请自行修改,仅作参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# -*- coding: utf-8 -*-
weak_password=['000000','0000000','111111','11111111','112233','123123','123321','123456','12345678','87654321','123456789','987654321','1234567890','0123456789','654321','666666','888888','666888','66668888','abcdef','147258369','abcabc','abc123','a1b2c3','aaa111','123qwe','qweasd','admin','root','pass123','p@ssword','password','passwd','iloveyou','woaini','5201314','qq123456','taobao','wang1234']
foreign_weak_password=['password','123456','12345678','qwerty','abc123','monkey','1234567','letmein','trustno1','dragon','baseball','111111','iloveyou','master','sunshine','ashley','bailey','passw0rd','shadow','123123','654321','superman','qazwsx','michael','football','qwerty','welcome','ninja','hello','happy','anything','abcabcabc','qwert123','system','command','adminstrator','mouse','harddisk']
name=['xiaoming','Xiaoming','xiaoMing','xiao_ming','xiaoM','XMing','Xming','xl','XM']
birth=['1995','_1995','09','9','23','199509','_950923','_199509','9509','0923','19950925']
specialnum=['1314','520','000','111','123','168','1234','123456','5201314','888','666','123123']
id=['mingxiaozi','xiaolifeidao']
companyinfo=['jingdong','JongDong','jd','JD']
#自行添加更多信息
f=open('weakpasswords.txt','w')
for a in weak_password:
f.write(a+'\n')
for b in foreign_weak_password:
f.write(b+'\n')
for c in name:
for d in birth:
f.write(c+d+'\n')
f.write(d+c+'\n')
for e in name:
for f in specialnum:
f.write(e+f+'\n')
f.write(f+e+'\n')
for i1 in id:
for b1 in birth:
f.write(i1+b1+'\n')
f.write(b1+i1+'\n')
for i2 in id:
for s1 in specialnum:
f.write(i2+s1+'\n')
f.write(s1+i2+'\n')
for n1 in name:
for b1 in birth:
for s2 in specialnum:
f.write(n1+s2+b1+'\n')
f.write(s2+n1+b1+'\n')
f.write(s2+b1+n1+'\n')
#自行添加更多组合

提醒一点就是如果你添加的信息越多,组合方式越多,那么生成的字典就越大,要考虑储存的容量问题。同时也推荐使用cupp.py和crunch。

0x04 后话

欢迎大家补充:P