当前位置导航:炫浪网>>网络学院>>操作系统>>Linux教程

后门技术及rootkit工具-Knark分析及防范(二)


  四、Knark软件包的安装和使用
  
  该软件包的核心软件是knark,c,它是一个Linux LKM(loadable kernel-module)。运行命令"make"来编译knark软件包,通过"insmod knark"命令来加载该模块。当knark被加载,隐藏目录/proc/knark被创建,该目录下将包含以下文件:
  
  author       作者自我介绍
  files        系统中隐藏文件列表
  nethides      在/proc/net/[tcp|udp]隐藏的字符串
  pids         被隐藏的pids列表,格式类似于ps命令输出
  redirects      被重定向的可执行程序入口列表
  
  该软件包编译以后将有下面这些工具软件(它们都依赖于被加载的模块knark.o。除了taskhack.c,其用于直接修改/dev/kmem)
  

  入侵者入侵以后往往将knark的各种工具存放在/dev/某个子目录下创建的隐藏子目录,如/dev/.ida/.knard等等。
  
  五、检测系统是否被安装了Knark
  
  Knark的作者Creed,发布了一个工具:knarkfinder.c来发现Knark隐藏的进程。
  
  检查系统是否安装有Knark的最直接有效的方法是以非特权用户身份来运行Knark的一个软件包如:rootme,看该用户是否能获得root权限。由于目前Knark目前没有认证机制,因此入股系统被安装了Knark任何一个本地用户运行这个程序都能获得root权限。
  
  还有一个最有效的发现系统是否被knark或者类似的rootkit所感染的方法就是使用kstat来检测,具体参考本站的Nexeon写的解决方案文章:检测LKM rootkit。
  
  六、Knark防范
  
  防止knark最有效的方法是阻止入侵者获得root权限。但是在使用一切常规的方法进行安全防范以后,防止knark之类的基于LKM技术的rootkit的方法是:
  
  创建和使用不支持可加载模块的内核,也就是使用单块内核。这样knark就不能插入到内核中去了。
  
  使用lcap (http://pweb.netcom.com/~spoon/lcap/)实现系统启动结束以后移除内核LKM功能,这样可以防止入侵者加载模块。然而这种方法存在一定的问题,入侵者可以在获得root权限以后修改启动脚本,在lcap启动之前来加载knark模块从而逃避lcap的限制。
相关内容
赞助商链接