发新话题
打印

[转载]简介绕过DarkSpy的方法

[转载]简介绕过DarkSpy的方法

文章作者:ytht

   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的方法可能不同。

   作者们花了功夫为大家提供了不错的工具,不过这些技术很多网上流传不少时
间了,效果不尽人意。发这篇短文肯定能促使作者更新,嘿嘿。

我是一介小菜,中间有些东西是问驱网一些高手得知的,像那个GlobalFlag,完全没想到有什么用,
多谢一些高手的指点。隐藏视频没空间上传,就算了。
武功再高,也怕菜刀. 穿的再叼,一砖撂倒 树不要皮,必死无疑. 人不要脸,天下无敌

TOP

hook swapcontext ?
-__-!
我到是在rootkit for windows里写了swapcontext的流程 :)

TOP

发新话题