• 服務項目:網站建設、仿站、程序開發、APP開發設計、移動網站開發設計、企業網站設計、電子商務網站開發、網站維護、網站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
    四川浚網科技有限公司
    四川浚網科技有限公司 (開發設計官網)TEL : 15308000360 / QQ : 38585404

    您的位置:首頁 > 技術經驗 > 服務器 > 正文

    Linux CentOS 進程CPU占用100%木馬查殺過程

    在安裝CentOS-6.9-x86_64-minimal.iso之后因為設置用戶密碼比較簡單,并且沒有修改默認的22遠程端口,導致短時間被掃描入侵,然后服務器瘋狂向外發包,因此被自己搞死過好幾次別人的機房部分網絡,當時我并未注意,還認為是獲取的鏡像源有問題,所以封鎖向外發包就沒事了,不過過了很久之后我發現服務器CPU一直100%但是并無異常,不過TOP查看進程后看到一個進程非常奇怪,是一個隨機的10位字母進程,這就引起了我的注意,于是開始漫長折騰之路...

     
    首先我kill掉該進程之后它會自動再次出現一個新的隨機10位字母的進程,我確定是中毒了,而且這個木馬有自我恢復能力。
     
    TOP執行后查看到一個異常進程
    [[email protected] cron.hourly]# top
    top - 00:35:21 up 10 min,  1 user,  load average: 2.68, 2.18, 1.19
    Tasks: 484 total,   1 running, 483 sleeping,   0 stopped,   0 zombie
    Cpu(s):  5.6%us,  3.1%sy,  0.0%ni, 90.8%id,  0.4%wa,  0.0%hi,  0.1%si,  0.0%st
    Mem:   8026932k total,  1084296k used,  6942636k free,    80368k buffers
    Swap:  8388604k total,        0k used,  8388604k free,   282692k cached
    
       PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                
      2918 root      20   0 32664  580  200 S 136.3  0.0  10:37.95 LWnS6b6qrw                                             
      1743 root      20   0 66236 1200  484 S  5.5  0.0   0:40.08 sshd                                                    
     74026 root      20   0 15288 1520  892 R  5.5  0.0   0:00.06 top                                                     
      1644 root      16  -4 93132  872  608 S  3.7  0.0   0:18.06 auditd                                                  
      1666 root      20   0  246m 8632 1116 S  1.8  0.1   0:16.20 rsyslogd                                                
      ...
    
    這時候我想到一個問題我都沒執行過這個進程他怎么會一直存在呢?這玩意肯定是開機啟動,要么/etc/rc.d/{init.d,rc{1,2,3,4,5}.d}/下有啟動腳本,要么有cron計劃任務。 于是我發現crontab -l是正常的,來到/etc/rc.d/init.d下發現了異常有10位字母的啟動腳本,腳本內容如下:
    [[email protected] ~]# cat /etc/rc.d/init.d/LWnS6b6qrw
    #!/bin/sh
    # chkconfig: 12345 90 90
    # description: LWnS6b6qrw
    ### BEGIN INIT INFO
    # Provides:        LWnS6b6qrw
    # Required-Start:    
    # Required-Stop:    
    # Default-Start:    1 2 3 4 5
    # Default-Stop:        
    # Short-Description:    LWnS6b6qrw
    ### END INIT INFO
    case $1 in
    start)
        /usr/bin/LWnS6b6qrw
        ;;
    stop)
        ;;
    *)
        /usr/bin/LWnS6b6qrw
        ;;
    esac
    
     
    經過查找
    /etc/rc.d/rc1.d/
    /etc/rc.d/rc2.d/
    /etc/rc.d/rc3.d/
    /etc/rc.d/rc4.d/
    /etc/rc.d/rc5.d/
    /etc/rc.d/rc6.d/
    這些目錄下均存在木馬軟鏈接
    [[email protected] init.d]# cd /etc/rc.d/rc1.d/
    [[email protected] rc3.d]# ll
    total 0
    lrwxrwxrwx. 1 root root 19 Nov 20  2016 K10saslauthd -> ../init.d/saslauthd
    lrwxrwxrwx. 1 root root 18 Nov 23  2016 K15svnserve -> ../init.d/svnserve
    lrwxrwxrwx. 1 root root 20 Nov 20  2016 K87multipathd -> ../init.d/multipathd
    lrwxrwxrwx. 1 root root 21 Nov 20  2016 K87restorecond -> ../init.d/restorecond
    lrwxrwxrwx. 1 root root 20 Nov 20  2016 K89netconsole -> ../init.d/netconsole
    lrwxrwxrwx. 1 root root 15 Nov 20  2016 K89rdisc -> ../init.d/rdisc
    lrwxrwxrwx. 1 root root 22 Nov 20  2016 S02lvm2-monitor -> ../init.d/lvm2-monitor
    lrwxrwxrwx. 1 root root 16 Nov 20  2016 S07iscsid -> ../init.d/iscsid
    lrwxrwxrwx. 1 root root 19 Nov 20  2016 S08ip6tables -> ../init.d/ip6tables
    lrwxrwxrwx. 1 root root 18 Nov 20  2016 S08iptables -> ../init.d/iptables
    lrwxrwxrwx. 1 root root 17 Nov 20  2016 S10network -> ../init.d/network
    lrwxrwxrwx. 1 root root 16 Nov 20  2016 S11auditd -> ../init.d/auditd
    lrwxrwxrwx. 1 root root 17 Nov 20  2016 S12rsyslog -> ../init.d/rsyslog
    lrwxrwxrwx. 1 root root 15 Nov 20  2016 S13iscsi -> ../init.d/iscsi
    lrwxrwxrwx. 1 root root 19 Nov 20  2016 S15mdmonitor -> ../init.d/mdmonitor
    lrwxrwxrwx. 1 root root 26 Nov 20  2016 S25blk-availability -> ../init.d/blk-availability
    lrwxrwxrwx. 1 root root 15 Nov 20  2016 S25netfs -> ../init.d/netfs
    lrwxrwxrwx. 1 root root 19 Nov 20  2016 S26udev-post -> ../init.d/udev-post
    lrwxrwxrwx. 1 root root 19 Nov 23  2016 S50php56-fpm -> ../init.d/php56-fpm
    lrwxrwxrwx. 1 root root 14 Nov 20  2016 S55sshd -> ../init.d/sshd
    lrwxrwxrwx. 1 root root 17 Nov 22  2016 S64mariadb -> ../init.d/mariadb
    lrwxrwxrwx. 1 root root 17 Nov 20  2016 S80postfix -> ../init.d/postfix
    lrwxrwxrwx. 1 root root 15 Nov 23  2016 S85httpd -> ../init.d/httpd
    lrwxrwxrwx. 1 root root 15 Nov 20  2016 S90crond -> ../init.d/crond
    lrwxrwxrwx. 1 root root 22 Jun 12 00:25 S90LWnS6b6qrw -> /etc/init.d/LWnS6b6qrw
    lrwxrwxrwx. 1 root root 11 Nov 20  2016 S99local -> ../rc.local
    
     
    同時想到計劃任務是否會被串改,于是查看:
    [[email protected] ~]# cat /etc/crontab 
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    # For details see man 4 crontabs
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed
    */3 * * * * root /etc/cron.hourly/gcc.sh
    
    果然被串改,最后一句是被增加上去的
     
    再跟蹤/etc/cron.hourly/gcc.sh后發現
    [[email protected] ~]# cat /etc/cron.hourly/gcc.sh
    #!/bin/sh
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
    for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
    cp /lib/libudev.so /lib/libudev.so.6
    /lib/libudev.so.6
    
     
    到了這里我們可以確認有幾個地方有問題
    /lib/libudev.so
    /etc/cron.hourly/gcc.sh
    /etc/crontab
    /etc/rc.d/init.d/
    /etc/rc.d/{init.d,rc{1,2,3,4,5}.d}/
     
    最后處理方法:
    搜索并刪除所有病毒 LWnS6b6qrw (你的系統中可能名稱不一樣請仔細核對)
    刪掉所有啟動目錄下的 S90LWnS6b6qrw 病毒軟鏈接(注意:如果你的服務器是其他病毒名稱,請仔細核對)。
    搜索并刪除 libudev.solibudev.so.6
    刪除計劃任務多余的病毒代碼 */3 * * * * root /etc/cron.hourly/gcc.sh
    刪除病毒配置文件 root /etc/cron.hourly/gcc.sh
     
    重啟后發現進程沒異常了

    如果你依然無法解決,請聯系QQ:38585404  電話:15308000360 有償幫助你解決
     



    上一篇:Windows10 2012 2016 HYPER-V 實現管理器遠程管理虛擬機
    下一篇:Linux下tar命令exclude選項排除指定文件或目錄后綴

    相關熱詞搜索:centos linux 木馬
    湖北新11选五走势图