redis未授权访问-漏洞复现
一、redis简介
Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,可以用来作为数据库、缓存和消息队列。Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用。Redis 不仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。Redis 支持主从复制,即 master-slave 模式的数据备份。
二、未授权访问漏洞概述
未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。
三、常见的未授权访问漏洞
1.MongoDB 未授权访问漏洞
2.Redis 未授权访问漏洞
3.Memcached 未授权访问漏洞CVE-2013-7239
4.JBOSS 未授权访问漏洞
5.VNC 未授权访问漏洞
6.Docker 未授权访问漏洞
7.ZooKeeper 未授权访问漏洞
8.Rsync 未授权访问漏洞
9.Elasticsearch 未授权访问漏洞
10.Hadoop 未授权访问漏洞
11.Jupyter Notebook 未授权访问漏洞
Redis未授权访问漏洞原理:
1、redis绑定在
0.0.0.0:6379
,且没有添加防火墙规则避免其他非信任来源IP访问等相关安全策略,直接暴露在公网。2、没有设置密码认证(一般为空),可以免密码远程登录redis服务。
四、漏洞环境搭建
docker pull medicean/vulapps:r_redis_1
docker run -dit -p 6379:6379 -p 2222:22 medicean/vulapps:r_redis_1
五、漏洞利用
工具:kali
安装redis-cli:
apt install redis-tools // 安装包管理器
wget http://download.redis.io/releases/redis-6.0.3.tar.gz //下载redis
tar -zxvf redis-6.0.3.tar.gz //解压
make //编译
方法一
通过redis数据备份功能,往WEB网站根目录写入一句话木马,利用shell 得到WEB网站权限
方法二
通过定时任务反弹Shell
方法三
写SSH公钥,实现免密登录linux服务器 攻击者在未授权访问Redis的情况下可以利用Redis,运行 Redis的用户是 root 用户,攻击者将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys文件中,所以可以无需密码直接登录目标服务器。