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

  本次清理通过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. ASP.NET Core 2.0 in Docker on Windows Container

    安装Docker for Windows https://store.docker.com/editions/community/docker-ce-desktop-windows 要想将一个ASP. ...

  2. MongoDB自动增长

    MongoDB 没有像SQL一样有自动增长的功能,如果我们需要实现ObjectId自动增长功能,可以通过编程的方式来实现.步骤如下: 1. 创建counters集合: db.createCollect ...

  3. Arduino上传数据至贝壳物联并与FPGA进行交互

    本篇实现Arduino与FPGA交互,当然也没有什么新的协议,还是基于串口通讯,现在学一个串口通信基本上可以驱动大多数模块了,而且和各种单片机无缝数据交互,Arduino由于其强大的库函数支持,在实现 ...

  4. angular控制器、服务和指令三者之间的关系

    从总体来看,这三个组件的关系如下所示: 服务负责从远端服务器抓取和存储数据. 基于服务构建的控制器将为angular的作用域层次提供数据和功能. 基于服务和控制器构建的指令将直接与文档对象模型(DOM ...

  5. 使用Git 本地代码提交到 GitHub

    第一步:下载Git 工具 在官网下载 https://git-scm.com/ 第二部:注册官方账号 创建一个村代码的仓库 注册地址https://github.com/ 第三部:本地代码 通过Git ...

  6. Eclipse 枚举类报错

    当你写一个枚举类时,如果没有在枚举类的第一行写有哪些枚举值,那么就会出现编译报错:Syntax error on token "String", strictfp expected ...

  7. defer与async

    defer:该属性指定的脚本不会修改DOM,因此代码可以安全的延迟执行. 含defer属性的script标签可以放在任何位置,在页面解析到该script标签时,开始下载脚本,但不会执行脚本,直至DOM ...

  8. 技嘉 gigabyte b75m d3v 主板 定时开机无效问题解决

    BIOS 里面设置定时开机后发现到点并没有正常启动~~~  百思不得解.后来发现原来是WIN8系统下的控制面板的关机并非正常关机,而是不保存设置的非正常关机,在开始菜单右键——关闭或注销——关闭计算机 ...

  9. Java中的Redis应用

    1.配置redis集群   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding ...

  10. 用C#实现DES加密解密解决URL参数明文的问题

    啥也不说,直接上代码. 加密解码,封装到一个类,key可以自己修改. using System; using System.Security.Cryptography; using System.Te ...