1 口令安全威胁
1.1 口令安全概述
现在很多地方以用户名(账户)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等。
1.2 口令安全现状
1.2.1 弱口令
类似123456、654321、admin123 等这些常见的弱密码
1.2.2 默认口令
很多应用或者系统存在默认口令。比如phpstudy 的mysql 数据库默认账密[root/root], Tomcat 管理控制台默认账密[tomcat/tomcat] 等。平时注意收集默认口令。
1.2.3 明文传输
比如HTTP|FTP|TELNET等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。这样的服务,有嗅探的风险。
2 口令破解
《第20节 简单密码破解—基于windows系统》基于windows系统介绍了简单密码破解,本文是在该文的基础上介绍得更加详细。
2.1 暴力破解
暴力破解就是利用所有可能的字符组密码,去尝试破解。这是最原始,粗暴的破解方法,根据运算能力,如果能够承受的起时间成本的话,最终会爆破出密码。下表根据不同的位数生成密码的空间大小
字符集 | 密码位数 | 密码空间 |
---|---|---|
[0-9] | 8 位 | 10^8=100000000 |
[0-9][a-z] | 8位 | 36^8=2821109907456 |
[0-9][a-z] | 1-8位 | ?? |
生成字典工具:crunch(kali自带)
crunch 1 8 0123456789abcdefghijklmnopqrstuvwxyz
#密码最短1位,最长8位,字符集为0123456789abcdefghijklmnopqrstuvwxyz
2.2 字典破解
如果 能通过比较合理的条件,删选或者滤掉一些全字符组合内容,就会打幅度降低爆破的成本。我们把筛选出来的密码组成特定的字典。用字典爆破密码也是可以的,但是这样可能会漏掉真正的密码。
密码字典大致分为以下几大类
2.2.1 弱口令字典
比如123456,admin 等这样的默认口令或弱口令
2.2.2 社工字典
人在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合“名字+生日”
[zhangsan1992]
社工字典更具针对性,准确率也比较高。
我们可以根据个人信息生成密码字典。可以使用cupp工具,但是cupp工具 是国外人开发的。常用的还有中国开发的亦思社会工程学字典生成器等。以下为在kali上安装cupp工具并使用。
apt-get update #更新软件列表
apt-get install cupp
cupp -i
假如有这样一个目标的信息:[zhangsan|ajest|19920701|dnsec|123],利用cupp生成密码字典过程如下:
2.2.3 字符集字典
如果能确定密码的字符集合,也将大大降低爆破的成本。字符集字典常见的比如真空密码字典生成器和crunch(kali自带)。
crunch:是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活的定制自己的字典文件。
使用crunch 工具生成的密码可以输出到屏幕,保存文件或另一个程序。尤其是渗透测试需要爆破的时候,字典的编排等直接影响到我们的爆破速度,对整个渗透测试流程起着十分重要的作用。
crunch的用法如下:
(1)查看帮助:man cru