黑客

shadow的哈希值爆破

2019-11-13  本文已影响0人  喵了个咪0

一:前言:

Linux 系统下,用户的密码会被加密保存在文件/etc/shadow中,关于密码的加密方式与破解方法有哪些呢?本文尝试对这一部分内容进行整理,介绍相关基础知识,测试常用方法,帮助大家对此有更直观的认识。

二:linux下面密码的保存形式

linux系统中有一个用户密码配置文件/etc/shadow,里面存放着用户名,Hash加密后的值,最后一次修改密码的日期(1970年1月1日距今的天数),密码的最小生存周期,最大生存周期等等,具体解释如下:

1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号

2)“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。

3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。

4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。

5)“最大时间间隔”指的是口令保持有效的最大天数。

6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。

8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

01:Hash

建立一个测试用户:test密码:pass的一条完整的/etc/shadow记录实例如下:

test:$6$f0EotKbw$sLAujh0EleiXNAuoph20iL517cXlcExWLATwz3xgCEyYlsIECUa9nuDdiT5/ntWfJDfxFhYGcMknkCq5Awgf20:15118:0:99999:7:::

其中:

test 是用户名

$6$  是表示一种类型标记为6的密码散列suans fa,这里指SHA-512哈希算法,1 代表 MD5,5 代表 SHA-256,6 代表 SHA-512 salt 表示密码学中的 Salt, 系统随机生成 encrypted 表示密码的 hash

f0EotKbw 指的是加盐(Salt)值

哈希又叫散列,是由散列算法生成的散列值.

关于Hash的特性:

原始密码经哈希函数计算后得到一个哈希值;

改变原始密码,哈希函数计算出的哈希值也会相应改变;

同样的密码,哈希值也是相同的;

哈希函数是单向、不可逆的。也就是说从哈希值,你无法推算出原始的密码是多少

三:hashcat的安装:

apt install hashcat

四:采用hashcat暴力破解:

hashcat -m 1800 -a 0 -o found.txt crack.hash rockyou.txt

-m参数是告诉hashcat解密的Hash类型,1800则是指SHA-512(Unix)类型密码;

-a参数是指定攻击模式,0代表Straight模式,使用字典进行破解尝试;

-o参数是指输出结果文件,输出到found.txt文件中;

crack.hash是整理后的要破解的hash列表;

rockyou.txt是准备的密码字典文件.

将“$6$f0EotKbw$sLAujh0EleiXNAuoph20iL517cXlcExWLATwz3xgCEyYlsIECUa9nuDdiT5/ntWfJDfxFhYGcMknkCq5Awgf20”保存在crack.hash,rockyou.txt为爆破所用的字典,执行,如果好运破解成功,就可以在found.txt中看见破解成功的密码了

参考文章:

https://blog.csdn.net/u010953692/article/details/84137954

https://blog.csdn.net/c465869935/article/details/51491913

https://blog.csdn.net/zsj2102/article/details/81166534

https://www.freebuf.com/sectool/164507.html

上一篇 下一篇

猜你喜欢

热点阅读