(转)ROOTKIT进阶之SHADOW SSDT HOOK

http://www.badteen.net/?post=281

rootkit进阶之Shadow SSDT Hook

   RK作者不甘心,无论是出于技术上的抗争还是利益上的损失,反正,ARK既然让我丢了面子或瘪了钱包,那么,“有朝一日龙得水,定叫长江水倒流!”,一些人开始尝试研究破解Anti-Rootkit工具,誓与之抗争到底,另一些人,则开始了新的探索,最终,双方都有了成效:首先,pjf的大作IceSword被成功反汇编了,虽然得到的并不是最初的C语言代码而是汇编语句,但是对于研究Rootkit的人来说,汇编在他们眼里,就如同看网络小说一样轻而易举,很快,就有人识破了作者的检测逻辑,可以绕过IceSword以及其他采用类似检测方法的工具的Rootkit就此诞生,甚至一部分RK已经开始反过来监控ARK,一旦相应ARK的驱动被加载,立即开始玉石俱焚——将用户机器弄成经典的蓝屏死机,不明就里的用户在几次与蓝色屏幕对望后,通常都会无奈的放弃;而另一种蓝屏则是更深层次的问题导致的。

   而探索另一个方向的研究者们,也传来了捷报:Windows系统里,除了那个大家都在玩的SSDT(KeServiceDescriptorTable)以外,还有一个隐藏得非常深入的类似SSDT结构的数据段在同时工作着,它被称为“Shadow SSDT”(SSDT映射),这个“KeServiceDescriptorTableShadow”功能并未从系统内核中导出,但是通过外联的系统级别调试器,却看到了它的踪影。Shadow SSDT的作用和SSDT本身差不多,只不过它主要是提供一些基于图形用户界面(GUI)下的系统服务函数,并保存了一份与SSDT相同的服务列表,当然,这也是提供给基于GUI下的程序调用的。Shadow SSDT被安排在win32k.sys中,非常少文献提及它,因此这几乎是个被人遗忘的角落,Rootkit作者们很快就发现,控制这里也能达到一定的效果,因为Shadow SSDT同样具备了SSDT的所有功能,只不过是要利用的时候多了一些步骤而已,于是RK又有了新的玩法,这一次,轮到ARK傻眼了,那时候ARK根本没有做到Shadow SSDT这一步,于是,只钩住Shadow SSDT的Rootkit们得以无法无天的生存下去,任由用户怎么发现恶意程序怎么恢复SSDT都好,始终都是影响不到此类Rootkit。

   这个情形,一直到具备了Shadow SSDT检测功能的ARK工具出现才结束,例如大名鼎鼎的RootKit Unhooke(RKU),它那强大的SSDT以及其Shadow检测脱钩功能,帮助许多人解决了这些新生的捣蛋鬼,于是,Rootkit作者们又开始寻求新的生存之道。此类Hook由于出现得比较晚,很多当初流行的ARK都没有涉及这块,所以,我们只能使用RKU、狙剑等工具对其进行操作。

posted @ 2012-12-20 09:59  himessage  阅读(780)  评论(0编辑  收藏  举报