Zion

所属分类:钩子与API截获
开发工具:Visual C++
文件大小:281KB
下载次数:72
上传日期:2009-07-12 19:20:30
上 传 者ssssad
说明:  Rootkit实现,做技术探讨,非常具有参考价值,请不要拿来做非法的事
(Rootkit achieve, so the technical discussion is very valuable, please do not use to do illegal things)

文件列表:
Zion_sys.sln (4495, 2008-06-16)
Zion_sys.suo (101888, 2008-06-16)
.svn (0, 2008-05-07)
.svn\all-wcprops (176, 2008-05-07)
.svn\entries (445, 2008-05-07)
.svn\format (2, 2008-05-07)
.svn\prop-base (0, 2008-05-07)
.svn\props (0, 2008-05-07)
.svn\text-base (0, 2008-05-07)
.svn\text-base\Zion_sys.sln.svn-base (4400, 2008-05-05)
.svn\tmp (0, 2008-05-07)
.svn\tmp\prop-base (0, 2008-05-07)
.svn\tmp\props (0, 2008-05-07)
.svn\tmp\text-base (0, 2008-05-07)
client_console (0, 2008-06-09)
client_console\.svn (0, 2008-05-07)
client_console\.svn\all-wcprops (574, 2008-05-07)
client_console\.svn\entries (763, 2008-05-07)
client_console\.svn\format (2, 2008-05-07)
client_console\.svn\prop-base (0, 2008-05-07)
client_console\.svn\props (0, 2008-05-07)
client_console\.svn\text-base (0, 2008-05-07)
client_console\.svn\text-base\client_console.cpp.svn-base (3367, 2008-05-06)
client_console\.svn\text-base\client_console.vcproj.svn-base (4372, 2008-05-07)
client_console\.svn\text-base\stdafx.h.svn-base (338, 2008-05-07)
client_console\.svn\text-base\targetver.h.svn-base (765, 2008-05-07)
client_console\.svn\tmp (0, 2008-05-07)
client_console\.svn\tmp\prop-base (0, 2008-05-07)
client_console\.svn\tmp\props (0, 2008-05-07)
client_console\.svn\tmp\text-base (0, 2008-05-07)
client_console\client_console.cpp (3930, 2008-06-03)
client_console\client_console.vcproj (4372, 2008-04-01)
client_console\client_console.vcproj.FAREAST.t-liangc.user (1403, 2008-06-16)
client_console\console_hlper (0, 2008-05-07)
client_console\console_hlper\.svn (0, 2008-05-07)
client_console\console_hlper\.svn\all-wcprops (352, 2008-05-07)
client_console\console_hlper\.svn\entries (485, 2008-05-07)
client_console\console_hlper\.svn\format (2, 2008-05-07)
client_console\console_hlper\.svn\prop-base (0, 2008-05-07)
client_console\console_hlper\.svn\props (0, 2008-05-07)
... ...

Liang的练习作品 - Rootkit实现 实习生Liang把习作代码晒出来,程序测试运行在Windows XP SP2上。除小部分涉及利用Windows或HIPS商业产品中潜在设计缺陷实现隐藏或者逃避的技巧代码已经隐去之外,完整代码可从http://blogs.msdn.com/secure下载,如有指正、交流可以通过chenliang0817@hotmail.com与他取得联系。Liang对习作的简单介绍如下: Win32平台下的Rootkit习作 Codename: Zion by Liang Zion是一套Rootkit攻防函数库,我(Liang)负责全部的攻击部分,检测部分由亚洲研究院另一实习生同学完成,能够躲避常见的安全检测工具这是本次练习中的关键任务,针对这些流行的内核级Rootkit隐藏技术,我一一对它们进行了实现。用户可通过命令行输入特定命令,达到特定的隐藏目的 目前的实现包括: 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)

近期下载者

相关文件


收藏者