zoukankan      html  css  js  c++  java
  • 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登陆服务器,资源使用正常,病毒处理完成

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

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

  • 相关阅读:
    android:id="@android:id/tabhost" 、android:id="@+id/llRoot" 、android:id="@id/llRoot" 之间的区别
    android:ellipsize的使用
    PopupWindow为什么要设置setBackgroundDrawable(new BitmapDrawable());
    android中LayoutInflater的3种使用以及getSystemService的API
    context 的理解
    Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别
    android Matrix 使用
    public private protected frientdly 作用域
    pyinstaller参数介绍以及总结
    MongoDB高级查询详细
  • 原文地址:https://www.cnblogs.com/pengpengboshi/p/15237365.html
Copyright © 2011-2022 走看看