案例描述

服务器遇到大流量攻击的处理过程。早上接到 IDC 的电话,说我们的一个网段 IP 不停的向外发包,应该是被攻击了,具体哪个 IP不知道,让我们检查一下。

按理分析及解决办法

首先我们要先确定是哪台机器的网卡在向外发包,还好我们这边有 zabbix 监控,我就一台一台的检查,发现有一台的流量跑满了,问题应该出现在这台机器上面。

我登录到机器里面,查看了一下网卡的流量,我的天啊,居然跑了这个多流量。

这台机器主要是运行了一个 tomcat WEB 服务和 oracle 数据库,问题不应该出现在 WEB 服务和数据库上面,我检查了一下 WEB 日志,没有发现什么异常,查看数据库也都正常,也没有什么错误日志,查看系统日志,也没有看到什么异常,但是系统的登录日志被清除了,

我赶紧查看了一下目前运行的进程情况,看看有没有什么异常的进程,一查看,果然发现几个异常进程,不仔细看还真看不出来,这些进程都是不正常的。

这是个什么进程呢,我每次 ps -ef 都不一样,一直在变动,进程号一一直在变动中,我想看看进程打开了什么文件都行,一时无从下手,想到这里,我突然意识到这应该都是一些子进程,由一个主进程进行管理,所以看这些子进程是没有用的,即便我杀掉他们还会有新的生成,擒贼先擒王,我们去找一下主进程,我用 top d1 实时查看进程使用资源的情况,看看是不是有异常的进程占用 cpu 内存等资源,发现了一个奇怪的进程,平时没有见过。这个应该是我们寻找的木马主进程。

我尝试杀掉这个进程, killall -9 ueksinzina ,可是杀掉之后 ps -ef 查看还是有那些子进程,难道没有杀掉?再次 top d1 查看,发现有出现了一个其他的主进程,看来杀是杀不掉的,要是那么容易杀掉就不是木马了。

我们看看他到底是什么, ”which obgqtvdunq” 发现这个命令在 /usr/bin 下面,多次杀死之后又重新在 /usr/bin 目录下面生成,想到应该有什么程序在监听这个进程的状态也可能有什么定时任务,发现进程死掉在重新执行,我就按照目前的思路查看了一下 /etc/crontab 定时任务以及 /etc/init.d启动脚本,均发现有问题。

可以看到里面有个定时任务 gcc4.sh ,这个不是我们设定的,查看一下内容更加奇怪了,这个应该是监听程序死掉后来启动的,我们这边把有关的配置全部删掉,并且删掉 /lib/libudev4.so 。

在 /etc/init.d/ 目录下面也发现了这个文件。

里面的内容是开机启动的信息,这个我们也给删掉。

以上两个是一个在开机启动的时候启动木马,一个是木马程序死掉之后启动木马,但是目前我们杀掉木马的时候木马并没有死掉,而是立刻更换名字切换成另一个程序文件运行,所以我们直接杀死是没有任何用处的,我们目的就是要阻止新的程序文件生成,首先我们取消程序的执行权限并把程序文件成成的目录 /usr/bin 目录锁定。

chmod 000 /usr/bin/obgqtvdunq

chattr +i /usr/bin

然后我们杀掉进程 ”killall -9 obgqtvdunq” ,然后我们在查看 /etc/init.d/ 目录,看到他又生成了新的进程,并且目录变化到了 /bin 目录下面,和上面一样,取消执行权限并把 /bin 目录锁定,不让他在这里生成,杀掉然后查看他又生成了新的文件,这次他没有在环境变量目录里面,在 /tmp 里面,我们把 /tmp 目录也锁定,然后结束掉进程。

到此为止,没有新的木马进程生成,原理上说是结束掉了木马程序,后面的工作就是要清楚这些目录产生的文件,经过我寻找,首先清除 /etc/init.d 目录下面产生的木马启动脚本,然后清楚 /etc/rc#.d/ 目录下面的连接文件。

后来我查看 /etc 目录下面文件的修改时间,发现 ssh 目录下面也有一个新生成的文件,不知道是不是有问题的。

清理差不多之后我们就要清理刚才生成的几个文件了,一个一个目录清楚,比如 ”chattr -i /tmp”,然后删除木马文件,以此类推删除 /bin 、 /usr/bin 目录下面的木马,到此木马清理完毕。

快速清理木马流程

假设木马的名字是 nshbsjdy ,如果 top 看不到,可以在 /etc/init.d 目录下面查看

1 、首先锁定三个目录,不能让新木马文件产生

chmod 000 /usr/bin/nshbsjdy

chattr +i /usr/bin

chattr +i /bin

chattr +i /tmp

2 、 删除定时任务及文件以及开机启动文件

删除定时任务及文件

rm -f /etc/init.d/nshbsjdy

rm -f /etc/rc#.d/ 木马连接文件

3 、杀掉木马进程

killall -9 nshbsjdy

4 、 清理木马进程

chattr -i /usr/bin

rm -f /usr/bin/nshbsjdy

处理完成之后再一次检查一下以上各目录,尤其是 /etc 目录下面最新修改的文件。

5 、如果是 rootkit 木马,可以用下面的软件进行检查

软件 chkrootkit :

软件 RKHunter :

安装都非常简单,我使用 RKHunter 简单检查了一下,没有发现什么重大问题,但是这也并不表示没有什么问题,因为我们的检测命令也是依赖一些系统的命令,如果系统的命令被感染那是检测不出来的,最好是系统的命令备份一份检查,再不行就备份数据重装喽。

作者:飓风网络安全

linux服务器对外打包处理的更多相关文章

  1. 使用Maven打包项目并上传到Linux服务器

    Maven打包: 项目右键Run as-->Maven build...-->  出来下面的界面,注意红色部分的填写,Goals填写package表示打包,下面的Skip Tests表示打 ...

  2. jenkins+svn完整打包并上传到linux服务器上

    因为公司用的是svn版本管理工具并且部署在了windows服务器上,所以测试环使用jenkins需要部署两套环境, 一套是在本地windows服务器,jenkins从svn下载代码完成打包并上传到li ...

  3. Jenkins 部署打包文件 并通过SSH上传到 linux服务器

    编译 发布 打包成zip文件 dotnet clean : dotnet的命令清除解决方案 dotnet build : dotnet的命令重新生成 dotnet publish .\Hy.MyDem ...

  4. springboot项目打包成jar包在Linux服务器默认80端口运行

    springboot项目端口设置 在application.properties文件 server.port=80 在application.yml文件 server: port: 80 然后在ide ...

  5. 在linux服务器下日志提取的python脚本(实现输入开始时间和结束时间打包该时间段内的文件)

    1.需求:近期在提取linux服务器下的日志文件时总是需要人工去找某个时间段内的日志文件,很是枯燥乏味,于是乎,我就想着用python结合linux指令来写一个日志提取的脚本,于是就有了以下脚本文件: ...

  6. netcore一键部署到linux服务器以服务方式后台运行

    @font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...

  7. 如何临时发布部署Cocos小游戏到Linux服务器,让别人能在微信打开

    两个星期前,我们发布了第一个小游戏教程: 教程:制作一个小游戏送给喜欢的TA(不会编程也能学会哦) 上周有好几位小伙伴在b站催更,呃,作为小透明,收到催更信息后还是很激动的!竟然有同学在看我们的小教程 ...

  8. linux 中文件权限和磁盘管理、linux服务器项目如何部署

    chmod chmod 421 xx.txt //4=r,2=w,1=x df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k ...

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

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

随机推荐

  1. Linux之sort命令

    sort - sort lines of text files 提示:如果第一个字段都相同的话,就根据第二个字段进行排序 参数: -f  忽略大小写 -b  忽略最前面的空格部分 -M  以月份的名字 ...

  2. 数据库dbutils

    common-dbutils.jarQueryRunnerupdate方法:* int update(String sql, Object... params) -->  可执行增.删.改语句* ...

  3. Diary of Codeforces Round #402 (Div. 2)

    这一场的表现可以用"全程智障"4个字,生动传神地描述出来. About 写题: A. 写了一堆if比较大小, 这很勤勉.(绝对值君对自己の存在感为0表示很难过.) B. 题,直接读 ...

  4. 取消putty右键粘贴功能

    还是非常喜欢putty的.就是右键默认的粘贴功能比较讨人厌.

  5. State模式学习笔记

    选用了一个假设需要用户验证的例子进行State模式学习,这个例子并不恰当.无所谓了,只要能学习到其中的内容即可. 适用性: 1,一个对象的行为取决于他的状态,并且它必须在运行时刻依据状态改变他的行为. ...

  6. C++学习笔记之模板篇

    title: C++学习笔记之模板篇 tags: c++,c,模板,vector,friend,static,运算符重载,标准模板 --- 一.模板 不管是函数模板还是类模板,在未初始化前都是不占用内 ...

  7. 基于Flink的windows--简介

    新的一年,新的开始,新的习惯,现在开始. 1.简介 Flink是德国一家公司名为dataArtisans的产品,2016年正式被apache提升为顶级项目(地位同spark.storm等开源架构).并 ...

  8. 极化SAR图像基础知识(1)

    从今天开始学习极化SAR图像,记录于此. 极化散射矩阵S是用来表示单个像素散射特性的一种简便办法,它包含了目标的全部极化信息.

  9. 处理json数据的空数据为任意字符

    处理json数据的空数据为任意字符 有时候从后台返回来的数据需要处理一下,根据实际开发需求,不能在页面上直接显示空字符,需要显示为"无内容"或者其他字段,而有些json数据结构比较 ...

  10. Cookie中文乱码问题

    页面一登录,页面二保存用户信息,放入Cookies里. 但是Cookies放入中文会引起编码问题,如报错“Control character in cookie value, consider BAS ...