shadow檔案的MD5密碼破解

2021-10-19 08:50:14 字數 2634 閱讀 5744

root:$1

$abcde

$luligrjwcdszq2reox7bg/:15933:0:99999:7:::

hint:密碼長度不超過6

root:$1$abcde$luligrjwcdszq2reox7bg/:15933:0:99999:7:::這是在linux下的shadow檔案中,用來存放使用者的賬戶和密碼,在/etc/shadow目錄下。

其內容用「:」號隔開,分別表示不同的內容:

1)「登入名」(root):是與/etc/passwd檔案中的登入名相一致的使用者賬號。

2)「口令」($1$abcde$luligrjwcdszq2reox7bg/):字段存放的是加密後的使用者口令字,如果為空,則對應使用者沒有口令,登入時不需要口令;星號代表帳號被鎖定;雙嘆號表示這個密碼已經過期了。

$6開頭的,表明是用sha-512加密的,$1表明是用md5加密的,$2是用blowfish加密的,$5是用 sha-256加密的;

$abcde表示加密演算法所加的鹽值為abcde;

$luligrjwcdszq2reox7bg/表示加密演算法得到的密文為luligrjwcdszq2reox7bg/。

3)「最後一次修改時間」(15933):表示的是從某個時刻起,到使用者最後一次修改口令時的天數,時間起點對不同的系統可能不一樣,例如在scolinux中,這個時間起點是2023年1月1日。

4)「最小時間間隔」(0):指的是兩次修改口令之間所需的最小天數。

5)「最大時間間隔」(99999):指的是口令保持有效的最大天數。

6)「警告時間」(7):字段表示的是從系統開始警告使用者到使用者密碼正式失效之間的天數。

7)「不活動時間」():表示的是使用者沒有登入活動但賬號仍能保持有效的最大天數。

8)「失效時間」():字段給出的是乙個絕對的天數,如果使用了這個字段,那麼就給出相應賬號的生存期。期滿後,該賬號就不再是乙個合法的賬號,也就不能再用來登入了。

9)保留字段()

所以題目是要我們破解linux下shadow檔案的密碼,其中的關鍵是$1$abcde$luligrjwcdszq2reox7bg/,表示鹽值為abcde的md5加密的密文luligrjwcdszq2reox7bg/,我們需要解出明文密碼。

descarck.c

//編譯選項:gcc -o3 descrack.c -lcrypt -o descrack

#define _xopen_source

/* see feature_test_macros(7) */

#include

#include

#include

#include

#include

#include

#include

char data[37]

="0123456789abcdefghijklmnopqrstuvwxyz"

;//待解密的密文

char

* goalpass =

"$1$abcde$luligrjwcdszq2reox7bg/"

;//儲存遍歷的明文

char mypwd[10]

;//最短的密碼長度

int minlen =1;

//最長的密碼長度

int maxlen =6;

//當前時間

time_t global_start;

void

subgenerate

(int index,

int pwdlen)

}subgenerate

(index +

1, pwdlen);}

}void

generate

(int pwdlen,

int start,

int end)

subgenerate(1

, pwdlen);}

}int

main()

puts

("在指定的範圍內沒有找到正確的密碼");

return0;

}

執行結果:

得到解密後的明文密碼123qwe,大概需要32005秒也就是8個小時53分25秒。

john the ripper的安裝過程可以參考我的另一篇文章:bugku-加密-crack it(shadow檔案解密)

進 入 src 目 錄 , 使 用 make 指 令 查 看 可 安 裝 的 系 統

選擇第七個 linux-x86-mmx,安裝完成後,退出 src 並進入 run 目錄,在 run 目錄下新建檔案,把我們要破解的內容放進去,這裡我將它命名為 root:

檔案建立完成後就可以使用 john 破解了,先進入root許可權(不然會提示許可權不夠),輸入./john root 指令

1秒鐘就得到了結果,破解結果也是123qwe,的確是不超過 6 位的密碼,驗證了我們的結果。

MD5 密碼加密

asp.net中md5加密碼的方法 page language c contenttype text html import namespace system asp.net中實現對密碼的加密 方法一 public static string encrypt string password,int ...

Shiro密碼的MD5加密 MD5鹽值加密

用md5加密演算法後,前台使用者輸入的字串如何使用md5加密,需要做的是將當前的realm 的credentialsmatcher屬性,替換為md5credentialsmatcher 由於md5credentialsmatcher已經過期了,推薦使用hashedcredentialsmatcher...

檔案md5加密

計算檔案的 md5 值 要計算 md5 值的檔名和路徑 md5 值16進製制字串 public static string md5file string filename 計算檔案的雜湊值 要計算雜湊值的檔名和路徑 演算法 sha1,md5 雜湊值16進製制字串 public static stri...