没有水的鱼 发表于 2010-7-19 00:42:54

黑客教你如何对抗反入侵工具

DarkSpy是由CardMagic和wowocock编写的anti-rootkit反入侵不错的工具。因为正在写的本科毕设与检测rootkit有关,所以这几天分析一下,看有什么可利用的。分析进行得比较顺利,因为DarkSpy里面所采用的技术多数Internet上已经见过,不过肯定有一些创意的哦。
    先说说里面的新东西:驱动开发网站的一位会员启发我们DarkSpy修改了
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中的
    GlobalFlag为0x4000,这是做什么呢?原来这会使得NtGlobalFlag加入Maintain
    Object Typelist标志,于是系统创建对象时会把它加入Type链表中,这样可以遍历链表来查找对象。修改标志需要重启机器,这应该就是“强模式”要重启的理由。正如那位会员所说,作者故意隐瞒了这点,我也觉得不妥:如果是为了防止别人crack,也应该提供卸载程序的,因为这个标志一直不被清除,不再使用DarkSpy的用户依然会为此付出代价:每个内核对象都要额外分配16字节的核心空间,那成千上万的对象呢?
    这个技巧对DKOM来说比较weak了,用下面的代码清除:
    VOID
    ClearObjectCreatorInfo(
    PVOID Object
    )
    {
    POBJECT_HEADER ObjectHeader = OBJECT_TO_OBJECT_HEADER(Object);
    POBJECT_HEADER_CREATOR_INFO CreatorInfo =
    OBJECT_HEADER_TO_CREATOR_INFO(ObjectHeader);
    if (CreatorInfo != NULL)
    {
    RemoveEntryList(&CreatorInfo->TypeList);
    InitializeListHead(&CreatorInfo->TypeList);
    }
    }
    传入处理的对象就脱链了。这几行代码可让“强模式”失效。
    下面简单说说击破的法门:
    一、驱动:
    DarkSpy1.0.3版及以前很简单,学习Futo rootkit断开PsLoadedModuleList,再将驱动对象传入上面的ClearObjectCreatorInfo,不论“强模式”还是“弱模式”均搞定。DarkSpy1.0.4版有了修改,不过依旧是查找DriverObject,在适当的时候清理掉就可以了,比如可以walkkernel object tree,还有更简单的办法
    二、进程:
    DarkSpy的进程功能把好多东西堆到一起来恶心rootkit的作者们,怎么样,被恶心到了吧?虽
    然里面的技术可能不新鲜,但是这么一组合,难以全部清除的。下面把隐藏需要做的事列举列举:
    1、PspCidTable就学futo抹掉;
    2、进程、线程对象传入ClearObjectCreatorInfo;
    3、它还使用csrss里的进程句柄,直接到csrss进程里ZwClose掉最简单;
    4、DarkSpy在我的机器崩溃过,分析dump,原来与杀软冲突:它也hook了SwapContext,不好办?
         恢复不就行了。恢复时机很重要,相信你也能想到不错的。说说我的思路:在任一条call SwapContext之前的路径上下hook,hook的程序什么也不做,专门检查SwapContext,被改则改回去,这是很通用的做法,它要是hook别的地方也一样搞定。
    5、还有一个由线程到进程的,自己去发掘吧,也该动动手么...嘿嘿。
         最后可以完全隐藏自己的进程,不过你累不累,什么东西非有进程才能做,没进程就不能做?都核心驱动了...感觉真没必要。
    三、文件:
    据说是Create IRP,嘿嘿,不过我还没学文件系统驱动,那位大虾补充吧。
    四、注册表:
    虽测试版没有功能,但看看界面可以猜测猜测内部版:应该是复制或是仿制开源工具RegHives来做的,击破的原理网上有不少。只是dump的方法可能不同。
页: [1]
查看完整版本: 黑客教你如何对抗反入侵工具

请大家牢记南瓜园网址 www.nan2008.com