Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
简单来说,漏洞的产生条件有以下两点:
Redis 2.x,3.x,4.x,5.x
2.1.1 靶机安装redis服务器
这下面是成功截图

因为要做到未授权访问,那么进行修改配置文件(redis.conf)



启动成功,靶机部署完毕!
2.1.2 kali安装Redis客户端(Redis-cli)
测试连接

连接成功!
3.1.1 利用前提
3.1.2 利用

在靶机中可以看到文件已经上传成功

进行访问,上传成功

接下来上传木马,通过蚁剑连接



连接成功!
原理就是在数据库中插入一条数据,将本机的公钥作为value.key值,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成一个授权的key。
3.2.1 利用前提
3.2.2 利用
首先生成密钥(ssh-keygen -t rsa),选项默认回车就可以。

进入.ssh目录:cd .ssh/,将生成的公钥保存到key.txt:

再把key.txt文件内容写入redis缓冲,进入到redis-4.0.10/src目录下
将保存ssh的公钥key.txt写入redis(使用redis-cli -h ip命令连接靶机,将文件写入)



在redis以root权限运行时可以写crontab来执行命令反弹shell
3.3.1 利用
kali:nc开启监听

可以看到成功反弹shell

3.4.1 利用
编写恶意 .so 文件,包含执行系统命令的功能。
通过主从复制将 .so 文件同步到从服务器。
从服务器加载 .so 文件并执行其中的命令。

针对Redis的漏洞修复,以下是一些建议:
- 升级Redis版本:根据最新的安全公告,Redis发布了包含安全修复的新版本。建议升级到最新的稳定版本,以修复已知的安全漏洞。
- 限制网络访问:确保只有授权的用户和系统可以访问Redis数据库。使用防火墙和网络策略限制访问到信任的源,防止未授权的连接。
- 强制使用强认证:对所有访问Redis实例的访问强制使用凭证。避免配置允许未经认证的访问,并确保启用了保护模式(在CE和OSS中)以防止意外暴露。
- 限制权限:确保访问Redis的用户身份被授予最小必要的权限。只允许信任的身份运行Lua脚本或其他潜在危险的命令。
- 禁用高危命令:禁用一些高危命令,如、、、等。
- 以低权限运行Redis服务:避免使用root用户等高权限用户运行Redis服务。
- 为Redis添加密码验证:修改,添加指令来设置认证密码。
- 禁止外网访问Redis:修改,添加或修改配置,使得Redis服务只在当前主机可用,例如设置。
- 添加IP访问限制:考虑在网络或操作系统级别添加IP限制,只有信任的IP才能连接。
- 更改默认端口:考虑更改Redis默认端口,以进一步混淆你的设置。
- 客户端加密:对于高度敏感的数据,可以在客户端实施加密,增加额外的保护层。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/33290.html