浅析弱口令
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等...),还有特殊的指定字符(数字,单词...),在这里我也列举一些经常出现的组合:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
生日 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
转载请注明来自4ido10n's Blog文章《浅析弱口令》