Linux操作系统下的高级隐藏技术详解
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-20
Linux系统中用来查询文件信息的系统调用是sys_getdents,这一点可以通过strace来观察到,例如strace ls 将列出命令ls用到的系统调用,从中可以发现ls是通过sys_getedents来执行操作的.当查询文件或者目录的相关信息时,Linux系统用sys_getedents来执行相应的查询操作,并把得到的信息传递给用户空间运行的程序,如果修改该系统调用,去掉结果中与某些特定文件的相关信息,那么所有利用该系统调用的程序将看不见该文件,从而达到了隐藏的目的.介绍一下原来的系统调用,其原型为:
int sys_getdents(unsigned int fd, struct dirent *dirp,unsigned int count) 其中fd为指向目录文件的文件描述符,该函数根据fd所指向的目录文件读取相应dirent结构,并放入dirp中,其中count为dirp中返回的数据量,正确时该函数返回值为填充到dirp的字节数.下图是修改后的系统调用hacked_getdents执行流程. hacked_getdents函数实际上就是先调用原来的系统调用,然后从得到的dirent结构中去除与特定文件名相关的文件信息,从而应用程序从该系统调用返回后将看不到该文件的存在. 应该注意的是,一些较新的版本中是通过sys_getdents64来查询文件信息的,但其实现原理与sys_getdents基本相同,在这些版本中仍然可以用与上面类似的方法来修改该系统调用,隐藏文件. 2.2 隐藏模块 上面分析了如何修改系统调用以隐藏特定名字的文件,在实际的处理中,经常会用模块来达到修改系统调用的目的,但是当插入一个模块时,若不采取任何隐藏措施,很容易被对方发现,一旦对方发现并卸载了所插入的模块,那么所有利用该模块来隐藏的文件就暴露了,应继续分析如何来隐藏特定名字的模块.Linux中用来查询模块信息的系统调用是sys_query_module,可以通过修改该系统调用达到隐藏特定模块的目的.解释一下原来的系统调用,原来系统调用的原型为: int sys_query_module(const char *name, int which, void *buf, size_t bufsize , size_t *ret) 如果参数name不空,则访问特定的模块,否则访问的是内核模块,参数which说明查询的类型,当which=QM_MODULES时,返回所有当前已插入的模块名称,存入buff, 并且在ret中存放模块的个数,buffsize是buf缓冲区的大小.在模块隐藏的过程中只需要对which=QM_MODULES的情况进行处理就可以达到目的.修改后的系统调用工作过程如下: 1)调用原来的系统调用,出错则返回错误代码; 2)如果which不等于QM_MODULES,则不需要处理,直接返回. 3)从buf的开始位置进行处理,如果存在特定的名字,则将后面的模块名称向前覆盖该名字. 4)重复3),直到处理处理完所有的名字,正确返回.
2.3 隐藏进程 在Linux中不存在直接查询进程信息的系统调用,类似于ps这样查询进程信息的命令是通过查询proc文件系统来实现的,在背景知识中已经介绍过proc文件系统,它应用文件系统的接口实现,因此同样可以用隐藏文件的方法来隐藏proc文件系统中的文件,只需要在上面的hacked_getdents中加入对于proc文件系统的判断即可.proc是特殊的文件系统,只存在于内存之中,不存在于任何实际设备之上,Linux内核分配给它一个特定的主设备号0以及一个特定的次设备号1,除此之外,在外存上没有与之对应的i节点,系统也分配给它一个特殊的节点号PROC_ROOT_INO(值为1),而设备上的1号索引节点是保留不用的.通过上面的分析,可以得出判断一个文件是否属于proc文件系统的方法: 1)得到该文件对应的inode结构dinode; 2)if (dinode->i_ino == PROC_ROOT_INO && !MAJOR(dinode->i_dev) && MINOR(dinode->i _dev) == 1) {该文件属于proc文件系统} 通过上面的分析,给出隐藏特定进程 |
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Linux操作系统下的高级隐藏技术详解的所有评论