小貼士
哈希(又稱為散列算法)不是加密,不是編碼;哈希是不可逆的,加密可逆;編碼解碼不需要密鑰,加解密需要密鑰
常見(jiàn)的編碼 & 哈希 & 加解密算法如下
編碼:base64 Hex編碼 Huffman編碼
哈希:md5 SHA-1 SHA-128 SHA-256 SHA-512 SM3
加密:
? - 對(duì)稱加密(加解密密鑰一樣):DES AES SM4
? - 非對(duì)稱加密(加解密密鑰不一樣):RSA DSA SM2
1. shadow文件解析
文件的格式為:
{用戶名}:{加密后的口令密碼}:{口令最后修改時(shí)間距原點(diǎn)(1970-1-1)的天數(shù)}:{口令最小修改間隔(防止修改口令,如果時(shí)限未到,將恢復(fù)至舊口令):{口令最大修改間隔}:{口令失效前的警告天數(shù)}:{賬戶不活動(dòng)天數(shù)}:{賬號(hào)失效天數(shù)}:{保留}
其中{加密后的口令密碼}的格式為 $id$salt$encrypted
id為1時(shí),采用md5算法加密
id為5時(shí),采用SHA256算法加密
id為6時(shí),采用SHA512算法加密
salt為鹽值,是對(duì)密碼進(jìn)行hash的一個(gè)干擾值 encrypted為散列值
與/etc/passwd一樣,shadow 文件中的每個(gè)字段也用“: ::” 冒號(hào)分隔,如下所示:
- 用戶名:系統(tǒng)上存在的有效帳戶名。
- 密碼:您的密碼采用哈希格式保存。散列值長(zhǎng)度應(yīng)至少為 15-20 個(gè)字符,包括特殊字符、數(shù)字、小寫字母等。這里保存的是密碼的哈希值。目前 Linux 的密碼采用的是 SHA512 散列算法,原來(lái)采用的是 MD5 或 DES 算法。SHA512 散列算法的更加安全。
注意,這串密碼產(chǎn)生的亂碼不能手工修改,如果手工修改,系統(tǒng)將無(wú)法識(shí)別密碼,導(dǎo)致密碼失效。很多軟件透過(guò)這個(gè)功能,在密碼串前加上 “!”、“*” 或 “x” 使密碼暫時(shí)失效。
所有偽用戶的密碼都是 “!!” 或 “*”,代表沒(méi)有密碼是不能登錄的。當(dāng)然,新創(chuàng)建的用戶如果不設(shè)定密碼,那么它的密碼項(xiàng)也是 “!!”,代表這個(gè)用戶沒(méi)有密碼,不能登錄。密碼格式設(shè)置為 i d id idsalt h a s h e d , hashed, hashed,id值與 GNU/Linux 上使用的哈希算法對(duì)應(yīng)如下:
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
- 上次密碼更改 (last changed):上次更改密碼的日期,表示為自 1970 年 1 月 1 日(Unix 時(shí)間)以來(lái)的天數(shù)。值 0 具有特殊含義,即用戶下次登錄系統(tǒng)時(shí)應(yīng)更改密碼。空字段表示禁用密碼老化功能。
- 最小值:密碼更改之間所需的最短天數(shù),即允許用戶再次更改密碼之前的剩余天數(shù)??兆侄魏椭?0 表示沒(méi)有最短密碼期限。
- 最大值:密碼有效的最大天數(shù),在該用戶被迫再次更改她的密碼之后。
- 警告:密碼到期前的天數(shù),警告用戶必須更改他/她的密碼
- Inactive:密碼過(guò)期后該帳戶被禁用的天數(shù)。
- Expire:帳戶的到期日期,表示為自 1970 年 1 月 1 日以來(lái)的天數(shù)。
2. John the Ripper
John the Ripper是一個(gè)流行的口令破解工具,它支持Windows和Linux平臺(tái),是一個(gè)開源軟件。(也有收費(fèi)版本)
這里是引用官方地址:http://www.openwall.com/john 可以復(fù)制下載鏈接使用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 #找到屬于自己的系統(tǒng)
我的系統(tǒng)屬于linux-x86-64:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-685301.html
make clean linux-x86-64
cd ../run/ #編譯好之后會(huì)產(chǎn)生john等文件
開始破解
./unshadow /etc/passwd /etc/shadow > password.txt #將shadow文件導(dǎo)入password.txt,也可以直接復(fù)制shadow文件中所有字段或第2個(gè)字段
./john password.txt #對(duì)散列值進(jìn)行破解
cat john.pot #查看破解結(jié)果
比較復(fù)雜的密碼,進(jìn)行破解花費(fèi)的時(shí)間會(huì)長(zhǎng)一些
比如只破解這兩個(gè)密碼的方式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-685301.html
到了這里,關(guān)于linux 密碼文件 /etc/shadow,SHA512 破解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!