服务项目:网站建设、仿站、程序开发、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执行后查看到一个异常进程
[root@cloud 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位字母的启动脚本,脚本内容如下:
[root@cloud ~]# 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/
这些目录下均存在木马软链接
[root@cloud init.d]# cd /etc/rc.d/rc1.d/
[root@cloud 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
 
同时想到计划任务是否会被串改,于是查看:
[root@cloud ~]# 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后发现
[root@cloud ~]# 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 木马