真实案例记录Linux被植入rootkit导致服务器带宽跑满的解决过程
off999 2025-10-02 06:16 70 浏览 0 评论
一、关于linux下的rootkit
rootkit是Linux平台下最常见的一种木 马后门工具,它主要通过替换系统文件来达到攻 击和和隐蔽的目的,这种木 马比普通木 马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木 马。rootkit攻 击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻 击者保住权限,以使它在任何时候都可以使用root权限登录到系统。
rootkit主要有两种类型:文件级别和内核级别,下面分别进行简单介绍。
1.1、文件级别rootkit木 马
文件级别的rootkit一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit木 马后,合法的文件被木 马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等,其中login程序是最经常被替换的,因为当访问Linux时,无论是通过本地登录还是远程登录,/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的账号和密码,而rootkit就是利用这个程序的特点,使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻 击者通过输入设定好的密码就能轻松进入系统。此时,即使系统管理员修改root密码或者清除root密码,攻 击者还是一样能通过root用户登录系统。入 侵者通常在进入Linux系统后,会进行一系列的攻 击动作,最常见的是安装嗅探器收集本机或者网络中其他服务器的重要数据。在默认情况下,Linux中也有一些系统文件会监控这些工具动作,例如ifconfig命令,所以,攻 击者为了避免被发现,会想方设法替换其他系统文件,常见的就是ls、ps、ifconfig、du、find、netstat等。如果这些文件都被替换,那么在系统层面就很难发现rootkit已经在系统中运行了。
这就是文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如果发现文件被修改或者被替换,那么很可能系统已经遭受了rootkit攻 击。检查件完整性的工具很多,常见的有Tripwire、 aide等,可以通过这些工具定期检查文件系统的完整性,以检测系统是否被rootkit入 侵。
1.2、内核级别的rootkit木 马
内核级rootkit是比文件级rootkit更高级的一种攻 击方式,它可以使攻 击者获得对系统底层的完全控制权,此时攻 击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到攻 击者所选择的程序并运行此程序,也就是说,当用户要运行程序A时,被攻 击者修改过的内核会假装执行A程序,而实际上却执行了程序B。
内核级rootkit主要依附在内核上,它并不对系统文件做任何修改,因此一般的检测工具很难检测到它的存在,这样一旦系统内核被植入rootkit,攻 击者就可以对系统为所欲为而不被发现。目前对于内核级的rootkit还没有很好的防御工具,因此,做好系统安全防范就非常重要,将系统维持在最小权限内工作,只要攻 击者不能获取root权限,就无法在内核中植入rootkit。
二、一次Linux.BackDoor.Gates.5(文件级别rootkit)网络带宽攻 击案例
2.1、问题现象
事情起因是突然发现一台oracle服务器外网流量跑的很高,明显和平常不一样,最高达到了200M左右,这明显是不可能的,因为oracle根本不与外界交互,第一感觉是服务器被入 侵了。被人当做肉鸡了,在大量发包。
这是台centos6.5 64位的系统,已经在线上运行了70多天了。
2.2、排查问题
排查问题的第一步是查看此服务器的网络带宽情况,通过监控系统显示,此台服务器占满了200M的带宽,已经持续了半个多小时,接着第二步登录服务器查看情况,通过ssh登录服务器非常慢,这应该就是带宽被占满的缘故,不过最后还是登录上了服务器,下面是一个top的结果;
可以看到,有一个异常的进程占用资源比较高,名字不仔细看还真以为是一个Web服务进程。但是这个nginx1确实不是正常的进程。
接着,通过pe -ef命令又发现了一些异常:
发现有个/etc/nginx1进程,然后查看了这个文件,是个二进制程序,基本断定这就是木 马文件。
同时又发现,/usr/bin/dpkgd/ps -ef这个进程非常异常,因为正常情况下ps命令应该在/bin目录下才对。于是进入/usr/bin/dpkgd目录查看了一下情况,又发现了一些命令,如下图所示:
由于无法判断,用了最笨的办法,找了一台正常的机器,查看了一下ps命令这个文件的大小,发现只有80K左右,又检查了/usr/bin/dpkgd/ps,发现文件大小不对,接着又检查了两个文件的md5,发现也不一样。
初步判断,这些文件都伪装的外壳命令,其实都是有后门的木 马.
继续查看系统可疑目录,首先查看定时任务文件crontab,并没有发现异常,然后查看系统启动文件rc.local,也没有什么异常,接着进入/etc/init.d目录查看,又发现了比较奇怪的脚本文件DbSecuritySpt、selinux,如下图所示:
这两个文件在正常的系统下是没有的,所以也初步断定是异常文件。
接着继续查看系统进程,通过ps -ef命令,又发现了几个异常进程,一个是/usr/bin/bsd-port,另一个是/usr/sbin/.sshd,这两个进程时隐时现,在出现的瞬间被我抓到了。
查看发现/usr/bin/bsd-port是个目录,进入目录,发行了几个文件,如下图:
有getty字眼,这不是终端管理程序吗,它用来开启终端,进行终端的初始化,设置终端,这里出现了终端,马上联想到是否跟登录相关,于是紧接着,又发现了/usr/sbin/.sshd,很明显,这个隐藏的二进制文件.sshd就是个后 门文件,表面像sshd进程,其实完全不是。
最后,又查看了木 马最喜欢出现的目录/tmp,也发现了异常文件,从名字上感觉好像是监控木 马程序的,如下图所示:
检查到这里,基本查明了系统中可能出现的异常文件,当然,不排除还有更多的,下面的排查就是查找更多可疑文件,然后删除即可。
3、查杀病毒文件
要清楚系统中的牧马病毒,第一步要做的是先清除这些可疑的文件,这里总结了下此类植入牧马各种可疑的文件,供大家参考:
检查是否有下面路径文件
cat /etc/rc.d/init.d/selinux cat /etc/rc.d/init.d/DbSecuritySpt ls /usr/bin/bsd-port ls /usr/bin/dpkgd
检查下面文件大小是否正常,可以和正常机器中的文件做比对:
ls -lh /bin/netstat ls -lh /bin/ps ls -lh /usr/sbin/lsof ls -lh /usr/sbin/ss
如果发现有上面可疑文件,需要全部删除,可删除的文件或目录如下:
rm -rf /usr/bin/dpkgd (ps netstat lsof ss) #这是加壳命令目录 rm -rf /usr/bin/bsd-port #这是木 马程序 rm -f /usr/bin/.sshd #这是木 马后门 rm -f /tmp/gates.lod rm -f /tmp/moni.lod rm -f /etc/rc.d/init.d/DbSecuritySpt #这是启动上述描述的那些木 马后的变种程序 rm -f /etc/rc.d/rc1.d/S97DbSecuritySpt #删除自启动 rm -f /etc/rc.d/rc2.d/S97DbSecuritySpt rm -f /etc/rc.d/rc3.d/S97DbSecuritySpt rm -f /etc/rc.d/rc4.d/S97DbSecuritySpt rm -f /etc/rc.d/rc5.d/S97DbSecuritySpt rm -f /etc/rc.d/init.d/selinux #这个selinux是个假象,其实启动的是/usr/bin/bsd-port/getty程序 rm -f /etc/rc.d/rc1.d/S99selinux #删除自启动 rm -f /etc/rc.d/rc2.d/S99selinux rm -f /etc/rc.d/rc3.d/S99selinux rm -f /etc/rc.d/rc4.d/S99selinux rm -f /etc/rc.d/rc5.d/S99selinux
上面的一些命令(ps netstat lsof ss)删除后,系统中这些命令就不能使用了,怎么恢复这些命令呢,有两种方式:一个是从别的同版本机器上拷贝一个正常的文件过来,另一个是通过rpm文件重新安装这些命令。
例如,删除了ps命令后,可以通过yum安装ps命令:
[root@server ~]#yum -y reinstall procps
其中,procps包中包含了ps命令。
[root@server ~]#yum -y reinstall net-tools [root@server ~]#yum -y reinstall lsof [root@server ~]#yum -y reinstall iproute
上面三个命令是依次重新安装netstat、lsof、ss命令。
4、找出异常程序并杀死
所有可疑文件都删除后,通过top、ps等命令查看可疑进程,全部kill掉即可,这样进程kill之后,因为启动文件已经清除,所以也就不会再次启动或者生成牧马文件了。
这个案例是个典型的文件级别rootkit植入系统导致的,最后检查植入的原因是由于这台oracle服务器有外网IP,并且没设置任何防火墙策略,同时,服务器上有个oracle用户,密码和用户名一样,这样一来,黑 客通过服务器暴露在外网的22端口,然后通过暴力破解,通过这个oracle用户登录到了系统上,进而植入了这个rootkit病毒。
三、Linux安全防护工具ClamAV的使用
ClamAV是一个在命令行下查毒软件,是免费开源产品,支持多种平台,如:Linux/Unix、MAC OS X、Windows、OpenVMS。ClamAV是基于病毒扫描的命令行工具,但同时也有支持图形界面的ClamTK工具。为什么说是查毒软件呢,因为它不将杀毒作为主要功能,默认只能查出您服务器内的病毒,但是无法清除,至多删除文件。不过这样,已经对我们有很大帮助了。
3.1、快速安装clamav
clamav的官方网站是http://www.clamav.net, 可以从
http://www.clamav.net/downloads 下载最新版本,也可以通过yum在线安装clamav,因为clamav包含在epel源中,所以方便起见,通过yum安装最简单。
[root@server ~]# yum install epel-release [root@server ~]# yum -y install clamav clamav-milter
很简单吧,就这样clamav已经安装好了。
3.2、更新病毒库
clamav安装好后,不能马上使用,需要先更新一下病毒特征库,不然会有告警信息。更新病毒库方法如下:
[root@server ~]# freshclam ClamAV update process started at Wed Oct 24 12:03:03 2018 Downloading main.cvd [100%] main.cvd updated (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) Downloading daily.cvd [100%] daily.cvd updated (version: 25064, sigs: 2131605, f-level: 63, builder: neo) Downloading bytecode.cvd [100%] bytecode.cvd updated (version: 327, sigs: 91, f-level: 63, builder: neo) Database updated (6697945 signatures) from database.clamav.net (IP: 104.16.186.138)
保证你的服务器能够上网,这样才能下载到病毒库,更新时间可能会长一些。
3.3、clamav的命令行使用
clamav有两个命令,分别是clamdscan和clamscan,其中,clamdscan命令一般用yum安装才有,需要启动clamd服务才能使用,执行速度较快;而clamscan命令通用,不依赖服务,命令参数较多,执行速度稍慢。推荐使用clamscan。
执行“clamscan -h”可获得使用帮助信息,clamscan常用的几个参数含义如下:
-r/--recursive[=yes/no] 表示递归扫描子目录 -l FILE/--log=FILE 增加扫描报告 --move [路径] 表示移动病毒文件到指定的路径 --remove [路径] 表示扫描到病毒文件后自动删除病毒文件 --quiet 表示只输出错误消息 -i/--infected 表示只输出感染文件 -o/--suppress-ok-results 表示跳过扫描OK的文件 --bell 表示扫描到病毒文件发出警报声音 --unzip(unrar) 表示解压压缩文件进行扫描
下面看几个例子:
(1)、查杀当前目录并删除感染的文件
[root@server ~]# clamscan -r --remove
(2)、扫描所有文件并且显示有问题的文件的扫描结果
[root@server ~]# clamscan -r --bell -i /
(3)、扫描所有用户的主目录文件
[root@server ~]# clamscan -r /home
(4)、扫描系统中所有文件,发现病毒就删除病毒文件,同时保存杀毒日志
[root@server ~]# clamscan --infected -r / --remove -l /var/log/clamscan.log
3.4、查杀系统病毒
下面命令是扫描/etc目录下所有文件,仅输出有问题的文件,同时保存查杀日志。
[root@server ~]# clamscan -r /etc --max-recursion=5 -i -l /mnt/a.log ----------- SCAN SUMMARY ----------- Known viruses: 6691124 Engine version: 0.100.2 Scanned directories: 760 Scanned files: 2630 Infected files: 0 Data scanned: 186.64 MB Data read: 30.45 MB (ratio 6.13:1) Time: 72.531 sec (1 m 12 s)
可以看到,扫描完成后有结果统计。
下面我们从eicar.org下载一个用于模拟病毒的文件,看一下clamav是否能够扫描出来,
[root@server mnt]# wget http://www.eicar.org/download/eicar.com [root@liumiaocn mnt]# ls eicar.com
然后,重新扫描看是否能够检测出新下载的病毒测试文件。执行如下命令:
[root@server ~]# clamscan -r / --max-recursion=5 -i -l /mnt/c.log /mnt/eicar.com: Eicar-Test-Signature FOUND ----------- SCAN SUMMARY ----------- Known viruses: 6691124 Engine version: 0.100.2 Scanned directories: 10 Scanned files: 187 Infected files: 1 Data scanned: 214.09 MB Data read: 498.85 MB (ratio 0.43:1) Time: 80.826 sec (1 m 20 s)
可以看到,病毒文件被检测出来了。eicar.com是一个Eicar-Test-Signature类型病毒文件。缺省的方式下,clamscan只会检测不会自动删除文件,要删除检测出来的病毒文件,使用“--remove”选项即可。
3.5、设置自动更新病毒库和查杀病毒
病毒库的更新至关重要,要实现自动更新,可在计划任务中添加定时更新病毒库命令,也就是在crontab添加如下内容:
* 1 * * * /usr/bin/freshclam --quiet
表示每天1点更新病毒库。
实际生产环境应用,一般使用计划任务,让服务器每天晚上定时杀毒。保存杀毒日志,也就是在crontab添加如下内容:
* 22 * * * clamscan -r / -l /var/log/clamscan.log --remove
此计划任务表示每天22点开始查杀病毒,并将查杀日志写入/var/log/clamscan.log文件中。
病毒是猖獗的,但是只要有防范意识,加上各种查杀工具,完全可以避免牧马或病毒的入 侵。
相关推荐
- directx修复(DirectX修复工具官网下载)
-
使用DirectX修复工具很简单。首先需要下载并安装工具,然后打开工具并按照界面提示进行操作即可。工具的作用是自动检测系统中可能存在的DirectX问题,并尝试修复它们,从而保证计算机游戏等应用程序的...
-
- 网易邮箱app官方下载安装(网易邮箱163)
-
有些东西调用外部下载软件(如迅雷)是无法下载的,有时下载后不能正常打开,请尝试:在所要下载的文件上点击右键,选择“目标另存为”,也许就能成功下载。下载从网易163邮箱发来的云附件的步骤如下:1.成功登录网易邮箱后,我们点击页面左上角的“收件...
-
2025-12-18 16:51 off999
- 产品密钥是什么意思(产品密钥有什么用处)
-
产品密钥是产品授权的证明,有了它才能使用这个产品。软件商在生产自己产品时,为每个产品输入一个序列号(注册号/密钥),如“KH2J9-PC326-T44D4-39H6V-TVPBY”,用户要通过这个序列...
- 电脑打不开一直重启(电脑打不开一直重启黑屏)
-
电脑一直反复启动的原因和解决方法有以下几点:1、电脑内存问题,可以尝试更换内存条。2、电脑主板问题,给主板放电即可。3、硬盘模式有误,更改回正确模式即可。4、硬盘驱动有更改,把刚安装的驱动卸载就可进入...
- win7 自动关机(win7自动关机设置)
-
具体解决方法/步骤如下:1、首先先摸一下主机箱,看看是不是很烫,打开机箱盖,看看主机电源和CPU散热器是不是不转了,一般电脑如果温度过高的话,硬件会开启保护措施,会自动关机,如果风扇不转了,建议立即更...
- 绿茶软件园官网(下载绿茶软件园)
-
就是,广告满天飞,评论都是刷的。
- 路由器密码锁解锁教程(路由器密码忘怎么设置)
-
1.路由器IP地址定位:通常而言,路由器在连接主网线之后,会广播一个自身的网络IP地址,一般如下:192.168.1.0,192.168.1.1,目前各大路由器厂商也会播出一些怪异的地址,比如10.1...
- 台式电脑键盘按键错乱怎么恢复
-
如果你的机械键盘按键错乱,你可以尝试将键盘连接到电脑上,然后通过按下“Ctrl”、“Alt”和“Del”键同时重启电脑,看看是否能够恢复默认设置。另外,你还可以尝试在控制面板中找到键盘设置,检查是否有...
- 移动硬盘格式化后还能用吗(移动硬盘格式化后数据会丢失吗)
-
当然可以使用!格式化只是里面的所有文件会没有,还可以再存储的。格式化(format)是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被...
- 手机系统升级好不好
-
手机系统并不是随时更新,都是好用的,手机主要针对你的处理器,如果老型使用年头比较多的手机,不建议更新系统,更新系统之后容易造成耗电量非常大,卡顿现象比较严重,而新出的手机产品处理器功率都偏大,这种手机...
- win2003序列号企业版(win2003 enterprise序列号)
-
Windows2003:JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY cky24-q8qrh-x3kmr-c6bcy-t847y win2003EnterpriseServer:...
-
- 电脑c盘满了应该怎么办(如果电脑c盘满了怎么办啊)
-
1、电脑桌面双击此电脑2、进入后找到Windows(C)盘,然后鼠标右击选择属性3、点击磁盘清理4、勾选需要清理的文件,最后点击确定即可1、运用磁盘清理软件清理C盘,大约可为C盘释放50M-800M空间。2、关闭休眠功能,在开始菜单的运行里...
-
2025-12-18 11:03 off999
- win10桌面突然清空了(电脑桌面全部被隐藏了怎么恢复)
-
1、右键点击任务栏,然后选择任务管理器或按快捷键Ctrl+Shift+Esc; 2、打开任务管理器后,切换到详细信息模式。在进程中找到“桌面窗口管理器”(英文版系统找DesktopWindowM...
- 华硕笔记本全系列介绍(华硕笔记本全系列介绍视频)
-
关于这个问题,华硕笔记本一共有多个系列,每个系列定位不同。以下是华硕笔记本的主要系列及其定位:1.ASUSVivoBook(维沃系列):面向普通用户和学生,注重轻薄、时尚设计和价格实惠。2.AS...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
