设为首页 收藏本站
查看: 719|回复: 0

[经验分享] Redis未授权访问导致可远程获得服务器权限

[复制链接]

尚未签到

发表于 2018-11-3 06:40:50 | 显示全部楼层 |阅读模式
  近日,魔方安全团队监控到针对Redis未授权访问的一种新型***方式,在特定条件下,可远程导致服务器沦陷,魔方安全团队及时对该***方式进行了研究及威胁评估,并通过魔方矩阵情报系统在第一时间通知了部分用户进行修补,以下是漏洞原理以及复现的过程。
  漏洞原理及复现
  在复现前,先介绍两个基本所要了解的基础知识:
  1) SSH免密码登录,Linux下可以设置SSH免密码登录,方法为使用"公私钥"认证,即首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。详细可参考(http://jingyan.baidu.com/article/2fb0ba4043124a00f2ec5f0f.html )SSH免密码登陆远程服务器
  2) Redis可通过Redis-CLI远程管理,设置Redis的默认路径以及数据库缓存文件。
  方法如下:
config set dir /xxx  
config set dbfilename xxxxset xxxx "xxx"save
  上述两种常见的运维方法结合,在以下条件下:
1.Redis服务使用ROOT账号启动  
2.Redis服务无密码认证或者使用的是弱口令进行认证
  
3.服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。
  如下图:
  首先在本地生成一对密钥:
DSC0000.jpg

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

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 服务。
  隐藏重要命令
  Redis 无权限分离,其管理员账号和普通账号无明显区分。***者登录后可执行任意操作,因此需要隐藏以下重要命令:FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL。
  另外,在 Redis 2.8.1 及 Redis 3.x (低于 3.0.2) 版本下存在 EVAL 沙箱逃逸漏洞,***者可通过该漏洞执行任意 Lua 代码。
  设置为空,即禁用该命令;也可设置为一些复杂的、难以猜测的名字
  追加下列命令到 redis.conf。
rename-command CONFIG ""  
rename-command flushall ""
  
rename-command flushdb ""
  
rename-command shutdown shotdown_test
  
等等
  保存后,执行 /etc/init.d/redis-server restart 重启生效。
  转载地址http://www.freebuf.com/vuls/85021.html



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-629973-1-1.html 上篇帖子: redis内存数据库 下篇帖子: redis的密码验证,及哨兵的相关配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表