在编写我们的UNIX口令破解机时,我们需要使用UNIX 计算口令hash 的crypt()算法。Python 标准库中已自带有crypt 库。要计算一个加密的UNIX 口令hash,只需调用函数crypt.crypt(),并将口令和salt 作为参数传递给它。该函数会以字符串形式返回口令的hash。
设计思路:
黑客穷举了字典中所有单词,并用Unix crypt() 函数对它们加密,然后将结果偷来的加密密码进行对比。 这就是:字典攻击法 ,来破解加密的口令。
环境:Ubuntu Python3.5.2 # -*- coding: UTF-8 -*- #破解UNIX口令密码 import crypt def testPass(cryptPass): #穷举密码 salt = cryptPass[0:2] dicFile = open('dicfile.txt', 'r') if salt == '$6': for word in dicFile.readlines(): word = word.strip() cryptWord = crypt.crypt(word,cryptPass) if cryptWord == cryptPass: print('[+] Found Password:' + word) return else: print('[-] Not Found Password') return else: for word in dicFile.readlines(): word = word.strip() cryptWord = crypt.crypt(word, salt) if cryptWord == cryptPass: print('[+] Found Password:' + word) return else: print('[-] Not Found Password') return def main(): #处理口令文件 passFile = open('passwords.txt','r') for line in passFile.readlines(): if ':' in line: user = line.split(':')[0] cryptPass = line.split(':')[1].strip() print('[*] Cracking Password For: ' + user) testPass(cryptPass) if __name__ == '__main__': main()