来自:开源中国,作者:我叫刘半仙 

链接:https://my.oschina.net/liughDevelop/blog/1786631

某日,正在午休中,突然一则噩耗从前线传来:网站不能访问了!

此项目是我负责,线上服务器用的是某讯云的,运行着 Tomcat,MySQL,MongoDB,ActiveMQ 等程序。

排查过程

我以 150+ 的手速立即打开了服务器,看到 Tomcat 挂了,然后顺其自然的重启,启动过程中直接被 killed,再试试数据库,同样没成功,多次尝试甚至重启机器无果。

机智的我打了个 Top,出现以下内容:

这是谁运行的程序?不管三七二十一先杀掉再说,因为它就是 Tomcat 等程序启动不了的元凶。

然而并没有什么卵用,过一会再看那个东西又跑出来占 CPU。怀疑是个定时任务:

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

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

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

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

杀掉,找到存放目录:

进入临时目录:

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

虎躯一震,发现了不少信息啊,User 是他的 Server 的登录用户,下面是密码,只可惜加密过,应该找不到对方。

算了,大度的我先不和你计较。干掉这两个文件后再查看 Top:

解决办法

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

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

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

  • 把所有软件升级到新版本。

  • 修改所有软件默认端口号。

  • 打开 ssh/authorized_keys,删除不认识的密钥。

  • 删除用户列表中陌生的帐号。

  • 封了他的 ip。

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

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

遇到挖矿木马最好的解决方式:将主机镜像、找出病毒木马、分析入侵原因、检查业务程序、重装系统、修复漏洞、再重新部署系统。

写在最后

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


●编号1003,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

Linux学习

更多推荐25个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

net start mysql 服务名无效_记一次服务器被植入挖矿木马cpu飙升200%解决过程相关推荐

  1. 网页java挂挖矿_记一次服务器被植入挖矿脚本的解决过程

    记一次服务器被植入挖矿脚本的解决过程 删除挖矿脚本和对应的进程 找出并删除对应挖矿脚本文件 找出进程pid,并且kill掉 无法kill掉的是原进程的守护进程,原进程不在它也会自动关闭,所以不用管它 ...

  2. 启动mysql失败:net start mysql服务名无效

    打开MYSQL服务器时报错: net start mysql; 服务名无效. 请键入 NET HELPMSG 2185 以获得更多的帮助. 解决方法: 1.win + R 输入 services.ms ...

  3. net stop mysql 服务名无效

    输入net stop mysql,提示服务名无效 原因是:因为net start +服务名,启动的是win下注册的服务.此时,系统中并没有注册mysql到服务中.即当前路径下没有mysql服务. 如何 ...

  4. net start mysql服务名无效

    [问题描述] 打开命令提示符,启动mysql,输入命令显示net start mysql服务名无效 [解决方案] 首先,如果配置了全局环境变量,则可以在任意位置直接打开命令提示符就可以操作:若是没有配 ...

  5. MySql 服务名无效

    当我们安装好MySql之后进行启动的时候,我们会发现提示我们服务名无效,那么我们应该如何解决这个问题呢? 如果出现了服务名无效我们要知道这是因为我们的MySql服务没有安装. 错误提示: 解决办法 1 ...

  6. net start mysql 服务名无效。

    如有错误欢迎指正 原因是:因为net start +服务名,启动的是win下注册的服务.此时,系统中并没有注册mysql到服务中.即当前路径下没有mysql服务. 在命令行中输入mysqld --in ...

  7. mysql服务名无效怎么办_mysql服务器无效怎么办

    mysql服务器无效的解决办法:1.按"windows键+R"打开运行对话框,输入命令"cmd",回车打开DOS窗口:2.输入"del c:windo ...

  8. mysql 对象名无效_如何解决“SQL对象名无效”的问题

    展开全部 java中连接数据32313133353236313431303231363533e4b893e5b19e31333433653939库,数据库连接字符串不是可以指定数据库名么,指定了应该就 ...

  9. windows系统,使用命令行启动MySQL服务失败,报错:服务名无效。

    方式一:命令行启动 在windows系统中,使用net start mysql启动MySQL服务,报错:服务名无效. 问题原因: 服务器名错了 解决办法 :应该使用命令net start mysql8 ...

最新文章

  1. 高效的机器学习研究者,应该具备这 6 个习惯
  2. 前沿地带:从量子计算到量子互联网
  3. CSRF(Cross-site request forgery)跨站请求伪造
  4. 允许活动内容如脚本和activex控件
  5. xml学习总结(四)
  6. python常用字符串处理函数_Python第10课:常用的字符串处理函数
  7. Bootstrap禁用某个按钮组
  8. ES11新特性_可选链操作符---JavaScript_ECMAScript_ES6-ES11新特性工作笔记064
  9. Flask-SQLALchemy查询
  10. idea javafx添加maven_IntelliJ IDEA使用之JavaFX
  11. SQLServer2005/2008新的高效分页方法-row_number()over函数的使用
  12. Ubuntu桌面环境 安装与切换
  13. python获取服务器端的时间
  14. 几种常见的JavaScript特效
  15. javascript测试题和参考答案----试题源自牛客网
  16. amr转mp3,amr怎么转换mp3?
  17. Data URL实现用户头像上传
  18. ##免费的标准股票交易接口封装与实盘使用
  19. Roofline-on-NVIDIA-GPUs代码分析
  20. python-opencv文件夹中所有视频按顺序截图片并按顺序命名

热门文章

  1. 第 8 章 配置listener监听器
  2. 升级到virtualbox-2.1.4
  3. 公布一个硬盘杀手的分析报告
  4. C语言中的“”和“”
  5. Diango博客--23.单元测试:测试 blog 应用
  6. html里写js ajax吗,js、ajax、jquery的区别是什么?
  7. PyQt5案例汇总(简洁版)
  8. 【机器学习】opencv-摄像头中的人脸采集
  9. 远程控制python
  10. Python开发中收集的一些常用功能Demo