unix口令破解機 py程式

2021-10-09 09:54:32 字數 1864 閱讀 8212

環境 kali python2.7

在我們寫程式之前,我們首先要知道的是unix密碼是以hash加密的,所以我們這裡要用到python的crypt庫,我們只需呼叫crypt.crypt()函式,並把我們需要加密的口令和salt傳給他,該函式就會以字串的形式返回密碼的hash

在我們早期第一代密碼,如果使用者密碼為123,則資料庫就會儲存123,如果資料庫洩露,會十分危險,所以漸漸地便產生了第二代密碼,使用者輸入123,程式會講123進行md5加密,即轉化為202cb962ac59075b964b07152d234b70,並儲存到資料庫中.在使用者登入的時候,會把使用者輸入的轉化為md5,並與資料庫中的加密的密碼做比較.但是這樣也是不安全的,hk』會將各種密碼收集到乙個強大的字典裡面,然後利用指令碼將字典裡面的密碼逐一進行加密並登入,如果登入成功,我們就會破解出使用者的密碼. 然後,第三代密碼產生了,他的資料表裡面多了乙個字段,即鹽值,這資料庫中儲存的就是md5(明文密碼+salt),這樣會大大加強了密碼的安全性.

了解了這個函式的用法,接下來.我們就可以來正式編寫我們的程式了,在我們編寫程式時,我們應該養成乙個將指令碼的各個功能分函式編寫的良好習慣,在本程式裡面,我們用了兩個函式,testpass()函式從字典中讀取密碼,並將其以salt的鹽值進行加密,遍歷無果則返回.main函式將開啟加密口令檔案,並逐行讀取口令檔案中的內容,而每一行的使用者名稱和密文都是用 : 分隔開的,我們可以用python split() 通過指定分隔符對字串進行切片.

程式總思路\

使用者的密碼是明文密碼加salt來進行hash加密的,所以我們可以利用crypt庫,將字典檔案中的每乙個密碼提取出來.並對其進行salt的hash加密,與密文檔案中的密文做比較,如果兩者相等,即可獲取密碼,並返回乙個提示,若全部字典檔案都不相等,則破解不出來密碼,會返回乙個提示

最後附上指令碼全部**

import crypt

deftestpass

(cryptpass)

: salt = cryptpas[0:

2]dictfile =

open

('dictionary.txt'

,'r'

)for word in dictfile.readlines():

word = word.strip(

'\n'

) cryptword = crypt.crypt(word,salt)

if cryptword == cryptpass:

print

('[+] password is '

+ word+

'\n'

)return

print

('[-] password not found'

)return

defmain()

: passfile =

open

('password.txt'

)for line in passfile.readlines():

if':'

in line:

user = line.split(

':')[0

] cryptpass = line.split(

':')[1

],strip(

' ')

print

('chacking pass for '

+user)

testpass(cryptpass)

if _name_ ==

'_main_'

: main(

):

UNIX口令破解機

以下需要在linux系統執行 import crypt def testpass cryptpass salt cryptpass 0 2 取前兩個,沒用的,他們會置於加密後密碼的前面,我們不需要 dictfile open dictionary.txt r 存了所有簡單的密碼,一一試探 for w...

UNIX口令破解機 完善前面的

從passwords檔案中讀取使用者的口令 這個口令是經過加密的 然後我們需要從dictionary檔案中獲取乙個個密碼 然後對這些密碼進行加密,判斷是否等於口令 是的話這個密碼就是該口令的明文 記住破解的是使用者的口令,使用者的密碼沒有破解 import crypt deftestpass cry...

破解root口令

今天小編示範如何破解root口令,以及進行grub加密後再次破解口令的實驗。一 三步破解root口令 流程 啟動系統時,設定其執行級別1,進入單使用者模式。編輯grub選單 選定要編輯的title,而後使用e命令 在kernel所在行,鍵入 b 命令,重啟後passwd直接修改root口令,就這樣快...