本帖最后由 liang2580 于 2018-4-9 21:00 编辑
我今天上班午休的时候,一个朋友找我,说打开网站很慢,我访问了一下,不慢啊,后面我就去睡觉去了。睡醒之后我才发现了问题龌蹉。特征ps命令找不到进程,top能看到负载最高的一个程序是一个随机的10位字母的东西,kill掉之后自动再次出现一个随机10位字母的进程。
我此刻想想。龌蹉。这么难搞么? 我作为打不死的小强。我就不信了。执行一个命令。卡一下。朋友的机器是8核心16G的机器。
龌蹉。CPU跑到了百分之799 我说怎么这么卡。
这时候我想到一个问题居然是能自我开机启动,要么/etc/rc.d/{init.d,rc{1,2,3,4,5}.d}/下有启动脚本,要么有cron计划任务。
于是我发现crontab -l是正常,来到/etc/rc.d/init.d下发现了异常有10位字母的启动脚本,脚本内容如下
龌蹉。龌蹉 。一大坨的东西,吓死我了,那就随便查看一个吧。
- [root@localhost rc6.d]# ls
- K15pure-ftpd K25nginx K50netconsole K79iprdump K80iprupdate K90ghpiscaobv K90kakaipdban K90olpcsfiisv K90srshvadwgl K90yhcbwmmbui K90zhwxkkocsx
- K25bt K36mysqld K50php-fpm-56 K80iprinit K90eyshcjdmzg K90jljpidvnbb K90network K90rlmqasojjo K90vnessxebzv K90ylvjsohrqi K90zpwtmltusi
复制代码
这tmd 的什么鬼玩意。一脸懵逼
看到这我真是佩服这帮人单用户启动模式都不放过啊,尼玛,你这是赶尽杀绝啊。。。。。。。
到了这里我天真的删除了几个这样的启动脚本,然后重启服务器,问题依旧。。。。。。。。。你妹啊。。。不带这样玩的。。。。rc0-rc6 都中木马
我此刻的心都崩溃了
于是我又很傻很天真的删除了这些启动脚本,并且kill了相关进程,希望的太阳没有升起,沉重的打击再次来临,木马再次自我复制自我运行了。。。。启动脚本再次出现了。。
我知道我进入了误区,重新想思路。。。
不知道为什么我瞬间想到了我遗漏了一个地方,cron,对。。。我是crontab -l 来查看的,还有个地方的cron任务不会在这个命令下出现/etc/cron.*
[- root@Xd9BdoAkG ~]# 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
复制代码
你妹啊 啊 啊 啊,不带这样玩的
- [root@Xd9BdoAkG ~]# 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
复制代码
妈的 真难受 删掉 - mv /etc/crontab /etc/crontab2 echo "" >/etc/crontab && chattr +i /etc/crontab
- mv /etc/cron.hourly/gcc.sh /etc/cron.hourly/gcc2.sh && rm -rf /etc/cron.hourly/gcc.sh
复制代码
- [root@Xd9BdoAkG ~]# cat /proc/net/dev|grep :|awk -F: {'print $1'}
- lo
- em1
- em2
- em3
- em4
复制代码
我擦,看到这,再次shit,你还知道主动启动网络和外面联系啊。。。。
- [root@Xd9BdoAkG ~]# file /lib/libudev.so
- /lib/libudev.so: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped
复制代码
居然不是脚本什么的,想看文件具体内容暂时是没时间了。。。。。。。
到了这里我们可以确认有几个地方有问题/lib/libudev.so /etc/cron.hourly/gcc.sh /etc/crontab /etc/rc.d/init.d/ /etc/rc.d/rc3.d/
由于对方发送大量数据包,所以开始采取iptables来封禁,发现这玩意直接把output是 state 为new的drop掉。。。。。。。。不想说了,已经被他玩够了,不在乎多一次。。
通过排查可以肯定/lib/libudev.so是主体。其他是协助运行和自我保护自我复制的实现。既然你是个程序还在系统上,我有root,还搞不定么。为了不再多拖时间,直接查杀了。。
- [root@Xd9BdoAkG ~]# chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/
复制代码
到了这里基本就差不多了。。。。。现在去重启服务器,
- [root@Xd9BdoAkG ~]# top -b -n1 | head
- top - 18:13:47 up 0 min, 1 user, load average: 0.11, 0.03, 0.01
- Tasks: 178 total, 2 running, 176 sleeping, 0 stopped, 0 zombie
- Cpu(s): 1.4%us, 1.6%sy, 0.0%ni, 95.7%id, 1.3%wa, 0.0%hi, 0.0%si, 0.0%st
- Mem: 32827160k total, 486308k used, 32340852k free, 6864k buffers
- Swap: 16482300k total, 0k used, 16482300k free, 28312k cached
复制代码
|
|