redis 获取shell的方法

redis 获取shell的方法


2024年4月19日发(作者:)

redis 获取shell的方法

Redis 获取Shell

介绍

Redis 是一款高性能的键值存储系统,但在一些特殊情况下,攻

击者可能会通过利用 Redis 的一些漏洞或者配置不当,获取服务器上

的 Shell 权限。本文将介绍几种常见的方法,以及相应的防范措施。

方法一:未授权访问

1. 攻击者通过扫描网络,发现了一个未授权访问的 Redis 服务器。

2. 攻击者通过 Redis 提供的 CONFIG SET 命令,将 dir 配置项

指向攻击者控制的目录。

3. 攻击者通过执行 BGSAVE 命令,触发 Redis 执行持久化操作。

4. 攻击者创建一个名为 的 PHP 脚本,并将其放置到

Redis 目录中。

5. 攻击者通过访问 脚本,获取服务器 Shell 权限。

方法二:RCE(远程命令执行)

1. 攻击者通过向 Redis 服务器发送精心构造的 payload,触发远

程命令执行漏洞。

2. 攻击者可以通过以下几种方式,构造 payload:

– 利用 Redis 功能执行系统命令,例如:CONFIG SET

lua-time-limit 0; eval "local pwd =

('pwd'):read('*a'); return pwd;" 0

– 利用 Redis 服务器接收的外部数据,例如:CONFIG SET

logfile ""; CONFIG SET dir "/tmp/";

CONFIG SET dbfilename ""; SAVE; EXEC

– 利用 Redis 的 Lua 脚本功能执行任意代码,例如:EVAL

"local file=('ls /'):read('*all');

('set','files',file); return file;"

0

3. 攻击者成功获取服务器 Shell 权限。

方法三:主从复制

1. 攻击者通过将一台具有 Shell 权限的服务器设置为 Redis 从服

务器,等待主服务器执行 BGSAVE 命令。

2. 攻击者通过主服务器的 BGSAVE 命令将 Redis 数据持久化到磁

盘。

3. 攻击者通过修改持久化的 RDB 文件,在其中插入恶意 Shell 代

码。

4. 攻击者将修好的 RDB 文件复制回主服务器,并触发主从复制操

作。

5. 攻击者通过访问修改后的 Shell 代码,获取服务器 Shell 权限。

防范措施

• 禁用未授权访问:确保 Redis 服务器只能通过身份验证访问。

• 配置密码保护:通过设置 requirepass 配置项,指定密码保护

Redis 服务器。

• 阻止远程访问:通过配置 Redis 服务器的网络访问控制列表,

仅允许本地访问。

• 限制命令执行:如果不需要使用某些危险命令,应禁用这些命令

的执行权限。

• 及时更新 Redis 版本:新版 Redis 经过了许多安全改进,保持

更新可以提高安全性。

• 定期监控日志:及时检查 Redis 服务器的日志,发现异常活动

并采取相应的措施。

结论

虽然 Redis 是一款功能强大的缓存数据库,但在未经妥善配置或

者存在漏洞的情况下,攻击者可以通过各种方式获取服务器的 Shell

权限。因此,对于 Redis 服务器的安全配置和定期监控是至关重要的。

通过采取一系列的防范措施,可以减少服务器被入侵的风险,并确保

数据的安全性。


发布者:admin,转转请注明出处:http://www.yc00.com/news/1713508544a2262834.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信