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 ...
随机推荐
- 如何使用ArcGIS发布LiDAR 点云
LiDAR--Light Detection And Ranging,即激光探测与测量技术. 下面将介绍如何使用ARCGIS来发布LiDAR的成果点云数据. LiDAR的点云数据一般格式为LAS.在A ...
- webots自学笔记(六)实用控制器函数补充
原创文章,来自"博客园,_阿龙clliu" http://www.cnblogs.com/clliu/,转载请注明原文章出处. 用Webots软件做机器人仿真时,可以编 ...
- centos 6.5 搭建JSP运行环境
一.安装nginx yum install nginx #安装nginx,根据提示,输入Y安装即可成功安装 service nginx start #启动 chkconfig nginx on #设为 ...
- 自动化利器-YUM仓库搭建实战
本地YUM仓库搭建实战 YUM主要用于自动安装.升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系.要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的reposito ...
- Object-C知识点
Object-C常用的知识点,以下为我在实际开发中用到的知识点,但是又想不起来,需要百度一下的知识点 1. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...
- JavaEE开发使用Maven管理的SpringMVC工程
前几篇博客已经陆陆续续的聊了一些Spring的东西,今天博客我们就来聊一下SpringMVC.SpringMVC目前在JavaEE开发中可谓占据一席之地,用起来也是比较顺手的.低耦合,高内聚,利用一些 ...
- let 和 const 关键字
看了阮老师的ES6入门再加上自己的一些理解整理出的学习笔记 let关键字 跟var相比,不会提升为全局变量,始终是块级作用域{} 注意点: 1: 不能在同一个块级作用域内声明同名变量 2: (如果当前 ...
- 【原创101】Servlet精细笔记
一.什么Servlet? servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序).servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户 ...
- IO流输入 输出流 字符字节流
一.流 1.流的概念 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. ...
- NuGet 自定义配置
默认配置: 默认配置文件的路径%APPDATA%\NuGet\NuGet.Config (DOS) 或 $ENV:APPDATA\NuGet\NuGet.Config (PowerShell),(例如 ...