1. 程式人生 > 其它 >linux中檢視使用者密碼為數字,附加破解(加密方式)詳解(/etc/shadow檔案)

linux中檢視使用者密碼為數字,附加破解(加密方式)詳解(/etc/shadow檔案)

技術標籤:linux

我們知道linux是一個多使用者的作業系統,也就是說在linux系統中儲存著很多不同使用者的使用者名稱及密碼。那麼如果某一個使用者的密碼忘記了怎麼辦呢?

首先我們得知道,在linux系統中,使用者名稱被存放在了/etc/passwd這個檔案中;密碼存放在/etc/shadow中。知道這兩條重要的資訊,那麼後面的事情就簡單很多了。

如果我們要檢視某個使用者的密碼,我們得先登陸為超級使用者才可檢視:

su root

然後輸入超級使用者的登陸密碼,緊接著,我們需要檢視/etc/shadow中對應使用者的密碼:

cat /etc/shadow | grep ***                #注意,我這裡的***為使用者名稱,即需要檢視哪個使用者名稱,這裡就替換為該使用者名稱

以我這裡為例(我去掉了自己的使用者名稱和密碼密文):
在這裡插入圖片描述
我們可以看到出來了一串字元,明顯不是我們當初用的密碼啊,這是怎麼回事呢?這是因為為了安全,系統將我們的明文密碼進行了加密。既然加密了,我們是不是要進行解密啊 。既然要解密,我們就得知道我們的系統使用了什麼加密方式。我們輸入以下指令:

authconfig --test | grep hashing

在這裡插入圖片描述
可以看到,我這裡顯示的密碼加密方式為MD5,那就好辦了,我們可以回到之前的問題了,我們只需要將我們的密文密碼進行MD5解密即可得到我們實際的密碼了。

我們回到之前的那一串字串。在這裡,我們對剛才的字串進行一定的解釋 。

我們拿一串字元進行舉例)

xxx:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:17969:0:99999:7:::

上面字串的格式為(大家有興趣的朋友可以做詳細瞭解,我們只需要找到我們的密文密碼):

{使用者名稱}:{加密後的口令密碼}:{口令最後修改時間距原點(1970-1-1)的天數}:{口令最小修改間隔(防止修改口令,如果時限未到,將恢復至舊口令):{口令最大修改間隔}:{口令失效前的警告天數}:{賬戶不活動天數}:{賬號失效天數}:{保留}

【注】:shadow檔案為可讀檔案,普通使用者沒有讀寫許可權,超級使用者擁有讀寫許可權。如果密碼字串為*,則表示系統使用者不能被登入;如果字串為!,則表示使用者名稱被禁用;如果字串為空,則表示沒有密碼。

我們可以使用passwd –d 使用者名稱 清空一個使用者的口令密碼。

這樣我們就清楚了, 上面的一串字元中,“xxx”為使用者名稱,“ 1 1 1Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.”即為密文密碼。

好了,現在我們拿到了密文密碼,接下來我們就可以用它進行MD5解密。

我們可以在網上搜一個線上MD5解密工具,然後將我們的密文密碼複製過去,你會驚奇的發現,我們的明文密碼就這樣拿到了,是不是很有意思呢?感興趣的朋友可以自行測試。