###弱口令的定义
弱口令">(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“">123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的互联网账号受到他人控制,因此不推荐用户使用
###弱口令产生原因
这个应该是与个人习惯相关与意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。相关的安全意识不够,总认为不会有人会猜到我这个弱口令的,相关的安全意识不够,总认为不会有人会猜到我这个弱口令的。
###弱口令的危害
通过系统弱口令,可被黑客直接获得系统控制权限。
###弱口令解决办法
强制对所有的管理系统账号密码强度必须达到一定的级别。不可在使用简单的admin、">123456等弱密码了,修改密码为复杂密码并加密保存,建议密码包含大小写字母,数据和特殊符号,密码长度不低于八位,如果网站存在数据泄漏漏洞(如">sql注入漏洞),务必修复漏洞。。
设置密码通常遵循以下原则:
(1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。
(2)口令长度不小于8 个字符。
(3)口令不应该为连续的某个字符(例如:">AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
(4)口令应该为以下四类字符的组合,大写字母">(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、">E-mail 地址等等与本人有关的信息,以及字典中的单词。
(6)口令不应该为用数字或符号代替某些字母的单词。
(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
(8)至少90 天内更换一次口令,防止未被发现的入侵者继续使用该口令。
###弱口令分类
公共弱口令
公共弱口令就是常见的密码,公共弱口令也就是根据大量的密码数据统计得出的出现频率较高弱口令,关于这方面的弱口令统计结果有很多,在此我就列举一些出现频率比较高的公共弱口令:
(Top 100):
qwe123 7758521 123qwe a123123 123456aa woaini520 woaini 100200 1314520 woaini123 123321
q123456 123456789 123456789a 5211314 asd123 a123456789 z123456 asd123456 a5201314 aa123456
zhang123 aptx4869 123123a 1q2w3e4r5t 1qazxsw2 5201314a 1q2w3e aini1314 31415926 q1w2e3r4
12345678 000000a 456852 as123456 1314521 112233 521521 qazwsx123 zxc123456 abcd1234 asdasd
666666 love1314 QAZ123 aaa123 q1w2e3 aaaaaa a123321 123000 11111111 12qwaszx 5845201314
s123456 nihao123 caonima123 zxcvbnm123 wang123 159357 1A2B3C4D asdasd123 584520 753951 147258
对于网站后台而言,一般为:
admin
manager
admin123
admin888
admin666
具体来说,不同的后台类型拥有不同的弱密码:
数据库(phpmyadmin):账号:">root,密码:root、root123、">123456
tomcat:账号:admin、">tomcat、manager,密码:admin、">tomcat、admin123、123456、">manager
jboss:账号:admin、">jboss、manager,密码:admin、">jboss、manager、123456
weblogic:账号:weblogic、">admin、manager,密码:weblogic、">admin、manager、123456
条件型
个人弱口令往往与这个人的个人信息(姓名,生日,手机号,特殊昵称,爱好,社交软件账号,常用">username,邮箱...),关系成员(家庭成员,男女朋友">...),所处环境(车牌号,公司信息比如公司名称,公司成立时间或地点,公司domain等">...),还有特殊的指定字符(数字,单词...),在这里我也列举一些经常出现的组合:我们可以使用这个">猜密码的网站来生成条件弱口令字典。
比如我们知道一个人,他的信息如下:
英文名:">twowang 手机号:">110
那我们就可以在这个网站上输入这些信息,然后点击下方的">“提交”
然后我们就得到了这个最有可能的密码:
另提示一点:当系统要求密码组合必须包含大写字母时候,根据中国人密码设定习惯,会有">83%的人将大写字母,且是唯一存在的大写字母放在第一位
###弱口令实列
普通的弱口令猜测
比如说,我们使用这样一段代码来演示弱口令漏洞,它模拟了某个系统的后台。
<?php
function showForm() { ?>
<?php
}
$un = @$_POST【'un'】;
$pw = @$_POST【'pw'】;
if($un == '' && $pw == '')
showForm();
else if($un == 'admin' && $pw == 'admin888')
echo '登录成功">';
else {
showForm();
echo '登录失败">';
}
把它保存为lesspass.php,将其部署后访问">
接下来我们假装不知道真实密码,开始尝试。对于管理员账户,用户名一般是admin,密码可能为">admin、admin123、admin888、">123456、123abcadmin等等。首先输入">admin和admin,尝试失败:
之后是">admin和admin123,还是失败。最后尝试">admin和admin888,成功。
Burp Suite 爆破
首先我们需要把浏览器和"> Burp 的代理配置好,打开 Burp 的拦截模式。之后我们在">lesspass.php页面中随便输入什么东西并提交,在 Burp 中就可以看到拦截的封包:
为了爆破密码,我们需要使用它的"> Intruder 功能,右键弹出菜单并选择"Send to Intruder":
之后访问"> Intruder 标签页,在 Position 子标签页中我们可以看到封包。
我们需要点击右边的">Clear按钮把所有标记清除掉,由于我们需要破解密码,我们选中密码参数值点击Add。
之后我们切换到旁边的"> Payloads 标签页,点击中间的load按钮,加载字典。我们选择之前的">top100.txt。
不要忘了要将">admin888插入进去。在下面的输入框中输入admin888,并点击旁边的">Add。
点击右上角的">Start Attack来开始爆破(老版本是Intruder -> Start Attack菜单栏),我们会看到结果列表。
我们点击">Length表头,让它按照长度来排序。可以发现有一个项目的长度与其它明显不同,那么它就是正确的结果。
PKAV Fuzze爆破
双击">Pkav HTTP Fuzzer 1.5.6.exe来打开它。另外目录下还有一份使用手册,">Pkav HTTP Fuzzer使用手册 Ver 1.0.pdf,大家可以参考这个手册。这个教程只会讲用到的功能
它的主界面是这样的:
左边是">“请求包”输入框,我们需要填写整个
HTTP 封包(就是 Burp 中的Proxy ->
Intercept选项卡中的内容),我们将其复制过来。然后我们选中pw位置的">admin,点击下面的“添加标记”:
我们再来看看右边的">“重放设置”,“重放模式">”和“变体赋值”都不用改动,我们点击下方的">“导入”按钮,选择之前的top100.txt。
之后再">“添加”按钮右边的输入框中输入admin888,然后点击">“添加”。
然后我们点击下方的">“发包器”选项卡,在新的界面中直接点“启动">”:
然后我们点击">“长度”表头,让它按照长度排序。
我们可以看到,仅当密码为">admin888时长度为 6,其它都是其它数值,那么它就是正确密码
###弱口令漏洞描述
通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令,常见弱口令有:">
1、数字或字母连排或混排,键盘字母连排(如:123456,abcdef,">123abc,qwerty,1qaz2wsx等)">
2、生日,姓名+生日(利用社工非常容易被破解)
3、短语密码(如:5201314,woaini1314等)
###弱口令生成
关于弱口令生成可以利用相关工具或者脚本,工具的话网上有很多,可以自行搜索下载,在这里我提供自己写的">python小脚本,如果有需要请自行修改,仅作参考:
# //代码效果参考:http://www.jhylw.com.cn/423421385.html
- - coding: utf-8 --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','5//代码效果参考:http://www.jhylw.com.cn/393538323.html
20','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')
<span style="f