• 欢迎访问南思工作室官方站点.
  • 文章内容如有失效请文章下留言,我们看到后会第一时间处理。
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏南思工作室吧。
  • 图片服务器和主服务器都挂了CDN,如有异常,请留言,我们会尽快处理。

记录一次Linux服务器被挂马然后查杀的详细记录

linux nansi 来源:liang2580 6个月前 (05-03) 130次浏览 0个评论

我今天上班午休的时候,一个朋友找我,说打开网站很慢,我访问了一下,不慢啊,后面我就去睡觉去了。睡醒之后我才发现了问题龌蹉。特征 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  

记录一次 Linux 服务器被挂马然后查杀的详细记录


南思工作室 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:记录一次 Linux 服务器被挂马然后查杀的详细记录
免责声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
喜欢 (12)
关于作者:
南思工作室管理员
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址