上面数据为passwd文件的一个片段,我们可以发现每一行都被分号分为了7部分。这七部分分别为:
用户名密码(passwd文件人人可读,所以不放明文密码,真正的密码在/etc/shadow文件中)uidgid用户注释主目录登陆的shell类型(bash/zsh/sh等)也是被分号隔开格式为:
用户名密码,其中\$6\$是表示一种类型标记为6的密码散列suans fa,这里指SHA-512哈希算法,1 代表 MD5,5 代表 SHA-256,6 代表 SHA-512,salt 表示密码学中的 Salt, 系统随机生成 encrypted 表示密码的 hash,其中f0EotKbw为salt。“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。“最小时间间隔”指的是两次修改口令之间所需的最小天数。“最大时间间隔”指的是口令保持有效的最大天数。“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。hashcat -m 1800 -a 0 -o result.txt hash.txt dict.txt 常用命令如上,hash.txt是保存hash密码的文件,dict.txt是密码本。-a 0表示使用自带的密码本爆破。 -m 1800表示加密方式为$6$。
-o result.txt表示将结果输出到文件result.txt
加上–show可以直接输出结果在命令行,如下图: 可以将 -a 的参数改为3,这样使用hashcat自带的字典进行爆破。