热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

服务器root权限一定不要放出去,不然累死的还是自己!记一次Linux服务

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


1

起因

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

    这天开发又像我反应redis连不上并且ssh也连不上,感觉事情没有想象的那么简单了,还好我在跳板机上能够远程连接上,所以就稍微看了一下。


2

事情并没有那么简单

    因为觉得不对劲,所以瞄了一眼监控,发现这台服务器eth0网卡的流量被跑满了,图在下面:

    在服务器上通过ifconfig
查看,发现eth0这个网卡已经被跑了好几个T的流量了。

    知道是因为网卡流量被跑满了,所以要看一下到底是什么进程跑掉的,于是ps -ef
看了一下,发现进程真特么多完全没法一眼看出来,想了想既然跑那么多流量那一定也比较吃资源,决定top d1
看一眼,不看不知道一看吓一跳,不多说了上图:

    这个pid为7796的进程吃了76.2%的CPU,这是要上天啊!!!



3

怎么办?盘它!

    二话不说直接kill -9 7796
,然后试了一次ssh连接,果然好使,秒秒钟就连上了,然后观察监控,果然流量也下来了。

    然而事情并没有这么简单,我还没开始嘚瑟,流量又上去了,ssh也连不上了。

    这个还带满血复活的么?事情并不简单,top d1
一看,又有一个不认识的进程起来了,还是那么的吃CPU。不管三七二十一又是一顿操作猛如虎秒秒钟杀了它。

    满血复活应该是有定时任务啊!!!其实我也不确定有没有,反正有想法总是好的,然后crontab -l
看了一眼:

    并没有定时任务啊,果然能做这种缺德事的一般脑子都是比较灵光的。还好我看了一眼定时任务的配置文件:

    果然是定时任务的原因,然后赶紧把定时任务删了,把定时任务对应目录下的脚本自己down下来,然后删掉。

    说了没那么简单,果然真的没那么简单,之前的处理方式太草率了,以为把定时任务删掉之后就万事大吉了,结果没多久又开始了:

    这次我觉得慢慢来,看一下这个进程到底是哪里来的,已知进程pid为27894:

    查看一下这个进程的具体目录在哪里:

    可以看到cwd -> tmp,进入/tmp目录查看:

    该目录下有几个可执行文件,直接删掉!!!

    后来还是不放心,参考了网上几篇文章,进行了进一步的检查,将病毒修改过的系统命令从别的正常的服务器上拷贝过来之后重新替换,后期又发现了几个隐藏在系统中的可执行脚本(没来得及把脚本down下来,写这个的时候有点遗憾了!),都是通过wget去某些服务器上down一些脚本,然后在本地执行的,找到一个删一个,最后终于算是太平了!

    然后观察了一段时间,确定没有再次出现redis和ssh连不上之后才算安心了。


4

总结一下

    关于这次服务器中病毒的事情个人感觉公司不管是生产还是测试的环境还是要回收root密码,不能以为是测试环境就无所谓,一旦出事情影响还是很大的,毕竟任何服务器只要把Root或者Administrator权限泄露出去了,对于Hacker来说就拥有无限可能,要知道Hacker就是高级的程序员,呵呵。

    中病毒很简单,但是要清除病毒真的是很费时费力费脑子还费耐心,所以还是不要把root权限放出去比较安全!


5

参考一下高级程序员写的脚本

最后将down下来的两个脚本放出来,大家参考一下:

    #!/bin/sh
    # Check whether 0anacron was run today already
    if test -r /var/spool/anacron/cron.daily; then
    day=`cat /var/spool/anacron/cron.daily`
    fi
    if [ `date +%Y%m%d` = $day ]; then
    exit 0;
    fi
    # Do not run jobs when on battery power
    if test -x /usr/bin/on_ac_power; then
    /usr/bin/on_ac_power >/dev/null 2>&1
    if test $? -eq 1; then
    exit 0
    fi
    fi
    /usr/sbin/anacron -s

      #!/bin/sh
      PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
      for i in `cat /proc/net/dev|grep :|awk -F: {print $1}`; do ifconfig $i up& done
      cp /lib/udev/udev /lib/udev/debug
      /lib/udev/debug



      推荐阅读
      • 在Linux系统上构建Web服务器的详细步骤
        本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
      • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
      • Spring Boot单元测试中Redis连接失败的解决方案
        本文探讨了在Spring Boot项目中进行单元测试时遇到Redis连接问题的原因及解决方法,详细分析了配置文件加载路径不当导致的问题,并提供了有效的解决方案。 ... [详细]
      • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
      • 本指南详细介绍了如何在同一台计算机上配置多个GitHub账户,并使用不同的SSH密钥进行身份验证,确保每个账户的安全性和独立性。 ... [详细]
      • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
        本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
      • 本文将指导您如何在Docker环境中高效地搜索、下载Redis镜像,并通过指定或不指定配置文件的方式启动Redis容器。同时,还将介绍如何使用redis-cli工具连接到您的Redis实例。 ... [详细]
      • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
        本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
      • 嵌入式开发环境搭建与文件传输指南
        本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
      • 简化报表生成:EasyReport工具的全面解析
        本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
      • 深入解析Spring启动过程
        本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
      • 版本控制工具——Git常用操作(下)
        本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
      • Spring Boot 中静态资源映射详解
        本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
      • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
      • 配置PHPStudy环境并使用DVWA进行Web安全测试
        本文详细介绍了如何在PHPStudy环境下配置DVWA( Damn Vulnerable Web Application ),并利用该平台进行SQL注入和XSS攻击的练习。通过此过程,读者可以熟悉常见的Web漏洞及其利用方法。 ... [详细]
      author-avatar
      工程技术公司团委
      这个家伙很懒,什么也没留下!
      PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
      Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有