漏洞描述:
由于Redis默认是运行在TCP的6379端口上,而且默认安装没有设置用户访问认证,也没有访问IP限制,这样导致端口开放后,对Redis服务可以直接匿名访问,并且可对数据库进行匿名操作,信息泄露,执行命令等操作。
一、Redis数据库安装
虚拟机CentOS7,Xshell连接,拷贝安装包,解压
cd 看看有什么
src 源码所在的文件夹
安装编译工具:make 和 gcc记得选Y
安装完成
进入src目录,执行命令:make编译完成
修改配置返回上一层目录,vim redis.config
bind 127.0.0.1 只能本地连接
bind 0.0.0.0 可以远程连接
保护模块:改成 no
启动redis服务复制客户端程序redis.cli到win10桌面
sz redis.cli
启动win10子系统,进入root,执行
./redis.cli -h 172.16.10.11 -p 6379
不需要账号密码即可登录
如果连接失败:尝试关闭防火墙
iptables -F //清理防火墙配置 iptables -X //关闭防火墙
二、Redis数据库未授权访问的三种利用方式
第一种方式:redis写入webshell注意第2步,必须要前后添加n(回车),防止redis添加的字符串和一句话连在一起
成功访问shell.php
如果网站有php环境,即可执行一句话木马
第二种方法:ssh无密钥登录需要ssh-keygen工具
redis所在的centos7创建/root/.ssh目录
cd /root/ mkdir .ssh
启动kali执行命令,指定rsa加密方式
ssh-keygen -t rsa
读取私钥、公钥,并拼接到一起,写入key.txt
(echo -e "n";cat id_rsa.pub;echo -e "n";) > key.txt
拷贝redis-cli到kali根目录,chmod赋予权限,运行客户端程序,将刚才保存的key.txt写入键值
cat /root/.ssh/key.txt | ./redis-cli -h 172.16.10.11 -p 6379 -x set key
设置公钥文件
因为/etc/ssh/sshd_conf里面配置了认证文件名:authorized_keys
kali使用SSH无密码登录
第三种方式:反弹shell通过计划任务的方式,反弹shell到kali
kali启动nc监听2424端口
redis所在的centos7,在数据库中,设置相应的键值
等待一分钟后,kali成功获取shell
三、漏洞修复办法:
1.配置port,修改端口号。
2.配置bind选项,限定可以连接Redis服务器的IP。
3.配置requirepass选项,设置密码。
配置文件路径:/etc/redis.conf



