记录进程隐藏的挖矿病毒bioset其删除全过程
服务器感染bioset挖矿病毒后,一般手段找不出来,因为该程序通过手段隐藏了进程,
搜了搜,linux一般自带unhide命令,没有的话执行下yum install unhide
(如果是CentOs8,改为使用dnf
安装),遇到确认项时按y输出确认即可,
unhide proc
开始查找隐藏的进程,
然后发现有bioset,一搜,挖矿病毒,
去/usr/bin看了下,有这个可执行文件,于是先杀进程再删了这个文件,
再扫描一次,居然还有个bioset挖矿进程杀不掉
经过搜索,这个病毒会修改一些像top这类的系统程序,所以大概率只能做好重要数据重装系统,然后密码设置复杂些防止再次被攻击感染
但是,我不信,因为有其他服务器就没有扫描出任何隐藏进程,那我把系统程序用其他服务器的覆盖下试试(记得先备份)
如top,kill,ps,killall,然后报缺依赖(可能是系统版本不完全相同导致的,也可能是当前主机的环境变量被污染而找不到依赖导致的)
还好我备份了
systemctl status 上面查出的进程号
试试,结果提示,该进程号不属于任何自启项,那还算好的,如果是自启项需要去/etc/rc.local文件把其中包含bioset的行删掉
find / -name '*bioset*'
找还有没有残余文件试试,然后又找到一处,果断删掉/usr/local/lib/bioset.so
然后继续使用unhide proc
报了一大堆依赖错误,
ERROR: ld.so: object '/usr/local/lib/bioset.so' from /etc/ld.so.preload cannot be preloaded: ignored.
此处省略n条
那么这个ld.so.preload应该也是一个病毒文件(网上也看到了),删!
然后报权限不够,开始使用lsattr 文件名
命令看它加了什么属性
[root@ etc]# lsattr ld.so.preload
ERROR: ld.so: object '/usr/local/lib/bioset.so' from /etc/ld.so.preload cannot be preloaded: ignored.
----ia---------- ld.so.preload
如上所示,加了ia属性,i不能修改,a表示该文件只能追加内容不能修改(所以一般给个i就够了)
现在来移除它们
chattr -ia ld.so.preload
在执行上述命令过程中,报chattr
命令不存在,发现该命令已被重命名,找到原来的chattr
命令后,替换回来,最终得以执行.
然后再删rm -f ld.so.preload
,成功,也没报错了,再来一次隐藏进程扫描unhide proc
,OK,没有隐藏进程了,结束