后门技术和Linux LKM Rootkit详细解析

豆豆网   技术应用频道   2007年03月09日  【字号: 收藏本文

本文详细介绍后门技术和Linux LKM Rootkit详细解析

  相反,利用LKM我们可有效的突破这些限制。首先,我们在重要的系统目录里不必修改或创建任何文件。我们可以把LKM程序放在/tmp或/var/tmp目录下,一般系统管理员是不会监视这些目录的。其次,我们可以隐藏我们想要的任何东西,象文件,进程,和网络连接。因为要得到这些信息,用户必须依赖系统调用。

  因此我们可以修改内核结构,我们可以用我们自己的函数来替换原系统调用。最后,我们甚至可以攻击或修改TCP/IP协议栈并且去愚弄系统内核!以下部分,我们将介绍如何利用这些机制以及实现方法。

  我们的LKM程序主要是基于LinuxKernel2.2.x及TCP/IP上的实现,因为一个优秀的后门程序一定会给远程用户访问该系统的权限。在目标机器上打开一个端口,运行一个服务是非常容易暴露的。我们需要尽可能的隐藏自己。

  第一个想法是我们在目标机器上不运行任何进程来等待连接,我们在TCP/IP协议栈里来创建一个函数来替代它。无论何时一个特殊的udp或tcp包被接受,内核将会检查这个包来确定是否是指定的特殊包。假如是的话,内核将派生一个进程来执行命令。我们可以使用任何内核可以支持的协议包。

  现在我们来实现它。在内核里,每个协议在*inet_protocol_base和*inet_protos[MAX_INET_PROTOS]hash注册自己。当系统初始化时,所有支持的协议会再inet_protocol_base注册。他们被加到inet_protos的哈希表里。不管什么时候一个IP包达到时,内核将检查这个哈希表,找相应的处理函数和系统调用。我们就在这个点上进行hack。我们将用我们的处理函数来替换原始的协议的处理函数。因此,我们可以截获数据包并且分析它。假如它是我们需要的,我们将执行我们的命令。假如不是,仅仅只需要调用原来的函数。

作者:korn    责编:豆豆技术应用

正在加载评论...