1.1定义

Rootkit是一套由入侵者留在系统中的后门程序。Rootkit通常只有在系统已经被侵入并且获得root权限后才被安装进系统,并帮助入侵者长期控制系统,,搜集主机和网络信息,并隐藏入侵者的痕迹。也就是说,Rootkit需要持久并毫无察觉地驻留在目标系统中,对系统进行操纵、并通过隐秘渠道收集数据的程序。所以,Rootkit的三要素就是:隐藏、操纵、收集数据。不同的操作系统会有不同的Rootkit,Linux系统中的Rootkit就被称为LinuxRootkit。

1.2分类

LinuxRookit可以简单地分为用户态和内核级,一些新颖的LinuxRootkit技术(如BIOS、PIC、Boot)可以划分为新技术类型。其中用户态Rootkit可以通过替换一些二进制文件(如ps、netstat、ls等),从而实现进程隐藏、网络连接信息隐藏、文件隐藏等功能。内核Rootkit由于隐蔽性好、攻击能力强,逐渐成为了主流。内核Rootkit也可细分为基于LKM(LoadableKernel Modules)的Rookit和非基于LKM的Rootkit。

1.3功能

无论是那种形式的Rootkit,都需要实现以下功能:

(1)远程指令执行

通过网络向Rootkit所驻留的系统发送指令,从而控制远程主机;

(2)信息收集

收集系统的活动信息、网络上其它主机的数据信息等;

(3)文件隐藏

把目标主机上的特定文件隐藏起来,使其不能通过常规方法查看到,这样就可以隐藏一部分系统被控制的痕迹;

(4)进程隐藏

在控制目标主机或收集系统信息时会启动相关的进程,通过Rootkit可以实现对进程的隐藏;

(5)网络连接隐藏

将网络连接的端口信息隐藏,利用netstat等工具无法显示隐藏的信息,这样就可以隐秘地向远端发送信息;

(6)内核模块隐藏

将Rootkit自身在系统中安装的模块隐藏起来,提高自身生存能力。