背景:客户服务器被挂载木马病毒用以挖矿(比特币)。

  本次清理通过Linux基本命令完成。其原理也比较简单,通过ps命令查看服务器异常进程,然后通过lsof命令定位进程访问的文件,找到异常文件删除之,最后为了确保万无一失,可以通过find命令找出最近时间内服务器上产生的文件进一步排除。

  刚开始通过top命令发现某个进程占据大量系统CPU资源,但是该进程确不是我们系统业务进程。通过kill -9 PID  杀掉该进程,观察一会后,进程又恢复了。怀疑是定时任务拉起的,固排查了下定时任务相关的配置文件/etc/crontab文件,果然文件中存在一条新增加的内容,干掉该条配置,并找到它的启动的可执行文件,删除之。继续杀掉进程,可是发现该进程又被拉起了。看来不止定时任务,可能还有其他守护进程存在。

  利用ps命令查看最近启动的所有进程:ps -aux --sort=start_time |tail -n 50

  通过分析,找到有几个进程存在问题,有启动脚本的,有wget从网络上下载文件的进程。

  通过lsof -p pid定位以上异常进程访问的相关文件资源,删除非系统文件后kill对应进程。

  观察一段时间后发现又有异常进程起起来了。这时候就开始头疼了,还有什么地方呢。会不会是一些系统文件被感染了?顺着这条思路,找到最近一段时间被修改的文件列表

  find $path -ctime -30 print

  把/usr /root /tmp /bin等系统目录找了个遍,发现大量异常文件,其中甚至有一些常用的命令如:ps netstat lsof wget 等被篡改过(通过stat命令查看状态)。

  并且以上系统命令大小一模一样,算了下md5也一样,果然有问题。把对应命令文件拷贝出来,放到在线病毒库对比一看,果然是病毒。先用正常服务器的对应文件替换被感染的系统命令。然后再按照之前清理步骤再清理一遍。好了,观察了一会,没有进程文件再被拉起了。

  接下来,追踪下最近修改文件,看看能不能找到黑客是怎么入侵进来的。我们发现在activemq目录下存在大量异常jsp文件,查看其内容,简直就是一个网页版的命令执行工具啊。看来咱服务器用的activemq存在漏洞,被黑客利用了,植入后门文件,然后利用wget命令下载病毒完成病毒植入,再利用命令执行工具,完成相关进程部署。临时应急方案,我们选择屏蔽activemq的管理页面的访问权限(之前对公网开放了该端口)。本次病毒清理也到此结束了。

  反思:对服务器上一些开源组件的使用时,我们应该保持警惕,不能说完全不用,但是要随时关注组件的漏洞情况,及时修复,同时,对于一些非公共资源的访问,避免对公网开放。养成定期对系统做安全检查。

Linux服务器病毒清理实践的更多相关文章

  1. 记一次Linux Centos7病毒清理

    记一次在工作中测试环境下中病毒的处理解决办法,都说linux系统非常安全,但是很多人百年一遇的病毒被我遇上了,公司三台测试环境服务器中招. 最开始系统突然变得很卡,使用top命令查看资源占用情况,发现 ...

  2. Linux服务器高并发实践经历

    作为一个师父离职早的野生程序员,业务方面还可以达到忽悠别人的水平,但上升到性能层面那就是硬伤. 真实天上掉馅饼,公司分配了一个测试性能的任务,真是感觉我的天空星星都亮了. 高并发主要限制因素:CPU. ...

  3. linux服务器随机10字符病毒/libudev4.so病毒清理的过程

    故障表现:某天晚上突然收到某项目一台web服务器CPU报警,SSH连接困难卡顿,登陆后发现CPU使用率飙升到700%,第一感觉是被黑了,来事了. 故障处理: 1.登陆上后发现有好多莫名的命令(who/ ...

  4. 记一次阿里云linux病毒清理过程

    1.起因   因为这台服务器是我们公司内部开发服务器,几乎每个人都有root密码.在两天前突然有同事反馈说偶尔会有ssh连不上,git代码无法提交的问题,刚开始也没有在意,以为是阿里云服务器网络波动的 ...

  5. jprofiler_监控远程linux服务器的JVM进程(实践)

    几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...

  6. 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记

    首先,这本书是Linux.CN赠送的,多谢啦~ http://linux.cn/thread-12733-1-1.html http://linux.cn/thread-12754-1-1.html ...

  7. Windows使用Telnet连接Linux服务器初探(待实践)

    在Windows下可以适用Telnet连接Linux服务器,但是前提是在Linux下需要安装Tlenet-Server.还要开启防火的23端口.搞定之后就可以用telnet IP进行连接. 但是,我发 ...

  8. Linux 服务器性能测试报告-sysbench命令实践

    Linux 服务器性能测试报告 我们使用linux 工具sysbench 来测试linux服务器性能,目前在Centos上进行操作 Install sysbench yum -y install sy ...

  9. linux服务器开发一 基础

    注:本文仅限交流使用,请务用于商业用途,否则后果自负! Linux 1.Linux介绍 Linux是类Unix计算机操作系统的统称. Linux操作系统的内核的名字也是“Linux”. Linux这个 ...

随机推荐

  1. SpringMVC 基本概念

    DispatcherServlet:前端控制器,解释用户请求,通过HandlerMapping查找对应Handler处理请求,调用ViewResolve回填页面,DispatcherServlet在W ...

  2. dubbo的架构

    dubbo架构图如下所示: 节点角色说明: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. Monitor: ...

  3. Java基础-运行原理及变量(01)

    java运行原理 手动编写java文件由编译器编译成.class文件,再由解释器翻译class文件成机器语言运行. Java中注释分类 单行注释格式: //注释文字多行注释格式: /* 注释文字 */ ...

  4. angular指令中@,=,&的区别

    当directive中的scope设置为一个对象的时候,该指令就有了一个独立的作用域,AngularJS提供了一种绑定策略用于隔离作用域和外部作用域进行通信. 1.@(or @attr) 使用@符号可 ...

  5. HDU1166 敌兵布阵(树状数组)

    C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...

  6. Picture

    Picture Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  7. jQuery 插件格式 规范

    方式一(自定义对象): (function($, window, document) {  var Plugin, defaults, pluginName; 调用时的函数名:     pluginN ...

  8. RobotFramework自动化测试框架-移动手机自动化测试Get Element Location关键字的使用

    Get Element Location关键字用来获取一个Element的Location位置,该关键字接收一个参数[ locator ] 示例1:使用Get Element Location来获取一 ...

  9. Unity中的Mono & Linux上编译Mono的流程

    前段时间编译了一下Unity的Mono,看了很多相关的文章,也遇到很多新坑.所以来总结一下,加深自己对Mono的理解 为什么Unity可以跨平台运行呢 通常Unity的脚本有C#.JS.Boo.不过现 ...

  10. oracle数据库冷备中的手工备份和恢复

    我的操作系统是red hat5.5 32位系统oracle11g 以我的系统为例: 冷备状态下,数据库必须是关闭的,但是我们现在要做一个实验,在开库的状态下分别查询出: 1.show paramete ...