这里xx xx xx xx是rootkit的地址,这样rootkit可以跳回到原始的代码地址加上某个偏移对应的地址。并且并且修改原原本本的的操作系统函数返回的信息。
内联钩子可以像应用于rootkit技术一样,可以合法的应用于很多地方,微软研究人员最早是在一个会议上把内联钩子公布出来。现在,微软已经把它的用途扩展到最初的研究之外。他们把它叫做内存补丁,这一技可以对一个系统在不需要重启的条件下打补丁。
分层过滤驱动
分层过滤驱动为rootkit创造了一个新的把它们自己插入操作系统执行流程的地方。设备驱动程序最终处理很多操作系统的重要功能,例如网络通信和文件存储。Windows允许开发者在已有的驱动程序之上堆叠自己的驱动来扩展位于低层的驱动,而不需要重写已有的驱动。许多病毒扫描软件实现了文件过滤来扫面它们打开的文件。操作系统提供的文件驱动把结果传送到病毒扫描程序的文件过滤驱动,在这里对问及那进行扫描。rootkit也可以使用这种分层技术。正是其中的集中可能的情形会改变文件读取和枚举,以及修改socket通信和枚举。
直接内核对象操作
直接内核对象操作依赖于以下事实:即操作系统为了审计会创建内核对象。如果rootkit修改了这些内核对象,它将会破坏那些操作系统相信已经存在于系统中的东西。通过修改一个令牌环对象,rootkit可以改变操作系统相信那些程序可以做特定的行为,从而破坏登录机制。例如,一个叫做FU的rootkit程序修改了代表系统中所有进程的内核对象——在这个进程对象里所有的进程被链在一起。当一个用户进程例如任务管理器通过AOI函数向操作系统查询进程链表时,Windows会遍历它隐藏的进程链表,所以,正如很多应用程序所关注的,进程不见了。
[参考文献 1] Pietrek, Matt. "Learn System-Level Win32(R) Coding Techniques by Writing an API Spy Program." Microsoft Systems Journal Volume 9 Number 12.
[参考文献 2] Richter, Jeffrey. "Load Your 32-bit DLL into Another Process's Address Space Using INJLIB." Microsoft Systems Journal Volume 9 Number 5.
[参考文献 3] Richter, Jeffrey. Programming Applications for Microsoft Windows fourth edition. Redmond: Microsoft Press, 2000. pp. 751-820.
[参考文献 4] Hunt, Galen C. and Doug Brubacker, "Detours: Binary Interception of Win32 Functions" Proceedings of the 3rd USENIX Windows NT Symposium, July 1999, pp. 135- 43.
[参考文献 5] FU. http://www.rootkit.com
[参考文献 6] Hacker Defender by Holy Father. http://hxdef.czweb.org/
关于作者:
About the authors
James Butler是Komoku公司的CTO,这个公司致力于高可靠性和完整性的监控和管理。在效力于这家公司之前,James Butler是HBRary公司的工程总监,该公司致力于rootkit和其他破坏技术研究。他是Aspects of Offensive Rootkit Technologies这本书的教者和合著者,同时也是最近发布的畅销书Rootkits: Subverting the Windows Kernel的合著者。
Sherri Sparks是University of Central Florida的博士研究生,她研究数字法医学应用。