Python腳本激活Linux密碼的方法(crypt模塊)
環(huán)境 Kali Linux ,python版本2.7.13 。
我們利用Linux系統(tǒng)中的 crypt 模塊模擬了Linux系統(tǒng)中用戶密碼的加密,在Windows中是不存在這個(gè)庫的。
在Linux系統(tǒng)中,用戶的密碼被加密存儲(chǔ)在了 /etc/shadow 文件中。
如下是 /etc/shadow中root用戶的字段
root:$6$ql1UU7ZPwONL9NzX$/bz0GQ8.Ne.zqpF.L5rqPok.Zep0ypRU1X8v.Omrqnv1k6hVDzqTS1Vezencaxltk52X94eZMT/teVHI1Jwf6.:17767:0:99999:7:::
第二個(gè)字段是密碼部分的,我們把它單獨(dú)拿出來
$6$ql1UU7ZPwONL9NzX$/bz0GQ8.Ne.zqpF.L5rqPok.Zep0ypRU1X8v.Omrqnv1k6hVDzqTS1Vezencaxltk52X94eZMT/teVHI1Jwf6.
密碼部分的格式為:$id$salt$encrypted
id是指用的哈希算法,id為1是MD5,id為5是SHA-256,id為6是SHA-512 salt 為鹽值 encrypted 為hash值,這里的hash值是密碼和鹽值一起加密之后得到的在了解了shadow 文件中密碼的加密方式之后,我們就可以開始編寫python腳本了。
在編寫之前,我們需要準(zhǔn)備好密碼字典文件 key.txt 。只有當(dāng)密碼字典足夠大時(shí),才有可能破解出密碼。
然后我們將 /etc/shadow 文件復(fù)制到python腳本所在目錄,修改文件名為 shadow.txt
在編寫時(shí),我們創(chuàng)建兩個(gè)函數(shù):main() 和 testPass() 。main() 函數(shù)打開 shadow.txt 文件中的內(nèi)容,讀取其中的用戶名字段和密碼字段cryptPass。testPass() 函數(shù)將密碼字段中的 $id$salt 提取出來賦值給 salt 。然后讀取 key.txt 中的密碼字段,賦值給 word 。再利用Linux系統(tǒng)中python的一個(gè)crypt庫,將word和salt一起作為參數(shù)傳進(jìn)去進(jìn)行加密,得到 cryptWord 。最后將cryptWord和cryptPass進(jìn)行對比,如果相等,則這個(gè)word就是該用戶的密碼,否則不是。
# -*- coding: utf-8 -*-'''Created on Mon Oct 29 15:01:54 2018@author: 小謝'''import crypt ##導(dǎo)入Linux口令加密庫def testPass(cryptPass): salt=cryptPass[cryptPass.find('$'):cryptPass.rfind('$')] ##獲得鹽值,包含$id部分 dictFile=open(’key.txt’,’r’) for word in dictFile.readlines():word=word.strip('n')cryptWord=crypt.crypt(word,salt) ##將密碼字典中的值和鹽值一起加密if (cryptWord==cryptPass): ##判斷加密后的數(shù)據(jù)和密碼字段是否相等 print '[+]Found Password:'+word+'n' ##如果相等則打印出來 return print '[-] Password Not Found.n' return def main(): passFile=open(’shadow.txt’) for line in passFile.readlines(): ##讀取文件中的所有內(nèi)容if ':' in line: user=line.split(':')[0] ##獲得用戶名 cryptPass=line.split(':')[1].strip(’ ’) ##獲得密碼字段 print '[*] Cracking Password for:'+user testPass(cryptPass)main()
腳本運(yùn)行截圖,破解出了用戶tom和用戶xie的密碼。
以上就是Python腳本激活Linux口令(crypt模塊)的詳細(xì)內(nèi)容,更多關(guān)于python破解linux口令的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Nginx+php配置文件及原理解析2. Intellij IDEA 2019 最新亂碼問題及解決必殺技(必看篇)3. Opencv+Python識(shí)別PCB板圖片的步驟4. IOS利用CocoaHttpServer搭建手機(jī)本地服務(wù)器5. css3溢出隱藏的方法6. ASP.NET MVC獲取多級類別組合下的產(chǎn)品7. Android自定義View實(shí)現(xiàn)掃描效果8. java中throws實(shí)例用法詳解9. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫特效10. python virtualenv和flask安裝沒有名為flask的模塊
