处理体会
从应用访问巨慢,到发现被挖矿攻击,再到进行处理,最后CPU恢复正常
自始至终还是没有查明病毒究竟是从什么漏洞入侵到我的服务器里的。也没明白究竟是在哪一步才真正的杀死了病毒,亦或者病毒还依然蛰伏在隐秘的角落。
环境说明
- Centos7,外网只暴露了应用80端口,22端口只允许内网访问
- Mysql5.7
- Nginx1.16.1
- Redis(只允许本机访问,且有密码)
- Apache Tomcat/9.0.13
病毒表现形式
- 应用访问变慢,比如查询,平常100毫秒内的可能会要个1000毫秒,而之前在1000毫秒左右的可能会卡的查询超时。
- 服务器的命令响应会变慢,例如TOP、LL等基础命令。
- 进行SSH登录服务器会巨慢。
- TOP命令无法看到CPU爆满的进程,但是切换至用户CPU会看到每个CPU都跑满了
TOP里按CPU使用量查询并没有找到
但是用户CPU基本上每个都接近负荷
- 以上就是为什么应用变慢了,因为CPU资源都被占满了嘛。
解决过程
1、清除被新增的用户名和密码
# 找到了一个名为ftp1的账户,账户ID和权限组都是0跟root同级别了,不是我建的,删掉保存。
vim /etc/passwd
2、删除免密登录
# 免密登录里也被加入了Key, 这里要确保自己没有设置免密登录,并且账密登录能正常使用才直接删除,避免自己在远程情况下无法使用,
rm -rf ~/.ssh/authorized_keys
3、清除定时任务
crontab -l 不一定能看到被病毒新增的定时任务,所以我们直接更改文件
cd /etc/cron.d
# 找到不是属于自己建立的定时任务,这里可以对比其他正常机器发现异常任务
还有一个地方也需查看删除
vim /etc/crontab
# 同上操作一致
tips:
以上操作可能会提示无法保存或者删除,是因为病毒将文件加了锁。
我们执行 chattr -isa [文件|目录]之后就可以删除了
重启定时任务
service crond restart
4、删除ld.so.preload文件
rm -rf /etc/ld.so.preload
5、做完以上操作,重启服务器,
挖矿的进程终于得以在top命令里显行
但是杀掉还是会重启
top
# 找到cpu利用率最高的PID
systemctl status [PID]
# 找到Loaded:后面的文件进行删除
# 删一次文件之后再杀一次进程,但是挖矿病毒还会再开进程,我就继续删文件继续杀进程。
# 直到我再使用systemctl status 去查看挖矿的进程ID的时候,竟然提示我 Failed to get unit for PID 29073: Access denied
6、重启服务器
说实话在无法查看进程的时候我真没法子了,毕竟服务器这块不是专业。有些法子网上搜不到我就不好处理了。
我就想着也删了这么多文件了,重启试试吧,折腾了一天也累了,顺带也有点失落,reboot之后没选择继续重连,而是讪讪回了家。
然后第二天登陆一看,cpu利用率竟然没再上升了。但是我依然高兴不起来。
所以最终结果是服务器看似正常了,但是我还是选择重装加格式化,因为怕了,我之前也被攻击过一次,我知道是因为redis的原因导致的,也很快解决了,而这一次实属败的很惨。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。