日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux密码暴力破解之SHA-512破解

發布時間:2024/1/23 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux密码暴力破解之SHA-512破解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux密碼暴力破解

由于MD5加密已經發展了很多年,現在市面上已經積累了大量的MD5數據,這樣,MD5的安全性也就受到了威脅,所以,從centos6.x版本開始,系統密碼開始采用SHA-512加密,與MD5加密相比,SHA-512加密后長度更長,也就意味著SHA-512相比MD5更加安全.

密碼加密原理

在我們進行密碼破解前,我們首先需要了解linux系統密碼加密的原理:
1. 密文由3部分組成,以”$”分隔,第一部分為ID,第二部分為鹽值,第三部分為加密密文

什么是ID?
ID用來表示加密的方法.
如下圖,
1使MD5,1表示加密方法使用MD5,6表示加密方法使用SHA-512

密文示例: $6$D0xsORq3b7GGsbYv$7L8myKFcJf1FqnvtzD.Zcbx9PeHnwGH1YJm/xDeEKmABPIxzUC7mQmEiIEHoHypXeJ969Tfp4c47WQgjkT0YH0 $id$salt$encrypted 采用方法 鹽值 加密密文 —————————————— ID 加密方法 1 MD5 5 SHA-256 6 SHA-512 ——————————————

什么是鹽值(salt)?
鹽值就是使用隨機字符碼混合密碼加密算法所產生的密碼,作用就是即使是同一個密碼,使用同一種加密方式,所產生的密文值也不同
如上面提到的密文示例:

$6$D0xsORq3b7GGsbYv #這一段就是鹽值,在加密的時候連同前面的ID一起加密

什么是密文?
這個我就不多介紹了,同上面的密文示例

7L8myKFcJf1FqnvtzD.Zcbx9PeHnwGH1YJm/xDeEKmABPIxzUC7mQmEiIEHoHypXeJ969Tfp4c47WQgjkT0YH0 #這一段就是密文了

了解了原理,我們就可以使用工具來進行密碼的暴力破解了
這里采用是利用python進行破解.

需要用到python下的 crypt 這個庫,這個庫下的.crypt方法可以根據猜想的密碼原文和鹽值來生成加密后的完整密文.

簡單的講一下思路:
1.獲取到鹽值
2.將獲取的鹽值和猜想的密碼通過crypt.crypt()加密后生成的密文與系統中存儲的密文進行對比,如果密文相同,則輸出對應的用戶和密碼

環境準備:
1.python
2./root/Desktop/wordlist.TXT 存放著我們的密碼字典
3./etc/shadow 存放著系統的密碼

附上詳細代碼和注釋,有不明的白的可以留言.

#!/usr/bin/env python #指定這是一個python文件,使用這個解釋器執行 #-*- coding:utf-8 -*- #設定編碼格式,防止報錯 import crypt #調用crypt這個庫user_passfile = "/etc/shadow" #獲取系統密碼路徑 zidian = "/root/Desktop/wordlist.TXT" #獲取字典路徑#提取系統中的用戶名和密文 def get_pass(user_passfile): used = {} #定義一個空字典f=open(user_passfile,"r") #讀取系統密碼文件userline = f.readlines() #將該文件轉換為列表格式f.close() #關閉文件for i in userline: #遍歷列表里的內容if len(i.split(":")[1]) > 3: #以":"分割,取第二個元素的長度,也就是完整密文值的長度,如果大于3,我們認定它有密碼,把它取出來used[i.split(":")[0]]=i.split(":")[1] #我們將取出的密文給了相應的用戶,這里的used[i.split(":")[0]]是字典的key,也就是系統中的用戶名,后面的i.split(":")[1]是用戶名后的加密密文return used #返回這個字典#提取我們密碼字典里的內容 def look_d(zidian): f = open(zidian,'r') #讀取字典文件內容mwlist = f.readlines() #將讀取的內容轉換為列表f.close() #關閉文件return mwlist #返回這個列表#根據密文是否相同判斷出對應的用戶和密碼 def main(user_passfile,zidian):used = get_pass(user_passfile) #調用自定義函數get_passmingwen = look_d(zidian) #調用自定義函數look_dfor user in used:passwd = used[user] #一次遍歷每個用戶的密文salt = "$6$"+passwd.split("$")[2] #獲取鹽值for passwdmw in mingwen: #遍歷系統中的每個完整密文if passwd == crypt.crypt(passwdmw.rstrip(),salt): #如果我們猜想的密文與系統中的密文相同,輸入它的用戶名和密碼print("userName:%s passWord:%s" %(user,passwdmw.rstrip())) if __name__ == "__main__":main(user_passfile,zidian) 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的linux密码暴力破解之SHA-512破解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。