Redis教程

redis未授权访问--主从复制

本文主要是介绍redis未授权访问--主从复制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

redis未授权--主从复制

前言

Redis因配置不当可以未授权访问。攻击者无需认证访问到内部数据,可导致敏感信息泄露及RCE。
本文使用主从复制的方式getshell。跳板机无需开启redis服务、可用在高版本redis上,redis4.x;5.x都可以,适用于:写入公钥,启动任务项都做了安全防护不可用、权限非root。


场景搭建

靶机:centos8 redis5.0 192.168.203.128
跳板机:win10 172.20.129.16

漏洞复现

第一步:靶机拉取redis5.0 docker环境:docker run -p 6379:6379 -d damonevking/redis5.0 redis-server

第二步:确认docker环境正常运行,且未授权但非root权限(无法写公钥及crontab)

image
image

第三步:准备好攻击环境:

1.下载漏洞利用脚本:两个连接都可以
1.1、https://github.com/Ridter/redis-rce.git 缺少一个exp.so,从链接1.2加一个就行。
1.2、https://github.com/n0b0dyCN/redis-rogue-server 用1.2他不香吗

脚本实测

image

image

image

修复方案

  1. 设置密码访问认证,可通过修改redis.conf配置文件中的"requirepass" 设置复杂密码 (需要重启Redis服务才能生效);
  2. 对访问源IP进行访问控制,可在防火墙限定指定源ip才可以连接Redis服务器;
  3. 禁用config指令避免恶意操作,在Redis配置文件redis.conf中配置rename-command项"RENAME_CONFIG",这样即使存在未授权访问,也能够给攻击者使用config 指令加大难度;
  4. Redis使用普通用户权限,禁止使用 root 权限启动Redis 服务,这样可以保证在存在漏洞的情况下攻击者也只能获取到普通用户权限,无法获取root权限;
  5. redis.conf配置信息如下:
    bind 127.0.0.1 #设置为绑定本地IP地址
    rename-command config ""
    rename-command flushall ""
    rename-command flushdb ""
    rename-command eval ""
    requirepass XXXXXXX #设置密码
这篇关于redis未授权访问--主从复制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!