起因
最近连续2次,两台服务器分别被黑,一台被种了木马,疯狂发送DDos攻击,被服务商给隔离了。令一台被安装了挖矿程序,占用CPU100%,影响正常使用。
幸亏自己的服务器都是开发和网络穿透用的,没有正式运营的网站,所以心理上是比较淡定的,当然内心仍然是一万只草泥马奔腾而过。看来平时对云服务器关心爱护不够啊。
初步处理(第一台)
那台被隔离的服务器其实是最好处理的,因为被隔离了,无法访问网络,只能通过云主机控制台登录,登录上去后因为网络不通,所以并没有看到那些奇怪的进程名称。自己并没有什么经验,就上网查了下通常的处理手段,有一个很有用,就是查看最近被修改的文件:
find /mnt/sda -type f -mtime -3
会列出最近3天被修改的文件。果然找出来一些奇怪名字的可执行程序,只要把他们一一删除就好了。特别注意这种木马程序一般会有定时任务来防删除,所以一定要检查一下定时任务:
crontab -l
有时候木马或者病毒程序比较狡猾,使用crontab并不能看到定时任务,因为有的定时任务是保存在/etc/crontab
里的!最好是看一下任务执行日志:
tail -f /var/log/cron
我发现/var/log/
这个目录特别重要,里面有很重要的系统运行的日志,系统工作不正常,一定要看这里。
把定时任务删除掉,木马也就被清除了。
(PS:由于我是把原来的系统盘挂在到了一个可以启动的光盘映像上进行的杀毒,所以到这就没什么问题。但是有的云服务器不能启动到急救模式,必需在线杀毒,首先要做的就是必需找到运行的进程,并将其停掉(不是杀死),然后再进行上述处理,最后把进程杀死就好了)
初步处理(第二台)
第二台是被植入了挖矿软件,占用大量CPU和网络带宽,导致我自己连不上主机,才发现的问题。运营商并没有给我任何提示。这台处理起来比较麻烦,因为没有办法进入急救模式,而且这个程序非常狡猾,它首先替换了ps命令,导致你在ps的时候看不到任何异常进程;其次它不知道采用什么手段让top命令无法正确的显示CPU使用率,进程列表里也看不到占用CPU高的进程。使用netstat -atn
能看到连到了一个外部的网站,打开这个网站就会返回一个字符串,显示挖矿的ID。但是使用netstat -atnp
则无法显示对应的进程编号。但是可以用lsof来查看对应的文件
sudo lsof -i :52872
但不幸文件只能显示一截,而且是类似脚本的指令而非文件名。
后来我灵机一动,到运行商提供的控制面板编辑了安全策略,将该服务器所有的外出包给封了。这样病毒就无法从网上获取信息,也就无法挖矿了。过了一段时候,服务器的CPU占用就降了下来,不过此时病毒依旧存在,只是无法工作了而已。
后来装了个ClamAV杀毒软件进行查杀,找到了一个getty的程序,是个后门程序,可以让黑客登录上来。删掉。
然后又检查/etc/contab,果然发现了一条任务,将其删除,同时将对应目录的文件也删除,才算是将挖矿程序给消灭了。
总结
- 检查
/etc/crontab
很重要 - 杀毒最好能将系统盘挂载到急救系统下进行杀毒,如果不行,至少要断网。
- 可以装个杀毒软件备用,不过好像没什么用,很多病毒一上来就是先干掉杀毒软件。
Q.E.D.
Comments | 0 条评论