挂马原因
- 刚装好的服务器使用了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
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
#!/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文件夹的权限