linux服务器对外打包处理
案例描述
服务器遇到大流量攻击的处理过程。早上接到 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服务器对外打包处理的更多相关文章
- 使用Maven打包项目并上传到Linux服务器
Maven打包: 项目右键Run as-->Maven build...--> 出来下面的界面,注意红色部分的填写,Goals填写package表示打包,下面的Skip Tests表示打 ...
- jenkins+svn完整打包并上传到linux服务器上
因为公司用的是svn版本管理工具并且部署在了windows服务器上,所以测试环使用jenkins需要部署两套环境, 一套是在本地windows服务器,jenkins从svn下载代码完成打包并上传到li ...
- Jenkins 部署打包文件 并通过SSH上传到 linux服务器
编译 发布 打包成zip文件 dotnet clean : dotnet的命令清除解决方案 dotnet build : dotnet的命令重新生成 dotnet publish .\Hy.MyDem ...
- springboot项目打包成jar包在Linux服务器默认80端口运行
springboot项目端口设置 在application.properties文件 server.port=80 在application.yml文件 server: port: 80 然后在ide ...
- 在linux服务器下日志提取的python脚本(实现输入开始时间和结束时间打包该时间段内的文件)
1.需求:近期在提取linux服务器下的日志文件时总是需要人工去找某个时间段内的日志文件,很是枯燥乏味,于是乎,我就想着用python结合linux指令来写一个日志提取的脚本,于是就有了以下脚本文件: ...
- netcore一键部署到linux服务器以服务方式后台运行
@font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...
- 如何临时发布部署Cocos小游戏到Linux服务器,让别人能在微信打开
两个星期前,我们发布了第一个小游戏教程: 教程:制作一个小游戏送给喜欢的TA(不会编程也能学会哦) 上周有好几位小伙伴在b站催更,呃,作为小透明,收到催更信息后还是很激动的!竟然有同学在看我们的小教程 ...
- linux 中文件权限和磁盘管理、linux服务器项目如何部署
chmod chmod 421 xx.txt //4=r,2=w,1=x df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k ...
- jprofiler_监控远程linux服务器的JVM进程(实践)
几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...
随机推荐
- [.net 面向对象程序设计深入](8)认识.NET Core
[.net 面向对象程序设计深入](8)认识.NET Core 1,概述 .NET 经历14年,在Windows平台上的表现已经相当优秀,但是“跨平台.开源”却是其痛点,从16年开 ...
- libcrypto.so.1.0.0内容丢失导致sshd无法运行解决方案
libcrypto.so.10丢失导致sshd无法运行解决方案 服务器由于掉电开启系统后无法远程ssh,重启sshd服务弹如下图的错误: /usr/sbin/sshd:error while load ...
- 1.跨平台开发之~ VSCode开发第一个C程序
VSCode的安装就不讲了,可以参考这个(http://www.cnblogs.com/dunitian/p/6661644.html) 写一个简单的C,然后F5运行,根据提示来配置文件 删掉前面的内 ...
- 手机自动化测试:appium源码分析之bootstrap二
手机自动化测试:appium源码分析之bootstrap二 在bootstrap项目中的io.appium.android.bootstrap.handler包中的类都是对应的指令类, priva ...
- 4.Java集合总结系列:Map接口及其实现
一.Map接口 Map集合的特点是:通过key值找到对应的value值,key值是唯一的,value可以重复.Map中的元素是无序的,但是也有实现了排序的Map实现类,如:TreeMap. 上面Map ...
- 天气渐热,来片雪花降降温——Android自定义SurfaceView实现雪花效果
实现雪花的效果其实也可以通过自定义View的方式来实现的(SurfaceView也是继承自View的),而且操作上也相对简单一些,当然也有一些不足啦... 相对于View,SurfaceView有如下 ...
- Java ClassLoader加载机制
一.体系结构(自上向下) 1.Bootstrap ClassLoader(BootStrapClassLoader) --- 启动类加载器或者叫引导类加载器,加载jdk核心的APIs,这些APIs一般 ...
- 【one day one linux】linux下的软件包管理工具
Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...
- HDU 3948 不同回文子串个数
集训队论文中有求不同子串个数的做法,就是扫一遍height数组,过程中根据height数组进行去重.对于本题也是雷同的,只是每一次不是根据与排名在上一位的LCP去重,而是与上一次统计对答案有贡献的后缀 ...
- linux管道(|)与重定向(<>)的异同
共同点:管道和重定向都改变程序的标准输入或者标准输出 区别: 管道(|)两边都是程序(命令),而重定向(<>)只有左边是程序(命令).即是,管道通过两个子进程来改变两边命令的输入或输出,重 ...