快速业务通道

Linux下用gdb检测内核rootkit

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-21

导读:
  本文涉及的技术原理都不是新的,对研究人员没什么特别大的价值,
  不过对工程人员应急相应来说不失为一种新的方法.
  【理解攻击向量】
  前面两段废话直接掠过...实在浪费感情-_-!
  内核rookit通常以系统调用为攻击目标,主要出于两个原因:
  a.在内核态劫持系统调用能以较小的代价控制整个系统,不必修太多东西;
  b.应用层大多数函数是一个或多个系统调用不同形式的封装,更改系统调用意味着其上层所有的
  函数都会被欺骗;
  在kernel-2.4.27中大约有230多个系统调用,而kernel-2.6.9中大约有290多个系统调用,系统调
  用的个数取决于内核版本.完整的系统调用列表可以在 /usr/include/asm/unistd.h头文件中获得.
  另外需要注意的是入侵者并不更改所有的系统调用,而只是替换其中一些比较有用的.这些系统调用
  如表一所示,他们可以被系统管理员及入侵检测系统(OS kernel级IDS)监视,可以用man命令得到
  每个系统调用的完整描述.
  System call name    Short description          ID
  -------------------------------------------------------------------------------------------
  sys_read      used for reading from files       3
  sys_write      used for writing to files         4
  sys_open      used to create or open files       5
  sys_getdents/sys_getdents64  used to list a content of directories(also /proc)   141/220
  sys_socketcall    used for managing sockets        102
  sys_query_module    used for querying loaded modules       167 拥有帝国一切,皆有可能。欢迎访问phome.net
  sys_setuid/sys_getuid  used for managing UIDs         23/24
  sys_execve    used for executing binary files       11
  sys_chdir      used to change the directory       12
  sys_fork/sys_clone    used to create a child process       2/120
  sys_ioctl      used to control devices         54
  sys_kill      used to send signal to processes       37
  我们注意上表的系统调用号,这些ID都是针对kernel-2.4.18-3的.
  本文所有的例子都在Redhat7.3 kernel-2.4.18-3上通过测试,我们也可以在其他版本包括最新的2.6.x上
  用相似的步骤研究,不同之处可能在于2.6的一些内部结构,比如系统调用表的地址原来内含在系统调用
  处理例程system_call中,现在改成在syscall_call函数中.
  【更改系统调用表】
  当前的系统调用地址保存在系统调用表中,位于操作系统为内核保留的内存空间(虚拟地址最高1GB),系统
  调用入口地址的存放顺序同/usr/include/asm/unistd.h中的排列顺序,按系统调用号递增.
  -_-!鉴于原文废话很多,我就跳着翻译或者概括起来翻译,有兴趣的可以找本Linux内核的书看看(e.g:ULK2)
  在0x80软中断发生之前,对应的系统调用号被压入eax寄存器,例如sys_write被调用时,其对应的系统调用
  ID:4会被压入eax
  入侵者使用的第一种方法是:更改系统调用表中的系统调用地址,这样系统调用发生时会跳转到攻击者自己
  编写的函数去执行.通过观察系统调用表中的系统调用入口地址,使用gdb我们可以比较容易检测到这种攻 拥有帝国一切,皆有可能。欢迎访问phome.net
  击行为.
  原始的系统调用地址在内核编译阶段被指定,不会更改,通

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号