一、了解漏洞
1、什么是redis?
redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的api。
2.redis 未授权访问是什么漏洞?
redis是默认绑定在0.0.0.0:6379,并且没有开启认证,如果没有采取相关的一些策略,比如添加防火墙规则避免其他非信任来源的ip访问等,将会导致redis服务直接暴露在公网,这样其他用户可以在没有授权的情况下直接访问redis服务并进行一些相关操作。
而且攻击者也可以在未授权访问redis的情况下,利用redis自身所提供的config命令,可以进行写文件操作,攻击者可以成功将自己的公钥写入目标服务器的/root/.ssh文件夹的authotrized_keys文件当中,进而可以直接使用私钥登陆目标服务器。
二、分析漏洞原理
1.redis 未授权访问漏洞产生的原因是什么?
(1)默认情况下,redis会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,攻击者可远程登录redis服务;
(2)如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下,未授权访问 Redis 以及读取 Redis 的数据。
2.一个系统存在这个漏洞会导致什么后果?
(1)攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据;
(2)攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件;
(3)最严重的情况,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。
三、漏洞的重现和利用
1.安装 redis(源码编译安装&#x