简介绕过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,完全没想到有什么用,
多谢一些高手的指点。隐藏视频没空间上传,就算了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值