Redis未授权访问漏洞解析与防护措施
创始人
2024-12-30 15:24:42
0 次浏览
0 评论
Redis未授权访问漏洞总结
Redis未授权访问漏洞摘要:当Redis服务未设置密码且客户端能够通过远程连接成功连接时,可能会出现未授权访问漏洞。例如,使用ping命令检查连接,例如“redis-cli-h127.0.0.1-p6379-amypassping”。
如果密码正确,将返回“PONG”。
要重现此漏洞,首先需要在攻击机器上安装Redis。
在Ubuntu中,这包括下载、解压、编译和配置。
安装成功后,攻击者机器可以无密码登录Redis,然后执行恶意操作,例如编写webshell或SSH公钥。
要利用该漏洞编写Webshell,需要创建适当的命令,例如“redis-cli-hsetshell.php\r\n”,并确保有换行符才能正确执行。
攻击者可以看到目标服务器的“/var/www/html/shell.php”中写入的shell内容。
写入SSH公钥的原理是将本地公钥插入到Redis数据库中,并修改默认路径,使其保存在目标服务器的“/root/.ssh/authorized_keys”中。
通过攻击机流程完成公钥导入和写入。
此外,攻击者还可以使用Redis编写计划任务,将恶意代码存储为计划任务,然后在特定时间运行,从而实现回归包装器。
攻击者监听服务器的网络连接,并通过Redis进程执行定时任务,从而获得攻击机上的弹跳shell。
所有这些操作都需要Redis权限控制存在漏洞,因此确保服务密码设置、限制远程连接、定期检查安全设置是防止此类漏洞的重要措施。
Redi未授权访问的两种利用方式
默认情况下,Redis服务器绑定到0.0.0.0:6379。如果没有制定防火墙策略来限制不受信任的IP访问,服务将暴露在公共网络中。
无需密码认证,任何用户都可以在未经授权的情况下访问Redis并读取数据。
攻击者可以通过Redis配置命令写入文件,将SSH公钥写入目标服务器的/root/.ssh/authorized_keys,并使用对应的私钥直接登录。
注意环境配置中的gcc版本。
如果低于5.3,编译时会出现错误。
启动服务并尝试连接。
如果报错,必须禁用RedisSentry模式。
创建一个外壳文件。
请记住,Redis可能会在文件的开头或结尾添加信息,并在设置文件内容时执行换行符。
文件上传后,访问查看上传结果。
使用计划任务功能写入文件并触发任务。
Kali接收SSHshell并执行反弹。
在此过程中,重点是识别和利用Redis服务中的漏洞,特别是未经授权的访问和文件写入能力,以及相关的环境配置和脚本编写技能。
如需了解更多网络安全知识,建议咨询专业平台或社区,获取深入知识和实践指导。
redis未授权访问漏洞复现利用
redis未授权访问漏洞Redis服务默认绑定在0.0.0.0:6379,如果没有实施防火墙策略允许其他不受信任的IP访问,则可以从公网访问该服务。如果未配置密码验证(默认为空),则任何用户可能无法访问Redis并读取数据。
攻击者在未经授权的情况下使用config命令将SSH公钥写入目标服务器上的/root/.ssh/authorized_keys文件中,然后使用相应的私钥直接SSH到服务器。
该漏洞的产生条件包括服务器未限制IP访问或配置密码认证。
漏洞风险包括敏感信息泄露、恶意执行flashall清除数据、通过EVAL执行lua代码或写入后门文件的备份功能。
在最严重的情况下,黑客可以将SSH公钥文件写入root帐户和日志。
直接通过SSH连接。
Redis是一个非关系型数据库,支持字符串、哈希、列表、集合、有序集合等多种数据结构类型。
实验环境包括Windows、Linux和Mac操作系统。
安装与运行:Windows使用GitHub提供的安装包,Linux使用apt-get或者wget和tar命令的组合,Mac使用brew。
基本命令包括连接、查看、删除键等。
使用过程:连接目标服务器,使用config命令更改备份路径和文件名,写入SSH公钥,使用私钥登录。
修复包括限制IP访问和配置密码身份验证。
总结:谨慎环境配置和权限管理,避免非法访问和数据泄露的风险。
确保您的密码安全,限制服务器访问范围,并定期审查和更新您的安全策略。
相关文章
Python文件导入指南:掌握跨目录导入...
2024-12-27 21:22:12Windows下Redis安装与配置指南
2024-12-25 14:32:25百条MySQL查询命令攻略:轻松掌握高效...
2024-12-28 15:43:07SQL查询技巧:正确使用语法高效检索信息
2025-01-01 03:23:13SQL Server启动故障排查指南
2024-12-15 04:54:58SQL截取技巧:left()与right...
2024-12-21 17:38:11MySQL数据库导出方法全解析:掌握多种...
2024-12-18 15:31:09Python编程:探索1000以内的水仙...
2024-12-15 18:08:34SQL字段默认值设置全攻略:轻松实现自动...
2025-01-05 20:53:16SQL Server 2008数据库附加...
2024-12-22 02:30:01最新文章
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
热门文章
1
Python代码实现:如何判断三角形的三...
python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...
2
高效掌握:CMD命令轻松启动、关闭及登录...
如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...
3
SQL字段默认值设置全攻略:轻松实现自动...
sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...
4
MySQL查询加速秘籍:PolarDB ...
mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...
5
SQL2000数据库备份压缩技巧:优化空...
怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...
6
SQL字符串处理技巧:单引号使用与转义标...
SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...
7
Windows环境下Redis安装指南与...
redis安装windowsredis基本简介与安装安装Redis首先需要获取安...
8
深度解析:Redis性能优势与局限性,助...
redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...
9
深入解析:MySQL数据库的特性与应用
mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...
10
Linux Redis操作指南:安装、配...
Linux系统进入redis并查询值1.进入redisredis-cli2.获取...