Redis3未授权访问漏洞导致服务器被入侵

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 今天在腾讯云上搭的开发环境里的一台机器cpu load飚升老高,然后还能登陆上去,top后发现两个可疑进程、/root/目录下有修改过的文件、/opt目录被干掉了,后经分析,这台机器上有redis外网服务,/root目录下还有个READ_ME.

今天在腾讯云上搭的开发环境里的一台机器cpu load飚升老高,然后还能登陆上去,top后发现两个可疑进程、/root/目录下有修改过的文件、/opt目录被干掉了,

后经分析,这台机器上有redis外网服务,/root目录下还有个READ_ME.txt,  内容如下:



中招了,快哭了,两个可疑进程


在腾讯云上找到篇处理步骤:

Redis 默认情况下,会绑定在 0.0.0.0:6379,这样会将 Redis 服务暴露到公网上,在Redis服务器没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下成功在Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器进行远程控制,使您的主机沦陷为肉鸡,敏感数据泄漏,为避免您的业务受影响,建议您及时进行加固。

【漏洞概述】
Redis 默认情况下,会绑定在 0.0.0.0:6379,导致Redis服务暴露到公网上。
如果在没有开启认证并且在任意用户可以访问目标服务器的情况下,从而可以未授权访问Redis服务,进一步可进行数据增删改查,甚至获取服务器权限等恶意操作。

【风险等级】
   高风险

【漏洞风险】
主机被远程控制,泄漏敏感业务数据;

【漏洞利用条件】
1 Redis服务以root账户运行;
2. Redis无密码或弱密码进行认证;
3. Redis监听在0.0.0.0公网上;

【加固建议】
1. 禁止Redis服务对公网开放,可通过修改redis.conf配置文件中的"#bind 127.0.0.1" ,去掉前面的"#"即可(Redis本来就是作为内存数据库,只要监听在本机即可);
2. 设置密码访问认证,可通过修改redis.conf配置文件中的"requirepass" 设置复杂密码 (需要重启Redis服务才能生效);
3. 对访问源IP进行访问控制,可在防火墙限定指定源ip才可以连接Redis服务器;
4. 修改Redis默认端口,将默认的6379端口修改为其他端口;
5. 禁用config指令避免恶意操作,在Redis配置文件redis.conf中配置rename-command"RENAME_CONFIG",这样即使存在未授权访问,也能够给攻击者使用config 指令加大难度;
6. Redis使用普通用户权限,禁止使用 root 权限启动Redis 服务,这样可以保证在存在漏洞的情况下攻击者也只能获取到普通用户权限,无法获取root权限;

【清理木马】
如果您的云主机已经被利用并上传了木马,参考木马清理方案如下:
1 阻断服务器通讯。
(如iptables -A INPUT -sxmr.crypto-pool.fr -j DROP and iptables -A OUTPUT -d xmr.crypto-pool.fr -jDROP)
2 清除定时器任务。
(如systemctl stop crond 或者crontab –e 删除未知的计划任务)
3 删除木马和未知公钥文件。
(如  /tmp/Circle_MI.png, /opt/minerd, /root/.mcfg,/root/.daemond, /tmp/kworker34, /root/.httpd等及 ~/.ssh/中未知授权;chmod –x 恶意程序)
4 终止木马进程。
(如pkill minerd,pkill/root/.mcfg, pkill /tmp/kworker34, pkill /root/.daemond, pkill /tmp/kworker34, pkill /root/.httpd)
5 终止恶意service
(查看是否有恶意的服务,如lady - service ladystop)


现已恢复!


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
29天前
|
存储 数据挖掘 Windows
服务器数据恢复—V7000存储raid5故障导致LUN无法访问的数据恢复案例
服务器数据恢复环境: 三台V7000存储,共有64块SAS硬盘(其中有三块热备盘,其中一块已启用)组建了数组raid5阵列。分配若干LUN,上层安装Windows server操作系统,数据分区格式化为NTFS文件系统。 服务器故障: V7000存储中有多块硬盘出现故障离线,阵列失效,LUN无法访问。需要恢复卷中所有数据(主要为dcm文件)。
|
1月前
|
NoSQL Linux Redis
在 centos7 下重启/开启 redis 服务器
本文提供了一种在Centos 7操作系统下如何重启Redis服务器的步骤,包括停止Redis服务、确认停止成功以及重新启动Redis服务。
88 2
在 centos7 下重启/开启 redis 服务器
|
15天前
|
NoSQL Unix Linux
Redis 服务器
10月更文挑战第19天
15 1
|
1月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
52 3
|
1月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
51 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
22天前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
22天前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
28天前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
21 0
|
30天前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
1月前
|
存储 监控 NoSQL
Redis的实现二: c、c++的网络通信编程技术,让服务器处理多个client
本文讨论了在C/C++中实现服务器处理多个客户端的技术,重点介绍了事件循环和非阻塞IO的概念,以及如何在Linux上使用epoll来高效地监控和管理多个文件描述符。
24 0