【信息安全服务】使用Hashcat工具对shadow文件进行弱口令检查

1.前言

本博客将介绍Kali系统中的HashCat工具的使用,利用Hashcat工具对linux系统下shadow文件进行弱口令检查。

2.环境

  1. Centos 7
  2. Kali-Linux -2018

3.Shadow文件

当前的Linux系统出于安全性考虑,etc/passwd 文件中并没有存储Linux用户的密码信息,而是转移到了/etc/shadow文件下,又称为“影子文件”。该文件只有root用户才能read权限,其他用户无权查看,使密码泄露风险降低。同时shadow文件中存储的密码采用SHA512散列加密,相比较原始的MD5,加密等级更高。

shadow文件密码存储格式:$id$salt$encrypted$

id代表使用的加密算法:

id Method
1 MD5
2a

Blowfish(not in mainline glibc;added in some Linux distribution)

5

SHA-256(since glibc 2.7)

6

SHA-512(since glibc 2.7)

 salt是长度1-16字符的随机数,随机数的引入增大了破解难度

encrypted是最终的密文,即通过加密算法和salt(盐参)计算的最终结果

示例:

$6$PUehV6sk$Y1ctlOYUyKJMO868w7C78xeCvkGz4R7M73Hs6cg.IsMSN.2QryqCbbno5wvklwHn4is//ibMQA0TIWiledmp80

该shadow文件显示,使用加密算法为SHA-512,随机数(salt)为PUehV6sk,加密密钥为Y1ctlOYUyKJMO868w7C78xeCvkGz4R7M73Hs6cg.IsMSN.2QryqCbbno5wvklwHn4is//ibMQA0TIWiledmp80

4.HashCat工具

4.1 介绍

hashcat系列软件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU来进行密码破解。在操作系统上支持Windows、Linux平台,并且需要安装官方指定版本的显卡驱动程序,如果驱动程序版本不对,可能导致程序无法运行。NVIDIA users  GPU破解驱动需要ForceWare 331.67以及更高版本,AMD 用户则需要Catalyst 14.9以及更高版本,可以通过Catalyst 自动侦测和下载检测工具来检测系统应该下载那个版本,下载地址:地址,选择合适的版本安装即可。其官方github 网站地址为:地址

4.2 使用参数指南

本次演示以一台远端centos的shadow文件为例,使用Kali中内置的Hashcat工具进行破解。

工具路径:

参数标准语句:

hashcat  -a 0 -m <加密模式> <shadow文本.txt> <密码文本.txt> -o 输出文本.txt

参数列表:

 -a   指定要使用的破解模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
 -m   指定要破解的hash类型,如果不指定类型,则默认是MD5
 -o   指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中
 --force  忽略破解过程中的警告信息,跑单条hash可能需要加上此选项
 --show   显示已经破解的hash及该hash所对应的明文
 --increment   启用增量破解模式,你可以利用此模式让hashcat在指定的密码长度范围内执行破解过程
 --increment-min   密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用
 --increment-max   密码最大长度,同上
 --outfile-format  指定破解结果的输出格式id,默认是3
 --username    忽略hash文件中的指定的用户名,在破解linux系统用户密码hash可能会用到
 --remove      删除已被破解成功的hash
    -r        使用自定义破解规则

Hash id对照表:

(常见ID 其他请使用--help获取)

Name Method
0 MD5
100 SHA1
1300 SHA2-224 
1400 SHA2-256
3800  md5($salt.$pass.$salt) 
3710 md5($salt.md5($pass))
4010 md5($salt.md5($salt.$pass))
1800 sha512crypt $6$, SHA512 (Unix) 
   

4.3 操作步骤

提取shadow文件,使用编辑器打开,选择关键信息($id$salt$encrypted$),保存为shadow.txt文件,提前准备一个密码字典,我们命令为dic.txt。

shadow.txt:

dic.txt

命令执行:

hashcat --force -m 1800 -a 0 shadow.txt dic.txt -o results.txt

若与字典中的弱口令碰撞成功,会输出results.txt,反之则没有弱口令。

红色框住的就是破解出的密码:

当然你可以批量执行,就是提取较多的shadow文件信息到txt文件中,从前面我们也可以看出选择一个好的字典格外重要。

感谢阅读!

猜你喜欢

转载自blog.csdn.net/keylion_/article/details/111362179