首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
安全知识 :: 专题文章

Win32平台下的Rootkit习作--Zion


http://www.gipsky.com/
Win32平台下的Rootkit习作 Codename: Zion by Liang



Zion是一套Rootkit攻防函数库,我(Liang)负责全部的攻击部分,检测部分由另一实习生同学完成,能够躲避常见的安全检测工具这是本次练习中的要害任务,针对这些流行的内核级Rootkit隐藏技术,我一一对它们进行了实现。用户可通过命令行输入特定命令,达到特定的隐藏目的,效果图如下:

[img width=500]http://www.neeao.com/blog/attachments/200806/16_213658_image_8.png[/img]http://www.neeao.com/blog/attachments/200806/16_213658_image_8.png" onload="(script removed)DrawImage(this);" />

目前的实现包括:



A 挂钩系统服务描述表隐藏进程与文件

用户可在用户模式下自定义挂钩函数,放在缓冲区中传入内核态。进入内核态后,程序分配一段非分页区存放该例程。利用这种方式,即使检测软件发现了SSDT HOOK的存在,也无法得知该HOOK 例程属于哪一驱动模块(因为分配的这段非分页区不在任何模块的地址空间范围中),达到了其隐藏目的。因而是本次练习的一个亮点所在。



B DKOM方式隐藏进程、驱动模块

对于DKOM,没有很好的创新思路,唯一的原则便是分析检测工具的原理,然后制定相应的执行体对象修改方案。在隐藏驱动以及注册表部分可以绕过ICESword检测。然而,IceSword检测进程使用了四种不同的方式,其中直接搜索内存的方式无法通过DKOM方式绕过。



C 驱动派遣例程挂钩方式隐藏网络连接信息

在《Subverting the Windows Kernel》中给出了隐藏TCP连接的示例代码,本次练习中我在此基础上对其进行了完善,使其能够绕过一些Anti-rootkit如IceSword 的检测(原版并不能绕过),并增加了过滤功能(例如用户可自定义需要隐藏的ip信息与端口,操作非常友好)。另外,逆向了tcpip中查询连接信息的代码,分析出UDP的相关查询结构,实现了UDP通信的隐藏。



D 文件过滤驱动实现隐藏文件或文件夹

修改自Winodws DDK的Sample Code: Sfilter。 删去了很多功能:例如,动态绑定卷等。 这种方式与驱动派遣例程挂钩原理类似,并没有实际意义,仅仅为了Zion的完整性而加入。



E 挂钩注册表储巢查询例程实现注册表隐藏

参考Pediy的《也谈rootkit 注册表信息隐藏》。



F 对检测工具的一点总结

无论是Cross-View检测技术还是扫描内核代码检测Hook的技术,要确保检测结果的正确性,就必须保证检测所采用的技术比Rootkit本身更底层。而Zion Rootkit之所以能绕过IceSword对内核模块、端口信息、注册表的检测,正是因为在隐藏手段上,Zion使用了更为底层的技术。

从本质上讲,内核态Rootkit之所以存在,是因为Windows为了提高查询操作的效率,在内核中预留了许多冗余信息,例如:Windows采用遍历 EPROCESS链表的方式枚举进程,然而CPU调度的最基本单位是线程,断链EPROCESS并不会影响到CPU对线程的调度。假如检测工具能够找到 CPU调度线程的真实链表对其进行枚举,那么得到的结果必将是准确的(这里排除了Shadow Walker这类Rootkit技术),因为一旦Rootkit断链了CPU调度线程列表,那么被断链的线程将永远得不到执行,这种操作应当视为“删除”,而非“隐藏”。

可以这么说,运行于Windows内核级的所有检测技术,永远是不可靠的。必须比内核级Rootkit优先级别高,才能真正实现可靠检测。将操作系统以虚拟化模式运行,在其之上进行实时监测,是一种比较理想的方法(如North Security Labs 推出的Hypersight RD),因为在这种情况下,Rootkit理论上不可能知道运行在其之上的检测程序的存在。(但是,对于目前最新的硬件级Rootkit,这种检测方式也是不可靠的。比如Bluepill Rootkit) - END by Liang



[img width=500]styles/default/images/icon_file.gif" border="0" /> download
<< 如何花少的时间学习更多的知识 深入理解Linux内存映射机制 >>
评分
10987654321
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号