unix下的rootkit

传统的Rootkit是一种比普通***更为阴险的***。它主要通过替换系统文件来达到目的,这样就会更加隐蔽,使检测变得比较困难。传统的 Rootkit主要针对Unix平台,例如Linux、AIX、 SunOs等操作系统,有些Rootkits可以通过替换DLL文件或更改系统来***Windows平台。Rootkit并不能让你直接获得权限,相反它 是在你通过各种方法获得权限后才能使用的一种保护权限的措施,在我们获取系统根权限(根权限即root权限,是Unix系统的最高权限)以后, Rootkits提供了一套工具用来建立后门和隐藏行迹,从而让***者保住权限。
传统Rootkit对Unix的***
RootKits是如何实现后门的呢?为了理解 Rootkits后门,有必要先了解一下Unix的基本工作流程,当我们访问Unix时(不管是本地还是远程登录),/bin/login程序都会运行, 系统将通过/bin/login来收集并核对用户的帐号和密码。Rootkits使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样***者输入根权限后门的密码,就能进入系统。就算管理员更改了原来的系统密码或者把密码清空。我们仍能够使用后门密码以根用户 身份登录。在攻入Unix系统后,***者通常会进行一系列的***动作,如安装嗅探器收集重要数据,而Unix中也会有些系统文件会监视这些动作,比如 ifconfig等,Rootkit当然不会束手就擒,它会同样替换一下这些系统文件,通常被Rootkit替换的系统程序有login, ifconfig,du,find,ls,netstart,ps等。由于篇幅问题,这些系统文件的功能就不一一罗列,有兴趣的读者可以自己去查找,现在 Rootkit的工具很多,里面基本都是包含一些处理过的系统文件来代替原来的系统文件的,像tOmkit等一些Rootkit就是比较优秀的了。
防御办法:Rootkit如此可怕,得好好防它才行,实际上,最有效的防御方法是定期对重要系统文件的完整性进行核查,这类的工具很多,像 Tripwire就是一个非常不错的文件完整性检查工具。一但发现遭受到 Rootkit***,必须完全重装所有的系统文件、部件和程序,以确保安全性。
写到这里,战争似乎结束了,然而更可怕的Rootkit还没登场,那就是内核级Rootkit。在大多数操作系统中(各种Unix和Windows),内 核是操作系统最基本的部件,它控制着对网络设备、进程、系统内存、磁盘等的访问。例如当你打开一个文件时,打开文件的请求被发送到内核,内核负责从磁盘得 到文件的比特位并运行你的文件浏览程序。内核级 Rootkit使***者获得对系统底层的完全控制权。***者可以修改你的内核,大多数内核级Rootkit都能进行执行重定向,即截获运行某一程序的命 令,将其重定向到***者所选中的程序并运行此程序。也就是说用户或管理员要运行程序A,被修改过的内核假装执行A,实际却执行了程序B。
内核级Rootkit对Unix的***
和传统的Rootkit不同,内核级Rootkit***时 Unix的bin/login并未被修改,但所有执行/bin/login的请求(当登录系统时将产生)都被重定向到***者制作的隐藏文件/bin/backdoorlogin,这样当系统管理员使用检测传统级别的Rootkit的方法(比如用tripwire之类的软件检测文件的完整性) 就行不通了,因为/bin/login并没有被改变。同样的道理,***者对其他的系统程序也进行重定,这样你的操作实际就是按照***者的意愿执行了。
内核级Rootkit不仅会进行“执行重定向”设置,还有很多支持文件隐蔽。传统的Rootkit是通过替换ls程序来实现文件的隐藏,而内核级的 Rootkit则是通过对内核的修改来对ls程序欺骗,更加的阴险隐蔽。另外内核级的Rootkit还能对进程和网络进行隐藏,用户将得不到真实的系统情 况报告。
实现思路:根据系统的类型,***者有不同的方法来对内核进行修改,在N种Unix系统上修改内核最简单的方法就是利用系统本身的加载的内核模块(LKM) 的功能,因此大多数的内核级Rootkit通过利用LKM动态地将内核更新来提供新功能,新添加的模块扩展了内核,同时对内核和其他使用内核的所有东西有 了完全访问权。
因此,许多内核级Rootkit都通过LKM来实现。安装通过LKM实现的内核级Rootkit十分简单。例如,在Linux上安装Knark内核级 Rootkit只需具有根权限的***者输入命令:insmod knark.哪就行了,模块被安装后就等着我们输入命令了。更妙的是整个过程不需要重启。通过LKM实现的Rootkit在Unix上十分流行。我们也常常会通过给windows平台打LKM补丁的方法* * *窗户。
内核级Rootkit实例
现在有大量的内核级Rootkit可用,就选几种比较强大的来跟大家讨论一下。

unix下的rootkit