下面是阿里云案例
漏洞描述:
Redis 服务因配置不当,可被攻击者恶意利用。黑客借助 Redis 内置命令,可将现有数据恶意清空;如果 Redis 以 root 身份运行,黑客可往服务器上写入 SSH 公钥文件,直接登录服务器。
受影响范围:
对公网开放,且未启用认证的 Redis 服务器
修复方案:
注意:以下操作,均需重启 Redis 后才能生效。
绑定需要访问数据库的 IP。 将 Redis.conf 中的 bind 127.0.0.1 修改为需要访问此数据库的 IP 地址。
设置访问密码。在 Redis.conf 中 requirepass 字段后,设置添加访问密码。
修改 Redis 服务运行账号。以较低权限账号运行 Redis 服务,且禁用该账号的登录权限。
上网查了一番之后是因为安装redis时配置不当,被黑客植入了挖矿程序,把cpu占满,导致服务器慢的要死
当时想的是这小服务器应该没人会攻击,然后为了省事做了下列操作:
- 把redis.config里的 bind 127.0.0.1 给注释了,为了能够远程访问
- 把防火墙关闭了,嫌配置防火墙端口麻烦
-
为了方便没有设置redis连接密码
然后惨剧就发生了,第二天收到的阿里云的邮件,上去一看各种中危、高危告警
image.png
在服务器被入侵后,首先可以明显感觉到服务器的资源被占用而导致的操作迟缓等问题,通过一些常规手段可以发现一些异常信息,但又看不到进程信息
通过 top 命令,可以看到显示的 CPU 使用率较低,但是cpu确实是被占满了,看不到是因为挖矿程序被隐藏了 。
image.png
通过 netstat -ant 查看端口监听情况,也可以看到异常的连接。
image.png
通过 find /var/log/ -mtime +3 -type f -print 命令查找三天内变更的文件,对变更文件的排查,同时对相关文件进行分析,大概知道是怎么把进程隐藏的了
image.png
通过 cat /etc/ld.so.preload 命令查看文件内容,可以看到加载一个 .so 文件:/usr/local/lib/libdns.so,该文件其主要功能就是过滤了挖矿进程
image.png
在知道了黑客使用的隐藏手法后,利用命令vim /etc/ld.so.preload 文件去掉相关内容,然后再通过 top 命令即可看到挖矿进程:
image.png
可以看到cpu占用率已经达到99.9%,直接kill掉该进程,然后top一看确实是没有了,速度也变快了,但是过几分钟之后那个进程又出来了......
然后把定时任务表里面的东西删掉也没用,都只是一时的,过几分钟还会出现
下面是关于定时任务表的一些命令
//编辑当前用户的cron表
$crontab -e
//查看当前用户的cron表
$crontab -l
//删除当前用户的cron进程
$crontab -r
//用户名 以某用户的身份来控制cron表
$crontab -u
经过一番操作之后,并没有解决问题,找不到根源,最后无奈之下直接重装了CentOS系统,有了这次教训之后下次再安装redis的时候就不会犯上面的错误了
网友评论