Redis未授权访问漏洞详解与防护措施解析
创始人
2025-01-13 19:09:24
0 次浏览
0 评论
Redis未授权访问漏洞复现与利用
默认情况下,Redis会绑定到0.0.0.0:6379,如果不执行防火墙策略,直接暴露在公网且不配置密码认证(默认值为空),则任何用户都可以访问目标。服务器将无法访问目标服务器被授权访问Redis并读取其数据。
攻击者可以使用Redisconfig命令进行文件写入操作,例如将SSH公钥写入目标服务器/root/.ssh文件夹中的authorized_keys文件中,然后使用相应的私钥直接SSH到/root/目标服务器的.ssh文件夹。
目标服务器。
该漏洞产生的条件包括:Redis绑定了公网IP地址、未实施安全策略、未设置密码认证。
该漏洞的危害主要体现在攻击者无需身份验证即可访问内部数据,从而导致敏感信息泄露,甚至可以运行flushall命令清除所有数据,并使用EVAL执行Lua代码或保存。
函数将后门文件写入磁盘。
在最严重的情况下,如果Redis以root身份运行,攻击者可以写入SSH公钥文件并通过SSH直接连接到受害者服务器。
根据ZoomEye检测,无需验证即可直接使用的Redis全球分布如下:全球无需验证即可直接使用Redis的前10个国家和地区。
重现漏洞的方法:下载并安装Redis测试版(Ubuntu镜像),安装后启动服务,克隆虚拟机并创建攻击机和目标机(IP地址分别为192.168.0.105和192.168.0.104)。
攻击机使用redis-cli连接目标机的redis服务。
公网开放验证服务,不启用认证。
使用redis编写webshell的步骤如下:目标机器的redis连接不允许,攻击机器无需检查连接即可连接,打开web服务器,使用phpinfo或者路径错误暴露目录,以及确保有文件操作权限。
在/home/bmjoker目录中编写shell,确保使用换行符以确保文件的可执行性。
对于以root身份运行的Redis,可以利用漏洞获取root权限。
启动目标机上的Redis服务,创建SSH公钥存放目录,在攻击机上生成公钥和私钥(密码为空),连接目标机的Redis服务并写入公钥。
。
写入成功后验证公钥文件,攻击机使用私钥通过SSH连接Redis服务器。
使用crontab弹跳shell:攻击者的服务器监听端口,连接Redis并编写弹跳shell代码,设置计划任务目录和文件名,大约一分钟后获取shell。
要测试未经授权或弱密码条件,可以使用自动测试脚本。
解决方案包括:通过IP绑定限制访问(编辑redis.conf文件中的绑定配置)并设置密码以提供远程连接。
这具体步骤为:去掉redis.conf中对127.0.0.1的绑定注释,并指定允许访问的IP地址;更改requirepass配置中的密码。
这可以在一定程度上防止未经授权的访问,保证服务的安全运行。
Redis未授权访问漏洞(一)先导篇
Redis默认配置暴露问题在不进行安全配置的情况下,Redis将默认连接到0.0.0.0:6379此配置会将Redis服务暴露到公网,而无需添加防火墙规则。如果不设置密码认证,任何能够登录目标服务器的用户都可以非法访问Redis并读取Redis数据。
攻击者在获得对Redis的未授权访问权限后,可以使用configure命令写入文件。
攻击者可以将自己的ssh公钥写入到目标服务器/root/.ssh文件夹下的authorized_keys文件中,然后使用对应的私钥直接登录服务器、添加计划任务、在Webshell中写入等。
未经授权访问Redis是一种常见的漏洞,会导致大量云服务器被挖矿,例如在阿里云服务器上,当Redis服务配置不正确时,黑客可以攻击并下载篡改密钥的恶意挖矿程序。
Redis的常见用途和案例Redis不仅仅用于缓存,还有很多用途。
它的全称是RemoteDictionaryService(远程词典服务),由antirez于2007年创建,最初用于统计Web访问数据。
随着数据量的增长,Redis于2009年被开发为内存版本以提高性能。
Redis通过键值对以及常见的set和get操作来存储数据。
通过实例演示,设置redis.conf开启服务,通过redis客户端查看运行结果。
从设置键值对到清理数据库,直观地演示了Redis的使用。
安装并配置Redis环境安装Redis环境需要准备Centos7操作系统。
下载并解压Rediszip包,安装GCC依赖,编译安装,编辑配置文件以确保服务可以在本地机器上启动,并设置访问密码。
通过指定配置文件启动Redis,使用客户端,停止服务,配置别名。
Redis持久化机制Redis数据存储在内存中,并提供持久化机制来保证数据的可靠性。
数据通过save命令或自动启用的规则(例如每3600秒保存一次)定期保存到磁盘。
配置文件设置持久化规则以及文件存储的路径和名称。
Redis动态修改配置Redis提供了动态配置修改功能,允许通过配置修改配置,但只在当前会话中生效。
通过这种方式修改配置,保存数据并验证是否已正确保存到文件中。
相关文章
CMD登录MySQL数据库教程:轻松掌握...
2025-01-01 09:09:00SQL截取字符串前几位教程:SUBSTR...
2024-12-15 10:56:00MySQL命令行客户端:创建数据库与常用...
2025-01-01 05:53:36MySQL高效去重攻略:查找与删除重复记...
2024-12-29 12:14:54高效SQL更新技巧:掌握单行和多字段数据...
2024-12-17 01:39:22Oracle SQL截取字符串技巧:高效...
2024-12-17 00:43:07MySQL CMD连接教程:轻松掌握数据...
2024-12-26 14:42:12SQL Server数据导出教程:轻松掌...
2025-01-06 17:33:12MySQL命令行操作指南:导入SQL文件...
2024-12-31 23:40:19SQL技巧:整数转字符类型转换及日期字符...
2024-12-16 12:42:07最新文章
14
2025-01
14
2025-01
14
2025-01
14
2025-01
14
2025-01
14
2025-01
14
2025-01
14
2025-01
14
2025-01
13
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
SQL分组查询技巧:聚合函数与GROUP...
SQL对查询结果进行分组如果你的UID是int类型,先转换一下,然后绕过前两位,...