服务器被植入挖矿病毒的处理
故障描述:一台服务器一直在向外发送网络包,导致该网段网络拥堵。
(同时我司的一台服务器也出现了同样的情况,不断往外发包,导致网段拥堵)。
经过排查,发现该机器被植入挖矿病毒,部分伪装成系统文件,占用CPU及网络,病毒进程分别为:system、wipefs、ps、cranberry
故障排查步骤:
查看情况如下:
发现确实有一个异常IP 180.235.138.183在与我司服务器通信,调用的进程是system
操作:
断开网络
将该IP加入到防火墙的Reject名单中
系统负载超过90,进程是“system”
操作:kill掉该进程
再通过top去看,负载立刻降低
发现在/bin下面
操作:删掉该文件
/etc/init.d/sytem
/bin/ddus-uidgen
/etc/rc0-6相关的所有目录下S0打头的所有文件,发现其它奇怪的二进制文件,一并删除
/etc/rc0-6相关的所有目录下acpidtd打头的所有文件,,发现其它奇怪的二进制文件,一并删除
删除 /tmp/gates.lod ,并创建一个权限为000 的文本空文件gates.lod
删除 /tmp/moni.lod ,并创建一个权权为000的文本空文件moni.lod
查找/bin /usr/sbin下所有文件大小为1.2M的文件,如果有,则说明被感染了,使用正常系统的文件替换掉这些文件。
本次查找发现ps/ss/lsof/nestat四个命令被感染了,先删掉这些命令,然后使用本地虚拟机中的命令将其替换
cat /etc/rc.d/init.d/selinux
cat /etc/rc.d/init.d/DbSecuritySpt ,
ls /usr/bin/bsd-port
ls /usr/bin/dpkgd
查看后发现机器中有,全部删掉,在该文件夹下创建一个权限为000的同名文本文件。
/etc/crontab
本次查看没有。
/etc/rc.d/rc.local
查看有一个开机启动项,开机后使用wget下载病毒,删掉。
打开网络再用TOP命令监控30分钟。
结果:网络再次被占用,共循环了三次,感染的程序为wipefs、ps、cranberry,采用相同排查方法排查。直到晚上7点00,监控半小时后没有再复发。
挖矿病毒的特点:
a) 进行挖矿计算,大量占用cpu。
b) 复制自己到/bin/下,创建服务/etc/init.d/下,在 /etc/rc.d 和 /etc/rc.d/rc.d 中创建链接以实现开机启动。
c) 释放子程序到 /bin/ddus-uidgen,创建服务/etc/init.d/acpidtd,并在 /etc/rc.d 和 /etc/rc.d/rc.d 中创建链接以实现开机启动。
d) 修改/etc/resolv.conf, 可能是为其连接矿机服务的域名做服务。
e) 修改/etc/crontab, 为自己创建定时任务,每天12点与0点开始执行。(所以你会发现第二天又启动了)
f) 修改开机启动项rc.local
g) 修改bin /etc/sbin中的一些系统文件为相同大小的病毒文件,
我们在修复的时候要做的就是遵循以下步骤
(一) 杀掉占用资源的进程
(二) 全局查找病毒文件,删掉
(三) 屏蔽掉异常IP
(四) 删除掉病毒生成的异常文件,并同名的权限为000的文本文件
(五) 删掉病毒生成的开机启动项
(六) 删掉病毒生成的定时任务
(七) 修复病毒修改的ps / ss /lsof /netstat 等系统文件