CentOS 6.8 木马查杀过程

木马   占用CPU   弱口令  

挂马原因

  • 刚装好的服务器使用了22端口,并使用了弱口令密码
  • 而且配置了公网IP (原本想用的时候再对服务器环境进行初始化)
  • 只过了一晚,就被挂上了木马(不得不膜拜大神扫描服务器的速度)

问题如下

  • 特征ps命令找不到进程,top能看到负载最高的一个程序是一个随机的10位字母的东西,kill掉之后自动再次出现一个随机10位字母的进程。
  • CPU占用极高
  • 并且用公网流量
  • crontab -l是正常,来到/etc/rc.d/init.d/xntbwcznix下发现了异常有10位字母的启动脚本,脚本内容如下(删除脚本又会产生一个的随便名称脚本)
#!/bin/sh
# chkconfig: 12345 90 90
# description: xntbwcznix
### BEGIN INIT INFO
# Provides:        xntbwcznix
# Required-Start:    
# Required-Stop:    
# Default-Start:    1 2 3 4 5
# Default-Stop:        
# Short-Description:    xntbwcznix
### END INIT INFO
case $1 in  
start)  
    /usr/bin/xntbwcznix
    ;;
stop)  
    ;;
*)
    /usr/bin/xntbwcznix
    ;;
esac  
  • 查看/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
  • 查看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

解决办法

  • 先干掉主脚本
chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/  
  • /etc/rc.d/{init.d,rc{1,2,3,4,5}.d}/ 下启动脚本删除之,主要干掉/etc/rc.d/init.d/下异常脚本即可,其他目录下软链接自动失效
  • 删除计划任务且控制计划任务不能写东西
sed '/gcc.sh/d' /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab  
  • htop 查看高占用的进程ID干掉kill -9 直接干掉,服务器恢复正常

恢复

  • 如果有业务的服务器,安排时间重启服务器
  • 依次/etc/crontab /etc/rc.d/init.d/ /etc/rc.d/rc3.d/ /lib文件夹的权限