某日,糟糕植入正在午休中,服务突然一则噩耗从前线传来:网站不能访问了! 图片来自 Pexels 此项目是器被我负责,线上服务器用的挖矿是某讯云的,运行着 Tomcat,木马MySQL,糟糕植入MongoDB,服务ActiveMQ 等程序。器被 排查过程 我以 150+ 的挖矿手速立即打开了服务器,看到 Tomcat 挂了,木马然后顺其自然的糟糕植入重启,启动过程中直接被 killed,服务再试试数据库,器被同样没成功,挖矿多次尝试甚至重启机器无果。木马 机智的我打了个 Top,出现以下内容: 这是谁运行的程序?不管三七二十一先杀掉再说,因为它就是 Tomcat 等程序启动不了的元凶。 然而并没有什么卵用,过一会再看那个东西又跑出来占 CPU。怀疑是个定时任务: 什么鬼,是亿华云计算个图片?立即访问了一下: 好尴尬,但是心思细腻的我早知道没这么简单,肯定只是伪装,crul 过去是下面的脚本,过程就是在挖矿: 有兴趣的同学想查看以上完整源代码,命令行运行下面指令(不分操作系统,方便安全无污染): 既然知道它是个定时任务,那就先取消了它,并且看看它是谁在运行: 杀掉,找到存放目录: 进入临时目录: 被我发现配置文件了,先来看看内容: 虎躯一震,发现了不少信息啊,User 是他的 Server 的登录用户,下面是密码,只可惜加密过,应该找不到对方。 算了,大度的我先不和你计较。干掉这两个文件后再查看 Top: 解决办法 找到寄生的目录,云服务器一般都会在 tmp 里,我这个是在 /var/tmp/。首先把 crontab 干掉,杀掉进程,再删除产生的文件。启动 Tomcat 等程序,大功告成! 等等,这远远不够,考虑到能被拿去挖矿的前提下你的服务器都已经被黑客入侵了,修复漏洞才对,不然你杀掉进程删掉文件后,黑客后门进来 history 一敲,都知道你做了啥修复手段。 所以上面办法治标不治本,我后续做了以下工作: 对了,本次遭受攻击是低版本 ActiveMQ 开放端口 61616 有漏洞,网站模板大家记得做优化。 遇到挖矿木马最好的解决方式:将主机镜像、找出病毒木马、分析入侵原因、检查业务程序、重装系统、修复漏洞、再重新部署系统。 写在最后 网友提供的一劳永逸终极解决办法:把你自己的挖矿脚本挂上去运行,这样别人就算挂脚本也跑不起来了。