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条)