澳洲、新西兰新闻·旅游·生活·资讯大全。新西兰房地产。Information network of Australia and New Zealand, Study and Living in Australia and New Zealand. New Zealand Properties.

首页 > 科技频道 > 图文详解高级木马的自我保护与查杀之策

   人气:     日期: 2007/6/8

彩虹摄影




       为什么要“手工”查杀木马呢?答案是因为偶不信任,不信任什么?不信任自动杀毒杀木马软件告诉我的结果,它们说我的电脑很干净没有病毒木马,但事实是电脑越来越难用、不但速度慢还弹广告;还有,新病毒木马出来了,我又很幸运的中招了,但这时专杀工具还未出来。所以我们要手工查杀。
  
  怎么知道电脑中是否有病毒或木马呢?
  答案是:检查。
  用什么检查?专业工具!
  检查什么?依次检查这几项:启动项、进程、模块、内核、服务函数、联网情况与端口。
  如何检查?
  我来就是教你的!
  这里以CNNIC为例来讲解全套的木马所采用的技术及破解之道,为什么以它为例,因为它用的技术比较高级并且是木马经常会采用的,真的很高级么?不信你可以去网上搜啊~看看都是如何评价它所采用的技术的。
  
  第一项,我们先检测启动项:

 如上图所示:我们找到了可疑的启动项。(把拉条向下拉还会看到七八个可疑的)
  所用的查找工具其功能需满足以下两点:
  1、能够对找到的启动项进行数字签名认证,以防木马改成与系统一样的名字蒙混过关。
  2、能对付木马的各种隐藏启动项的技术,以防隐藏型木马被漏查。(什么样的工具能对付什么样的技术,请稍等,我会在后面讲解木马的隐藏技术时详细解释)
  
  第二项,我们再检查进程。

从上图可以看到,我们找到了可疑的进程 ,而且这个进程与某一启动项中的文件是同一文件,一个可疑进程要求自启动,显然符合一定的木马特征。
  
  对工具的要求是与上面相同:要求能进行数字签名认证以防木马改名字;要求能列出隐藏进程(什么工具能查出什么样的隐藏进程 ,请看后面的木马进程隐藏技术详解)

找到了,我们是否就可以删除了呢?试试看~

进程无法中止!
  这是恐怕有朋友就说了,找强力工具一下儿就杀掉了!
  是的,找个强力工具是可以杀掉,但杀掉进程就是清除了木马么?这两者之间肯定是无法划等号的。
  而在后面我要讲解的就是这些为什么杀不掉~而强力工具为什么又能杀掉,什么样的工具能杀掉什么样的进程,让您明白了原理之后,自然就透彻的了解了木马,而再遇到新的、未知的也就不怕了,能杀了。
  我们再试试删除启动项是否可以

启动项也无法删除!
  此时基本可以确定一点了,我们的确是中招了!
  是否可以任它留在我们的机器上呢?还是找个强力工具把他杀掉呢?
  肯定有一部分朋友想到了冰刃~这个大名顶顶的强力工具,用冰刃来结束这个进程并删除这个进程的启动项是否可行呢?
  你如果试过就会知道,运行冰刃的后果就是会出现比冰刃更有名的比电脑死机更彻底的机器崩溃“蓝屏”!
  为什么会这样呢?为什么我们杀不掉它的进程、删除不掉它的启动项、并且运行冰刃会蓝屏呢?
  看看这张图,然后我们开始讲解,木马的隐藏与保护技术!

上面的软件与冰刃冲突,还会与其它软件有冲突么?
  我不知道,只有天知道,所以你的电脑什么时候会死机会蓝屏也只有天知道,所以,我们不能让它留在我们的机器上。
  
  现在我们开始讲解木马的隐藏与自我保护技术:
  上面的图是一个SSDT检查图,右边显示的结果是CdnProt.sys这个驱动HOOK了一堆的服务函数。
  是不是开始有点儿晕了?一堆名词,可能会让大多数人发晕.
  下面我用一个比喻来形容一下儿这些电脑名词与木马技术的实现机制。
  Windows(操作系统)就像一个为我们服务的管理公司,这个公司呢帮我们管理着我们的电脑。一个公司当然不会是一个人,他们有很多人来完成不同的工作。
  他们的工作流程是这样的,有一个服务员是跟在我们身边,当我们有什么事情要办的时候呢,就把事情告诉这个服务员,服务员就把我们的要求报上去,交给负责此事的部门去处理。再把结果告诉我们。
  
  SSDT是什么呢?就是一个指示路标,告诉服务员什么事情应该交给哪个部门去做。我们想结束进程,然后会把这个任务交给服务员,服务员查看SSDT这个路标,上面写着,“结束进程是由NtTerminateProcess这个部门负责的”,然后服务员就会把工作交给这个 NtTerminateProcess来处理。再把结果带回给我们。
  
  HOOK是什么呢?HOOK是一种技术,这种技术就是改变SSDT的路标内容,改为“结束进程是由木马负责的”,这时,服务员就会把我们的结束进程的工作交给木马去处理了,木马会查看我们要结束的是谁,如果与它无关,它就接着行使服务员的工作,再把工作传给NtTerminateProcess,然后把结果告诉服务员,由服务员再告诉我们。如果是结束它自己呢?它就不把工作向上报了,直接告诉服务员,这个工作是无法完成的。然后服务员再把结果告诉我们,我们就看到最上面的那个错误提示了“无法完成操作”。
  
  对付HOOK-SSDT的技术呢,我们只需要把SSDT给恢复了就行了,恢复的操作就是用原始的SSDT来重新把正确的路标写回去。一般这一层次的木马这样做完之后,就可以删除结束木马了。
  
  我们选择上图中的“恢复全部-SSDT-HOOK”,恢复完以后呢,我们再选择“SSDT 检查”,看看是不是已经真的恢复了。
  然后,我们得到了这个图:

从图中可以看到,与上面HOOK-SSDT的图几乎一样,唯一不同的是HOOK类型变为了INLINE-HOOK!
  如果这时你没有再次检查,而是直接去结束进程 ,那你得到的仍然是错误!
  
  INLINE-HOOK是比HOOK更高一层的技术,那么什么又是INLINE-HOOK呢?我们仍然以上面的例子来解释:
  
  服务员查过路标后,将把工作交给特定的部门去做,一个部门也不会是一个人,流程会是这样:交给部门的接待员,再由接待人员报上去、报给部门经理的秘书、部门经理的秘书再报给部门经理,再由部门经理实际分派人手去做。
  而INLINE-HOOK技术呢?就是木马打份成了接待人员并把真的接待人员给替换了。
  木马如果是替换的接待人员,那是最初级的INLINE-HOOK,如果它更高级还可以替换秘书、副经理等,但它必竟不是接待人员也不是秘书不是副经理,但它在那个位置上则必须要做那个位置的工作,所以,一些跟杀它无关的工作,本来它也想做好的工作,却可能由于业务能力不足(INLINE-HOOK的技术不足),而做坏,导致正常工作总是出错,无法也正常人员在位时相比。(表现为机器总是莫名奇妙的出问题、死机或蓝屏)
  
  是否理解什么是HOOK、什么又是INLINE-HOOK、为什么机器总是出问题了?
  

通过上面的讲解,我们知道了为什么无法结束进程、无法删除启动项了。我们只要再把INLINE-HOOK恢复了,就可以顺利的结束进程并删除启动项了。
  当我们把进程结束了,把启动项删除了后,想删除文件时,是不是发现文件无法删除呢?这就是CNNIC用到的另一种文件保护技术了,FSD-HOOK、FSD-INLINE-HOOK,这两个又是什么东西呢?
  我们先看一张图:

看上图,前面的是FSD-HOOK,后面的是FSD-INLINE-HOOK。
  因为装了瑞星,所以前面显示的一些是瑞星的FSD-HOOK,但瑞星并没有用到更深层次的FSD-INLINE-HOOK。后面的就是cdnprot.sys(CNNIC的主驱动)的INLINE-HOOK。
  
  现在对上面的一些专业名词进行一下儿解释:

      什么是FSD呢?FSD是英文单词的开头字母缩写,即:文件系统驱动(File System Driver)
  再用上面的例子举例:
  一般性的工作呢~我们会交给Windows的一般部门去完成。但文件相对于电脑就像是我们的资产,是有形的东西、贵重的东西。所以,Windows就专门成立了一个更深层次的部门来负责对文件的管理,其它部门接到与文件有关的工作时,都会转交给文件部来负责处理。
  FSD-HOOK呢,就是把文件部的门牌换到了木马门前,其它部门就把工作交给了木马,木马会进行过滤,发现没有删除自己的操作时,再把工作转交给文件部。如果有,当然就不转交了。
  FSD-INLINE-HOOK呢,不用我说,大家也都知道吧,就是把文件部的工作人员直接替换了,部门还是那里,但人变了。效果一样,但隐蔽性更强,同样,也更不稳定了。
  
  这里再插上一句讲一讲为什么不稳定了,上面说过,当在装有CNNIC的机器上运行IceSword(冰刃)时,会导至蓝屏死机,其原因,就是因为 CNNIC为了保护自己的进程不被结束,INLINE-HOOK了两个与进程有关的服务。而Ice也为了自己的进程不被结束,INLINE-HOOK了同样的服务。如果他们采用的INLINE-HOOK是一样的,那只是前面的被后面的取代,也不会崩溃。但遗憾的是,他们虽然用的同一技术,HOOK的同一地方,但却并不完全一样。CNNIC HOOK了7个字节,而Ice HOOK了5个字节,想一想如果两个都存在这成什么了,系统不崩溃才怪呢。
  所以,机器的崩溃是随机的,只要你用到了某一有冲突的软件,随机将变为必然。
  
  好了,我们恢复FSD的HOOK及INLINE-HOOK,然后再删除文件试试,结果如何?
  是不是,有的可以删除了,但有的DLL文件却仍然无法删除?
  进程被结束了,HOOK被恢复了,为什么仍然无法删除呢?
  这就是CNNIC用到的另一项技术了,曾经流行一时的无进程木马采用的主要手段“DLL进程注入”!
  汗~~CNNIC用到的技术还真多啊~~现在知道为什么我会拿它作例子来讲高级木马的隐藏保护技术了吧?
  下面我们就接着讲什么是“DLL进程注入”,先来看图:

看到上面的图没?
  这些就是CNNIC注入到其它进程中的模块,虽然在进程列表中你看不到它们,但它们的的确确的正在工作,正在使用中的文件,当然你删除不了啦~
  DLL文件是指扩展名为.DLL的文件即“动态链接库”,(注:扩展名只是外在形式,只要格式对,起什么名字都可以的,不能作准)
  每个进程都用到了几个到上百个不等的动态库,每个动态库都完成了某一部分特定的功能。
  一台电脑中的动态加载的模块至少几百多则上千,从中找出哪些是木马的是有点困难。当然了,我们的困难也是木马钟情于这种技术的原因。
  
  用“搜索可疑模块”可以把可疑的全部列出来,看到上图没?这就是我机器上的所有可疑模块了。
  不好意思,偶的机器比较干净,所以除了CNNIC的就没有其它的了。
  
  找到了就简单了,“卸载”+“删除”就搞定了!
  
  好了。至此,你已经破除了CNNIC的大部分保护技术了。之所以说大部分,是因为还有一些小技术的存在。比如说:每次启动电脑都随机改名的影子驱动,影子驱动嘛当然是做为主驱动的保护者备份者而存在啦,当你只删除了主驱动而遗漏了影子驱动时工作就等于没做。还有电源关闭通知技术:就是关机时, WINDOWS会通知CNNIC,偶要关机啦~~你还有什么事情要做不?CNNIC会说,稍等一等,等我检查一下子我的启动项是不是还在~~呵,也就是说,即使你删除了,但一重启它就又出来了。因为关机时它又重新写回去了。
  
  呵,这些就不多讲了,必竟,这些都没啥子太高深的技术含量~含金量偏低,不值的研究~考验的是清除的人是否心细而已
  
  一个CNNIC囊括了当前绝大多数流行的高级木马技术~好东西啊~~
  CNNIC只是保护了自己不被删除,但这种技术同样可以隐藏自己不被发现。知道了存在删除不了,当然郁闷!
  但不知道的你的电脑中到底有多少不速之客的存在呢?不知道还会郁闷吗?是不是感到浑身发冷了?还是接着欺骗自己?
  据最新统计,全球大约有1.3亿台电脑是被黑客控制的,这里面包括你的么?自己花钱买的电脑,别人想怎么用就怎么用,而自己又不知道,你什么心情?

  有时间了偶再总结一下儿其它的常见但并不见得有什么技术的,如:主页被改,无法改回;总是弹出广告,无法清除;结束进程后进程重新出现的多进程保护。。。。等等。
  
  好了,到此结束了,希望对各位有所帮助~~~




声明:在澳纽网频道上发表的内容是出于传递更多信息的目的,不代表本网赞同其观点或证实其内容的真实性。















上一篇:三大巨头集体求婚:互联网引发传媒业大洗牌
下一篇: 雅虎CEO塞梅尔辞职 创始人杨致远重新出山(图)


彩虹摄影





浏览微信精选文章,免费公众号推广

感谢您对澳纽网的支持

© 2024 澳纽网 AusNZnet.com