使用rkhunter检测Linux的rootkit

转载来源 :https://blog.csdn.net/qq_40907977/article/details/105364818?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160248804519724836741748%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160248804519724836741748&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-105364818.pc_search_result_cache&utm_term=Ubuntu16.04+++RKHunter&spm=1018.2118.3001.4187

介绍

rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root 权限登录到系统。

      rootkit主要有两种类型:文件级别和内核级别。

  • 1

文件级别的rootkit: 一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等。文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如Tripwire、aide等。

内核级rootkit: 是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。内核级rootkit主要依附在内核上,它并不对系统文件做任何修改。以防范为主。

Rootkit分类和原理

Rootkit的主要功能包括:

  • 隐藏进程
  • 隐藏文件
  • 隐藏网络端口
  • 后门功能
  • 键盘记录器

Rootkit主要分为以下2种:

  • 用户态Rootkit(User-mode Rootkit):一般通过覆盖系统二进制和库文件来实现。它具有如下的特点:
  • 它通常替换的二进制文件为ps、netstat、du、ping、lsof、ssh、sshd等,例如已知的Linux t0rn rootkit(https://www.sans.org/security-resources/malwarefaq/t0rn-rootkit,访问日期:2019年2月11日)替换的文件就包括ps(用于隐藏进程)、du(用于隐藏特定文件和目录)。
  • 它也可能使用环境变量LD_PRELOAD和/etc/ld.so.preload、/etc/ld.so.conf等加载黑客自定义的恶意库文件来实现隐藏。例如,beurk(https://github.com/unix-thrust/beurk)这个Rootkit正是使用了这种技术。
  • 它还可能直接在现有进程中加载恶意模块来实现隐藏。例如,在GitHub上托管的这个项目https://github.com/ChristianPapathanasiou/apache-rootkit就是在Apache进程中注入恶意动态加载库来实现远程控制和隐藏的Rootkit。
  • 它不依赖于内核(Kernel-independent)。
  • 需要为特定的平台而编译。
  • 内核态Rootkit(Kernel-mode Rootkit):通常通过可加载内核模块(LoadableKernel Module,LKM)将恶意代码被直接加载进内核中。它具有如下的特点:
  • 它直接访问/dev/{k,}mem。
  • 更加隐蔽,更难以检测,通常包含后门。

在这里需要指出的是,用于获得root权限的漏洞利用工具不是Rootkit;用于获得root权限的漏洞利用工具被称为提权工具
 通常情况下,黑客攻击的动作序列为:

  • (1)定位目标主机上的漏洞,这一般是通过网络扫描和Web应用扫描工具来实现的,使用的工具包括但不限于《Linux系统安全:纵深防御、安全扫描与入侵检测》中《第10章
     Linux安全扫描工具》中提到的相关工具。
  • (2)利用漏洞提权。在步骤(1)中获得的权限可能不是root超级用户权限,此时黑客通过系统中的本地提权漏洞非法的获得root权限。
  • (3)提权成功后安装Rootkit。
  • (4)擦除痕迹,通过删除本地日志、操作历史等擦除痕迹。
  • (5)长期利用被植入了Rootkit的主机。黑客可能会把这些植入了Rootkit的主机作为挖矿机、发动DDoS分布式拒绝服务攻击的僵尸网络等等。

实例

用户反映服务器有被人植入木马的嫌疑,所以安装了rkhunter来检测一下

yum直接安装rkhunter

运行

rkhunter --check

日志可以到/var/log下查看,例如下面

[14:51:42] Warning: Checking for prerequisites [ Warning ]

[14:51:42] Warning: WARNING! It is the users responsibility to ensure that when the '--propupd' option

[14:51:44] /usr/sbin/ifdown [ Warning ]

[14:51:44] Warning: The command '/usr/sbin/ifdown' has been replaced by a script: /usr/sbin/ifdown: Bourne-Again shell sc

ript, ASCII text executable

[14:51:44] /usr/sbin/ifup [ Warning ]

[14:51:44] Warning: The command '/usr/sbin/ifup' has been replaced by a script: /usr/sbin/ifup: Bourne-Again shell script

, ASCII text executable

源码安装rootkit后门检查工具RKHunter

1.下载、安装rkhunter

[root@bogon src]# wget  http://jaist.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz

 

安装rkhunter

[root@bogon src]# tar -zxf rkhunter-1.4.2.tar.gz
[root@bogon src]# cd rkhunter-1.4.2
[root@bogon rkhunter-1.4.2]# ./installer.sh --install

2.为基本系统程序建立校对样本,建议系统安装完成后就建立。

[root@bogon rkhunter-1.4.2]# rkhunter --propupd
[ Rootkit Hunter version 1.4.2 ]
[root@bogon rkhunter-1.4.2]# ls /var/lib/rkhunter/db/rkhunter.dat   #样本文件位置
/var/lib/rkhunter/db/rkhunter.dat  

3.运行rkhunter检查系统
 它主要执行下面一系列的测试:

1. MD5校验测试, 检测任何文件是否改动.

2. 检测rootkits使用的二进制和系统工具文件.

3. 检测特洛伊木马程序的特征码.

4. 检测大多常用程序的文件异常属性.

5. 执行一些系统相关的测试 - 因为rootkit hunter可支持多个系统平台.

6. 扫描任何混杂模式下的接口和后门程序常用的端口.

7. 检测如/etc/rc.d/目录下的所有配置文件, 日志文件, 任何异常的隐藏文件等等. 例如, 在检测/dev/.udev和/etc/.pwd.lock文件时候, 我的系统被警告.

8. 对一些使用常用端口的应用程序进行版本测试. 如: Apache Web Server, Procmail等.

执行检测命令:

[root@bogon rkhunter-1.4.2]# rkhunter --check

 

如果您不想要每个部分都以 Enter 来继续,想要让程序自动持续执行,可以使用:

[root@bogon rkhunter-1.4.2]# /usr/local/bin/rkhunter --check --sk

4.在线升级rkhunter

rkhunter是通过一个含有rootkit名字的数据库来检测系统的rootkits漏洞, 所以经常更新该数据库非常重要, 你可以通过下面命令来更新该数据库:

[root@bogon rkhunter-1.4.2]# rkhunter --update
 5.检测最新版本

让 rkhunter 保持在最新的版本;

[root@bogon rkhunter-1.4.2]# rkhunter --versioncheck
[ Rootkit Hunter version 1.4.2 ]

Checking rkhunter version...
  This version  : 1.4.2
  Latest version: 1.4.2

扩展

Ubuntu安装两种Rootkit恶意软件的有用检测工具

我以Ubuntu Server 16.04系统为例,向大家介绍两款针对常规Rootkit和恶意软件的有用检测工具。

针对Rookit的检测工具-chkrootkit

安装

sudo apt-get install chkrootkit -y

运行程序

sudo chkrootkit

之后,就是等待检测过程慢慢完成
 


如果检测之后出现一些Rookit迹象,可以尝试分析一样,因为有些可能是误报,如在Ubuntu Server 16.04服务器上,会出现以下误报:

Searching for Linux/Ebury - Operation Windigo ssh... Possible Linux/Ebury - Operation Windigo installetd

这是一个与openssh-server package包相关的文件,属于误报,可以忽略。如果出现其它Rookit疑似报告,则要引起重视,认真对照chkrootkit的报告进行分析,查找解决问题,因为chkrootkit工具只提供检测,不提供解决或删除方法。

针对Malware的检测工具-ISPProtect

ISPProtect是一款提供针对Linux网站服务器的恶意软件检测收费工具(每月$7.92),但我们可以使用它的试用版本,安装过程如下:

sudo apt-get install php-cli -y

sudo mkdir -p /usr/local/ispprotect

sudo chown -R root:root /usr/local/ispprotect

sudo chmod -R 750 /usr/local/ispprotect

sudo cd /usr/local/ispprotect

sudo wget http://www.ispprotect.com/download/ispp_scan.tar.gz

sudo tar xzf ispp_scan.tar.gz

sudo rm -f ispp_scan.tar.gz

sudo ln -s /usr/local/ispprotect/ispp_scan /usr/local/bin/ispp_scan

运行程序

sudo ispp_scan

之后,程序提示输入扫描key,如果是试用版本请输入TRIAL:
 


下一步,程序将提示输入目标扫描路径,由于ISPProtect是针对网站的扫描工具,所以你必须输入网站的根目录路径,如/var/www,之后,Enter键执行。根据文件多少和数据大小来看,扫描可能会持续时间较长,最后,会给出一个最终检测报告。
 


个人推荐可以把该工具设置成每小时自动扫描一次,以sudo nano命令编辑任务列表/etc/cron.d/ispprotect,并复制以下命令进入:

0 * * * * root /usr/local/ispprotect/ispp_scan --update && /usr/local/ispprotect/ispp_scan --path=/var/www --email-results=EMAIL --non-interactive --scan-key=KEY

以上命令中的EMAIL表示扫描报告发送地址,KEY表示扫描key。–update表示ISPProtect特征库是适时更新的。

如果觉得每小时太过于频繁,你可以在以上命令中进行以下修改:

0 1 * * * – every day at 1 AM

* */2 * * * – every other hour

* */3 * * * – every third hour

扫描最终结果会自动发送到EMAIL中提供的邮箱地址中去。

真实案例记录Linux被植入rootkit导致服务器带宽跑满的解决过程

摘要: 一、关于linux下的rootkitrootkit是Linux平台下最常见的一种木 马后门工具,它主要通过替换系统文件来达到攻 击和和隐蔽的目的,这种木 马比普通木 马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木 马。rootkit攻 击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹, …

案例

一次Linux.BackDoor.Gates.5(文件级别rootkit)网络带宽攻 击案例

1.1、问题现象

事情起因是突然发现一台oracle服务器外网流量跑的很高,明显和平常不一样,最高达到了200M左右,这明显是不可能的,因为oracle根本不与外界交互,第一感觉是服务器被入 侵了。被人当做肉鸡了,在大量发包。

这是台centos6.5 64位的系统,已经在线上运行了70多天了。

1.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文件中。

病毒是猖獗的,但是只要有防范意识,加上各种查杀工具,完全可以避免牧马或病毒的入 侵。

参考链接 :

rootkit后门检查工具RKHunter :https://www.cnblogs.com/cp-miao/p/6141025.html

使用rkhunter检测Linux的rootkit : https://www.jianshu.com/p/9a5fcd4b236b

两款针对Linux系统Rootkit和恶意软件的有用检测工具https://www.2cto.com/article/201704/632468.html

查找恶意软件、病毒和rootkit的三款扫描工具介绍https://www.2cto.com/article/201602/490116.html

Linux系统安全之Rootkit原理解析与检测实践http://www.safebase.cn/article-258280-1.html

真实案例记录Linux被植入rootkit导致服务器带宽跑满的解决过程 :http://www.safebase.cn/article-259841-1.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值