记一次阿里云linux病毒清理过程
1、起因
因为这台服务器是我们公司内部开发服务器,几乎每个人都有root密码。在两天前突然有同事反馈说偶尔会有ssh连不上,git代码无法提交的问题,刚开始也没有在意,以为是阿里云服务器网络波动的原因。
今天开发又像我反应redis连不上并且ssh也连不上,感觉事情没有想象的那么简单了,还好我在跳板机上能够远程连接上,所以就稍微看了一下。
2、处理过程
2.1 观察监控和服务器资源
因为觉得不对劲,所以瞄了一眼监控,发现这台服务器eth0网卡的流量被跑满了,图在下面
在服务器上通过ifconfig
查看,发现eth0这个网卡已经被跑了好几个T的流量了。
知道是因为网卡流量被跑满了,所以要看一下到底是什么进程跑掉的,于是ps -ef
看了一下,发现进程真特么多完全没法一眼看出来,想了想既然跑那么多流量那一定也比较吃资源,决定top d1
看一眼,不看不知道一看吓一跳,不多说了上图:
这个pid为7796的进程吃了76.2%的CPU,这是要上天啊!!!
2.2 话不多说就是干
二话不说直接kill -9 7796
,然后试了一次ssh连接,果然好使,秒秒钟就连上了,然后观察监控,果然流量也下来了。
2.3 事情并没有这么简单
然而事情并没有这么简单,我还没开始嘚瑟,流量又上去了,ssh也连不上了。
这个还带满血复活的么?事情并不简单,top d1
一看,又有一个不认识的进程起来了,还是那么的吃CPU。不管三七二十一又是一顿操作猛如虎秒秒钟杀了它。
满血复活应该是有定时任务啊!!!其实我也不确定有没有,反正有想法总是好的,然后crontab -l
看了一眼:
并没有定时任务啊,果然能做这种缺德事的一般脑子都是比较灵光的。还好我看了一眼定时任务的配置文件:
果然是定时任务的原因,然后赶紧把定时任务删了,把定时任务对应目录下的脚本自己down下来,然后删掉。
说了没那么简单,果然真的没那么简单,之前的处理方式太草率了,以为把定时任务删掉之后就万事大吉了,结果没多久又开始了:
这次我觉得慢慢来,看一下这个进程到底是哪里来的,已知进程pid为27894
查看一下这个进程的具体目录在哪里:
可以看到cwd -> /tmp,进入/tmp目录查看:
该目录下游几个可执行文件,直接删掉!!!
3、硬是没总结出什么来
关于这次的事件,具体是什么原因导致的我也没想明白,最大的可能就是root密码知道的人太多了。
最后把两个脚本放上来,大家研究研究:
0anacron
:
#!/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
cron.sh
:
#!/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服务器中木马(肉鸡)手工清除方法 - -V - 博客园
Unix.Trojan.DDoS_XOR-1、Linux.Trojan.Agent(Linux.BackDoor.Gates.5)木马清理 - CSDN博客
一次Linux服务器被入侵和删除木马程序的经历-彩龙社区 - Powered by Discuz!
Linux服务器下Linux.BackDoor.Gates.5病毒的简单处理方法 - 小西瓜的管理和技术之路 - SegmentFault 思否
记一次阿里云linux病毒清理过程的更多相关文章
- 记一次阿里云Linux服务器安装.net core sdk的问题以及解决方法
因为公司领导要求新的项目能跨平台部署,也就是说能部署到Linux服务器上,故新的项目采用了Asp.net mvc core 1.1 进行开发.开发过程一切都比较顺利,然后在之前申请试用的一台微软Azu ...
- 阿里云Linux安装软件镜像源
阿里云Linux安装软件镜像源 阿里云是最近新出的一个镜像源.得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源.阿里云Linux安装镜像源地址:http://mirrors.aliyun. ...
- [分享]运维分享一一阿里云linux系统mysql密码修改脚本
[分享]运维分享一一阿里云linux系统mysql密码修改脚本 大象吃豆子 级别: 小白 发帖 12 云币 27 加关注 写私信 只看楼主 更多操作楼主 发表于: 2014-09-3 ...
- 在阿里云Linux服务器上安装MySQL
申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务器. 操作系统:Red Hat Enterprise Linux Server 5.4 64位. CPU:1核 内存:5 ...
- Xftp连接阿里云Linux,向Linux上传文件,Windows和Linux文件传输
我之前是用SecureCRT连接阿里云Linux的,上传文件用的Alt+p快捷键,感觉不是很方便.后来朋友给我推荐了Xshell,感觉确实好用得很多. 传输文件用的是Xftp,今天在向我的个人网站发布 ...
- 阿里云Linux服务器安装 nginx+mysql+php
阿里云Linux服务器安装 nginx+mysql+php步骤1.登录服务器2.下载安装包3.将安装包上传到服务器的/home目录下 注:使用rz sz命令进行本地和服务器间的上传.下载,安装命令yu ...
- 阿里云linux图形界面(centos6)
阿里云linux图形界面的安装方法:安装gnome图形化桌面#yum groupinstall -y "X Window System"#yum groupinstall -y & ...
- 阿里云Linux服务器初探
阿里云Linux服务器初探 阿里云Linux服务器初探 因为钱包的关系,本人买了一个660元2年的1核1GB的小服务器(centos是Linux的发行版),在当初是用2核4GB(内存)的时候使用的是w ...
- 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器
一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...
随机推荐
- ETL开源工具kettle学习笔记
一 Kettle配置与部署 参考1:http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply1.html 1.下载kettle ...
- Notes About Singular Value Decomposition
A brief summary of SVD: An original matrix Amn is represented as a muliplication of three matrices: ...
- 归纳一下:C#线程同步的几种方法
转自原文 归纳一下:C#线程同步的几种方法 我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态:或者你的程序需要访问一些外部资源如数据库 ...
- 转 查看linux文件目录的大小和文件夹包含的文件数
du -sh 文件夹路径 查看linux文件目录的大小和文件夹包含的文件数 统计总数大小 du -sh xmldb/ du -sm * | sort -n //统计当前目录大小 并安大小 排序 du ...
- 安卓开发之不通过USB数据线调试的方法
搞安卓开发的程序员肯定都需要用又笨又碍手碍脚的USB数据线连接安卓设备进行调试,是不是觉得非常麻烦? 然后为了避免这种麻烦,我们一般通过网络上的各种方法,比如AS的插件ADB WIFI,不知道大家是如 ...
- centos7 安装 rabbitmq
主题 因为自己学习项目可能会用到rabbitmq..我又是第一次学习.以前没安装过.所以简单记录下我在centos7环境下安装rabbitmq的过程步骤,下次可以参考. 步骤 1.杂七杂八的东西 安装 ...
- C++ Assert()函数
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( i ...
- 简单例子让你很好的理解:协议与委托 (Protocol and Delegate)
1 协议: 协议,类似于Java或C#语言中的接口,它限制了实现类必须拥有哪些方法. 它是对对象行为的定义,也是对功能的规范. 示例: 1 2 3 4 5 6 7 8 9 // GoodChild.h ...
- 【冷门】 C# 小技巧之获取变量名称
今天在自我规范程序设计的时候,变量名匹配字符串来自配置文件,网上找了一会儿发现也有朋友在找寻这种方式,很不容易找到一个解决方案来自http://www.th7.cn/Program/net/20140 ...
- 浅谈JobExecutionContext&JobDataMap