【口令破解】远程口令破解和本地口令破解(crunch 字典工具和hydra工具)
口令安全威胁
口令安全概述
现在很多地方以用户名(账户)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等。
口令安全现状
弱口令
类似123456、654321、admin123等这些常见的弱密码。
默认口令
很多应用或者系统存在默认口令。比如phpstudy的mysql数据库默认账密[root/root],Tomcat管理控制台默认账密[tomcat/tomcat]等。平时注意收集默认口令。
明文传输
比如HTTP|FTP|TELNET等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。这样的服务,有嗅探的风险。
口令破解
《第20节 简单密码破解—基于windows系统》基于windows系统介绍了简单密码破解,本文是在该文的基础上介绍得更加详细。
暴力破解
暴力破解就是利用所有可能的字符组密码,去尝试破解。这是最原始、粗暴的破解方法,根据运算能力,如果能够承受的起时间成本的话,最终会爆破出密码。
字典破解
如果能通过比较合理的条件,删选或者滤掉一些全字符组合内容,就会大幅度降低爆破的成本。我们把筛选出来的密码组成特定的字典。用字典爆破密码也是可以的,但是这样可能会漏掉真正的密码。
密码字典大致分为以下几大类:
- 弱口令字典:比如123456、admin等这样的默认口令或弱口令。
- 社工字典:人在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合“名字+生日”[zhangsan1992]。社工字典更具针对性,准确率也比较高。我们可以根据个人信息生成密码字典。
- 字符集字典:如果能确定密码的字符集合,也将大大降低爆破的成本。字符集字典常见的比如真空密码字典生成器和crunch(kali自带)。
远程破解工具hydra
进行口令破解时,有以下几种情况:
- 用户名未知,密码未知
- 用户名已知,密码未知
- 用户名未知,密码已知
hydra为kali自带,其常用的参数如下:
- -l: 指定一个用户名
- -L: 指定用户名字典
- -p: 指定一个密码
- -P: 指定密码字典
- -vV: 显示爆破细节
- -o: 保存爆破结果
- -f: 找到正确的密码就停止爆破
- -t: 线程
- -e
Windows口令破解
Windows口令远程破解
破解前需要先准备用户字典和密码字典,使用hydra工具进行密码破解。
Windows口令本地破解(当入侵主机时才能采用此方法)
除了可以远程爆破Windows密码,我们还可以从本地破解Windows密码。
本地Windows账户破解主要有两种方式:
- 从内存中读取Windows密码:我们可以用getpass直接从Windows系统内存中读取用户数据。
- Windows hash值破解:Windows hash值破解一共有两步操作。
Linux口令破解
Linux口令破解,也分远程破解和本地破解。
远程破解主要是爆破SSH服务,属于在线密码攻击。
本地破解需要拿到Linux的shadow文件,进行hash值破解,属于离线密码攻击。
远程破解SSH服务
我们使用hydra攻击破解SSH服务,hydra攻击已