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 ...
随机推荐
- pxe+kickstart cobbler无人值守装机
环境准备: 一台服务器 [root@admin tftpboot]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [roo ...
- linux下处理excel里copy的某列的字符串,去除行末空格并添加特殊字段
背景:从excel里copy出一列数据到txt,然后放到linux下处理,发现每一行末尾都是固定个数的空格,我想要在每行字符串末尾加固定字段并逗号隔开输出, 1.将特定字段取出,去掉每行末尾的不定个数 ...
- scss语法介绍
这里既然是对语法的介绍,那么至于如何安装和编译scss我就不多少了,主要是因为本人在群里认识的小伙伴有的不会用scss,所以就借着放假的机会来对scss语法做个总结,博主在开发过程中用scss蛮多,所 ...
- SSH整合(一)hibernate+spring
1.导入maven节点 <dependencies> //测试用的 <dependency> <groupId>junit</groupId> < ...
- Python之路-操作系统&网络基础
一.为何要有操作系统 没有操作系统的话,计算机同样可以运行,但是程序员要了解到计算机底层各种各样的细节,而操作系统聪明地封装起来了底层这些繁杂的操作,通过向程序员开放一个个的接口,来最终使我们实现对底 ...
- 【Spring】BeanFactory解析bean详解
在该文中来讲讲Spring框架中BeanFactory解析bean的过程,该文之前在小编原文中有发表过,要看原文的可以直接点击原文查看,先来看一个在Spring中一个基本的bean定义与使用. pac ...
- [android] 手机卫士黑名单功能(ListView结合SQLite增删改)
修改界面,在顶部横条上增加一个添加按钮,点击打开一个自定义对话框,输入电话号码和拦截模式保存到数据库 自定义对话框看这篇http://www.cnblogs.com/taoshihan/p/53703 ...
- 现代3D图形编程学习-设置三角形颜色(译)
本书系列 现代3D图形变成学习 http://www.cnblogs.com/grass-and-moon/category/920962.html 设置颜色 这一章会对上一章中绘制的三角形进行颜色的 ...
- windows编程初步
#include <windows.h> const char g_szClassName[] = "myWindowClass"; LRESULT CALLBACK ...
- [Oracle]审计Audit
1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...