Redis 介绍
Redis 是非关系型数据库系统,没有库表列的逻辑结构,仅仅以键值对的方式存储数据。
Redis 数据库经常用于Web 应用的缓存。
Redis 可以与文件系统进行交互。
Redis 监听TCP/6379
漏洞原理
-
Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上
-
如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
-
攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器
漏洞危害
漏洞影响版本
Redis 2.x,3.x,4.x,5.x
Redis未授权主要是配置不当造成的所以不管哪个版本只要配置有问题就造成危害
Redis环境安装
官网地址:https://redis.io/
下载地址:http://download.redis.io/releases/
漏洞复现
复现环境
攻击机kali(redis3.2.0,192.168.110.236)
靶机(redis3.2.11 192.168.91.119)
攻击方法
要成功的利用Redis未授权访问的漏洞需要如下几点
-
redis服务以root账户运行
-
redis无密码或弱密码进行认证
-
redis监听在0.0.0.0公网上或内网中
首先可以使用Nmap的检测脚本 对 Redis进行未授权检测
nmap -A -p 6379 –script redis-info 192.168.91.119
连接数据库查看 info, 确定未授权访问
redis-cli -h 192.168.91.119 -p 6379
Linux 获取权限
SSH公钥
生成密钥在攻击机中
ssh-keygen -t rsa
将公钥导入key.txt文件(前后用nn换行,避免和Redis里其他缓存数据混合)
再把 key.txt 文件内容写入目标主机的缓冲里
再通过设置参数,写入指定文件
如上则为成功写入SSH密钥文件,攻击机可无需密码远程连接目标主机SSH
WebShell
当SSH不允许远程登录时,也可以通过写入 Web目录控制目标主机
定时任务
也可以通过写入定时任务反弹Shell,获取权限
攻击机监听端口
nc -lvvp 9999
Windows 获取权限
Webshell
攻击成功的前提为:需要准确的知道Web目录位置
可通过 phpinfo 或者 网站报错得知
这里测试的目标路径为:/var/www/html
成功写入木马,并可连接控制服务器
安全加固
-
升级redis到最新版本(至少在5.x版本以上)
-
将redis默认端口号6379改为其他端口号
-
修改redis.conf文件,设置认证密码
-
利用软硬件防火墙对访问redis服务器的流量进行过滤
-
开启保护模式 --protected-mode yes
-
禁止root权限启动redis服务
#创建redis用户组
groupadd redis
#创建redis用户,并且不可登录
useradd -g redis -s /sbin/nologin -M redis
#配置文件和目录的用户和用户组
chown -R redis:redis /data/redis/
chown -R redis:redis /usr/local/redis/
chown -R redis:redis /data/logs/redis/
#重启redis
修改redis.conf文件重命名危险命令,空表示禁用
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
保证authorized_keys文件的安全
将authorized_keys的权限设置为对拥有者只读,其他用户没有任何权限
chmod 400 ~/.ssh/authorized_keys
为保证authorized_keys的权限不会被改掉,还需要设置该文件的immutable位权限
chattr +i ~/.ssh/authorized_keys
然而,用户还可以重命名/.ssh,然后新建新的/.ssh目录和authorized_keys文件。要避免这种情况,需要设置~./ssh的 immutable位权限
chattr +i ~/.ssh
如果需要添加新的公钥,需要移除authorized_keys的 immutable 位权限。然后,添加好新的公钥之后,按照上述步骤重 新加上immutable位权限 注:chattr设置文件的隐藏属性(+i 让一个文件“不能被删除、改名,设置连接也无法写入或添加据)。
原文始发于微信公众号(网络安全学习爱好者):Redis未授权访问漏洞复现笔记
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论