linux 密码文件 /etc/shadow,SHA512 破解
时间:2024-04-14 08:45:25 来源:网络cs 作者:欧阳逸 栏目:卖家故事 阅读:
小贴士
哈希(又称为散列算法)不是加密,不是编码;哈希是不可逆的,加密可逆;编码解码不需要密钥,加解密需要密钥
常见的编码 & 哈希 & 加解密算法如下
编码:base64 Hex编码 Huffman编码
哈希:md5 SHA-1 SHA-128 SHA-256 SHA-512 SM3
加密:
- 对称加密(加解密密钥一样):DES AES SM4
- 非对称加密(加解密密钥不一样):RSA DSA SM2
1. shadow文件解析
文件的格式为:
{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天数}:{账户不活动天数}:{账号失效天数}:{保留}
其中{加密后的口令密码}的格式为 $id$salt$encrypted
id为1时,采用md5算法加密
id为5时,采用SHA256算法加密
id为6时,采用SHA512算法加密
salt为盐值,是对密码进行hash的一个干扰值 encrypted为散列值
与/etc/passwd一样,shadow 文件中的每个字段也用“: ::” 冒号分隔,如下所示:
用户名:系统上存在的有效帐户名。密码:您的密码采用哈希格式保存。散列值长度应至少为 15-20 个字符,包括特殊字符、数字、小写字母等。这里保存的是密码的哈希值。目前 Linux 的密码采用的是 SHA512 散列算法,原来采用的是 MD5 或 DES 算法。SHA512 散列算法的更加安全。注意,这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 “!”、“*” 或 “x” 使密码暂时失效。
所有伪用户的密码都是 “!!” 或 “*”,代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 “!!”,代表这个用户没有密码,不能登录。密码格式设置为 i d id idsalt h a s h e d , hashed, hashed,id值与 GNU/Linux 上使用的哈希算法对应如下:
上次密码更改 (last changed):上次更改密码的日期,表示为自 1970 年 1 月 1 日(Unix 时间)以来的天数。值 0 具有特殊含义,即用户下次登录系统时应更改密码。空字段表示禁用密码老化功能。最小值:密码更改之间所需的最短天数,即允许用户再次更改密码之前的剩余天数。空字段和值 0 表示没有最短密码期限。最大值:密码有效的最大天数,在该用户被迫再次更改她的密码之后。警告:密码到期前的天数,警告用户必须更改他/她的密码Inactive:密码过期后该帐户被禁用的天数。Expire:帐户的到期日期,表示为自 1970 年 1 月 1 日以来的天数。1 1 1 is MD5
2 a 2a 2a is Blowfish
2 y 2y 2y is Blowfish
5 5 5 is SHA-256
6 6 6 is SHA-512
2. John the Ripper
John the Ripper是一个流行的口令破解工具,它支持Windows和Linux平台,是一个开源软件。(也有收费版本)
这里是引用官方地址:http://www.openwall.com/john 可以复制下载链接使用wget下载
破解软件安装
1. 安装John the Ripper
wget https://www.openwall.com/john/k/john-1.9.0.tar.gz#下载安装包tar -xvf john-1.9.0.tar.gz cd john-1.9.0/src/make#找到属于自己的系统
我的系统属于linux-x86-64:
make clean linux-x86-64cd ../run/#编译好之后会产生john等文件
开始破解
./unshadow /etc/passwd /etc/shadow > password.txt#将shadow文件导入password.txt,也可以直接复制shadow文件中所有字段或第2个字段./john password.txt #对散列值进行破解cat john.pot#查看破解结果
比较复杂的密码,进行破解花费的时间会长一些
比如只破解这两个密码的方式
本文链接:https://www.kjpai.cn/gushi/2024-04-14/158371.html,文章来源:网络cs,作者:欧阳逸,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!