记录一次病毒清理
最近服务器CPU一直飙升99%,第一直觉是服务器种了挖矿程序。不说废话了,直接开干。
第一 使用top命令查看进程的资源占用情况。
可以看到init-gl的不明进程在作怪。继续追踪 用命令 cd /proc/PID 进入进程运行节点。PID对应上面init-gl的PID值。
利用ps命令查看最近启动的所有进程:ps -aux --sort=start_time |tail -n 50
第二 用命令 cd /proc/PID 或lsof -p PID 进入进程运行节点
如上图就可以找到,病毒的执行文件了。直接切换到程序的目录下。
第三 删除文件
删除文件时可能会被拒绝,报权限不足。我明明是root登录的,为什么会被拒绝呢。接下来隐藏权限lsattr 和chattr就会派上用场了。lsattr 和chattr的使用可以自行百度一下。
lsattr (选项)(参数):
- -E:可显示设备属性的当前值,但这个当前值是从用户设备数据库中获得的,而不是从设备直接获得的。
- -D:显示属性的名称,属性的默认值,描述和用户是否可以修改属性值的标志。
- -R:递归的操作方式;
- -V:显示指令的版本信息;
- -a:列出目录中的所有文件,包括隐藏文件。
chattr (属性)(选项):
属性:
- a:让文件或目录仅供附加用途;
- b:不更新文件或目录的最后存取时间;
- c:将文件或目录压缩后存放;
- d:将文件或目录排除在倾倒操作之外;
- i:不得任意更动文件或目录;
- s:保密性删除文件或目录;
- S:即时更新文件或目录;
- u:预防意外删除。
选项:
- -R:递归处理,将指令目录下的所有文件及子目录一并处理;
- -v<版本编号>:设置文件或目录版本;
- -V:显示指令执行过程;
- +<属性>:开启文件或目录的该项属性;
- -<属性>:关闭文件或目录的该项属性;
- =<属性>:指定文件或目录的该项属性
先使用lsattr 看一下文件是否加了隐藏的删除权限。果然被加了禁止删除。
接着,使用chattr -i /文件路径 解除删除权限。解除后就可以删除文件了。
删除文件后,隔一段时间后第二又会出现,这是病毒有一个定定时任务在定时执行,病毒程序会重新被启动。
第四 清理定时任务
接下来我们要找到定时任务并清除。使用crontab -l 查看在定时任务,果然有任务在运行。每个20分钟执行一次脚本。
定时任务脚本:
cron 和 crontab分不开的。
/etc/crontab文件,这个就是系统任务调度的配置文件。使用crontab -r删除任务,这里要谨慎操作。-r会删除所有的任务,如果被拒接,同样需要设置权限。
/etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly 等文件夹下是清理不明脚本。
自启脚本:在CentOS中总共有7种运行级别,可以在/etc/inittab 文件中进行设置,7种运行级别对应着 /etc/rc.d/rc[0-6].d 这七个目录。
你可能也发现了在/etc下也有同样的7个文件夹即 /etc/rc[0-6].d ,通过查看发现/etc/rc[0-6].d其实就是/etc/rc.d/rc[0-6].d的软连接,只是为了保持和Unix的兼容性。这7个目录对应着7种不同运行级别,也就是说在每一个目录下的内容表示在该运行级别下应该启动或者关闭的服务