网站大量收购独家精品文档,联系QQ:2885784924

Rootkit入門手册.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Rootkit入門手册

一.Rootkit例子Rootkit 嵌入到MBR,Mebroot利用rootkit下载一个450KB的文件,将自身存储在硬盘的最后几个扇区,将自举管理程序写入MBR,实现隐藏磁盘访问,内核中实现,覆盖DISK.sys,调用DISK.sys,创建看门狗线程,如果没有安装,进行安装.查找NDIS隐藏和文档中未出现的函数,与NDIS通信,构造TCP/IP协义栈。Rootkit一般有两种类型:用户模式和内核模式,用户模式的rootkit如HackerDefender100r容易被发现,但holy_father提供了HxDef的修改版本,命名为Silver andGold并开始销售,也能够防止系统级别的进程,内核模式的rootkit的运行级别与驱动程序是一个级别,内核rootkit不能工作于所有版本的Windows,增加了操作系统的不稳定性,每个rootkit都可以被探测到,但是准确探测的难度和时间超过了结果的价值二.钩子的艺术 2.1 软钩子进程附加操作,对INT3中断指令的使用以截获程序流,FireFox挂钩,在PR_Write上设下一个钩子,当钩子命中时,读取栈上第二个参数所指向的ASCII字符串,如果这一字符串与我们之前定下的pattern变量相匹配时,它将被输出至控制台. 如果将软钩子施加于调用频繁的函数身上时,目标进程的运行状态可能会极慢,或者会崩溃,因为软钩子所依赖的INT 3指令会导致中断处理例程接过控制权,直到相应的钩子代码执行完毕交还目标进程的控制权,若这一过程每秒钟需要发生上千次的话,大量的性能损失将不可能避免. 2.2 硬钩子以硬编码形式向目标进程写入一条跳转指令,以使得同样使用汇编编写而成的钩子代码能够得以执行,软钩子适用于拦截那些调用次数少的函数,而调用次数多的函数,为了对目标进程施加最小的影响,硬钩子成为不二选择,硬钩子首要拦截对象是调用频繁的堆管理例程以及高密度的文件I/O操作。当使用硬钩子时,目标进程从未真正意义地停止过,使用FastLogHook简易钩子类,构建一个硬钩子的基本框架Imm=immlib.Debugger()Fast=immlib.FastLogHook(imm)Fast.logFunction(address,num_arguments) #负责布置钩子,如果选择某个函数的出口位置只须将num_arguments设置为零值即可,Fast.logRegister(register) //在钩子命中时记录特定寄存器中的值Fast.logDirectMemory(address)#记录某一已知内存地址上的值Fast.logBaseDisplaycement(register,offset)接受一个寄存器以及一个偏移地址作为参数,解析栈上的参数或者提取(以某寄存器为基地址)某偏移位置上的内存数据而设计.如果要取所有的信息使用getAllLog(),对于一般的cdecl函数调用约定我们只需使用普通的FastLogHook即可,其他还可以使用STDCALLFastLogHook2Immunity Debugger下还有一个名为hippie的PyCommand命令,当打开notepad打开文件对话框时大约会引发4500次对RtlAllocate或者RtlFreeHeap的调用,如果是 IE的话,次数会更多。三.内核模式RootKit 其威力最大,内核模式技术依赖于复杂的底层硬件,底层以x86体系结构为基础的3.1保护层次虚拟化技术使得指令集中加入了一个新的层次,Ring-1,客户操作系统使用的虚拟化硬件,产生了虚拟化的RootKit,CPU能够动态地根据需要将特权从ring3提升为ring0,当执行1特殊CPU指令SYSENTER2系统调用3中断或其他安装的调用门内核模式中的任何程序都可以访问其他任何程序(包括操作系统本身的程序)的内存,数据,和堆栈。实际上,任何组件都能将自身登记为任何类型数据的处理程序,包括网络流量,击键,文件系统信息,而不需要考虑是否需要访问这些信息,只要承诺按照规则办事,否则系统会崩溃。如你废弃一个空指针,很可能会蓝屏,Windows三个环境Win32,环境子程序负责在Windows执行层为用户模式应用程序和服务代理内核模式。这个子系统具有内核模式组件,主要是Win32k.sys和用户模式组件(最主要是csrss.exe)子系统DLL作为必须使用一部分核心模式所提供的功能的32程序的网关,这个功能由Windows Executive提供,尽管Win32子系统DLL不是内核模式组件,但是它们仍然是内核模式Rootkit高价值目标,这些DLL为用户应用程序甚至系统服务进程提供入口,因此,污染这些入口将扩展Rootkit在任何用户模式应用程序上的能力.Win32k.sys是处理用

文档评论(0)

bmdj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档