大龙的博客

常用链接

统计

最新评论

关于木马病毒的六种启动方式 -------- 转

木马是随计算机或Windows的启动而启动并掌握一定的控制权的,其启动方式可谓多种多样,通过注册表启动、通过System.ini启动、通过某些特定程序启动等,真是防不胜防。其实只要能够遏制住不让它启动,木马就没什么用了,这里就简单说说木马的启动方式,知己知彼百战不殆嘛。
 
一、通过"开始\程序\启动"

  隐蔽性:2星
  应用程度:较低
 
  这也是一种很常见的方式,很多正常的程序都用它,大家常用的QQ就是用这种方式实现自启动的,但木马却很少用它。因为启动组的每人会会出现在“系统配置实用程序”(msconfig.exe,以下简称msconfig)中。事实上,出现在“开始”菜单的“程序\启动”中足以引起菜鸟的注意,所以,相信不会有木马用这种启动方式。
 
二、通过Win.ini文件

  隐蔽性:3星
  应用程度:较低

  同启动组一样,这也是从Windows3.2开始就可以使用的方法,是从Win16遗传到Win32的。在Windows3.2中,Win.ini就相当于Windows9x中的注册表,在该文件中的[Windows]域中的load和run项会在Windows启动时运行,这两个项目也会出现在msconfig中。而且,在Windows98安装完成后这两项就会被Windows的程序使用了,也不很适合木马使用。
 
三、通过注册表启动
 
  1、通过HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,
  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run和
  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

  隐蔽性:3.5星
  应用程度:极高
  应用案例:BO2000,GOP,NetSpy,IEthief,冰河……

  这是很多Windows程序都采用的方法,也是木马最常用的。使用非常方便,但也容易被人发现,由于其应用太广,所以几乎提到木马,就会让人想到这几个注册表中的主键,通常木马会使用最后一个。使用Windows自带的程序:msconfig或注册表编辑器(regedit.exe,以下简称regedit)都可以将它轻易的删除,所以这种方法并不十分可靠。但可以在木马程序中加一个时间控件,以便实时监视注册表中自身的启动键值是否存在,一旦发现被删除,则立即重新写入,以保证下次Windows启动时自己能被运行。这样木马程序和注册表中的启动键值之间形成了一种互相保护的状态。木马程序未中止,启动键值就无法删除(手工删除后,木马程序又自动添加上了),相反的,不删除启动键值,下次启动Windows还会启动木马。怎么办呢?其实破解它并不难,即使在没有任何工具软件的情况下也能轻易解除这种互相保护。
 
  破解方法:首先,以安全模式启动Windows,这时,Windows不会加载注册表中的项目,因此木马不会被启动,相互保护的状况也就不攻自破了;然后,你就可以删除注册表中的键值和相应的木马程序了。
 
  2、通过HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce,
  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce和
  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

  隐蔽性:4星
  应用程度:较低
  应用案例:Happy99月
 
  这种方法好像用的人不是很多,但隐蔽性比上一种方法好,它的内容不会出现在msconfig中。在这个键值下的项目和上一种相似,会在Windows启动时启动,但Windows启动后,该键值下的项目会被清空,因而不易被发现,但是只能启动一次,木马如何能发挥效果呢?

  其实很简单,不是只能启动一次吗?那木马启动成功后再在这里添加一次不就行了吗?在Delphi中这不过3、5行程序。虽说这些项目不会出现在msconfig中,但是在Regedit中却可以直接将它删除,那么木马也就从此失效了。
 
  还有一种方法,不是在启动的时候加而是在退出Windows的时候加,这要求木马程序本身要截获WIndows的消息,当发现关闭Windows消息时,暂停关闭过程,添加注册表项目,然后才开始关闭Windows,这样用Regedit也找不到它的踪迹了。这种方法也有个缺点,就是一旦Windows异常中止(对于Windows9x这是经常的),木马也就失效了。

  破解他们的方法也可以用安全模式。
 
  另外使用这三个键值并不完全一样,通常木马会选择第一个,因为在第二个键值下的项目会在Windows启动完成前运行,并等待程序结束会才继续启动Windows
 
四、通过Autoexec.bat文件,或winstart.bat,config.sys文件

  隐蔽性:3.5星
  应用程度:较低

  其实这种方法并不适合木马使用,因为该文件会在Windows启动前运行,这时系统处于DOS环境,只能运行16位应用程序,Windows下的32位程序是不能运行的。因此也就失去了木马的意义。不过,这并不是说它不能用于启动木马。可以想象,SoftIce for Win98(功能强大的程序调试工具,被黑客奉为至宝,常用于破解应用程序)也是先要在Autoexec.bat文件中运行然后才能在Windows中呼叫出窗口,进行调试的,既然如此,谁能保证木马不会这样启动呢?到目前为止,我还没见过这样启动的木马,我想能写这样木马的人一定是高手中的高手了。


另外,这两个BAT文件常被用于破坏,它们会在这个文件中加入类似"Deltree C:\*.*"和"Format C:/u"的行,这样,在你启动计算机后还未启动Windows,你的C盘已然空空如也。
 
五、通过System.ini文件
 
  隐蔽性:5星
  应用程度:一般

 

  事实上,System.ini文件并没有给用户可用的启动项目,然而通过它启动却是非常好用的。在System.ini文件的[Boot]域中的Shell项的值正常情况下是"Explorer.exe",这是Windows的外壳程序,换一个程序就可以彻底改变Windows的面貌(如改为Progman.exe就可以让Win9x变成Windows3.2)。我们可以在"Explorer.exe"后加上木马程序的路径,这样Windows启动后木马也就随之启动,而且即使是安全模式启动也不会跳过这一项,这样木马也就可以保证永远随Windows启动了,名噪一时的尼姆达病毒就是用的这种方法。这时,如果木马程序也具有自动检测添加Shell项的功能的话,那简直是天衣无缝的绝配,我想除了使用查看进程的工具中止木马,再修改Shell项和删除木马文件外是没有破解之法了。但这种方式也有个先天的不足,因为只有Shell这一项嘛,如果有两个木马都使用这种方式实现自启动,那么后来的木马可能会使前一个无法启动,呵呵以毒攻毒啊。

六、通过某特定程序或文件启动

  1、寄生于特定程序之中
 
  隐蔽性:5星
  应用程度:一般
 
  即木马和正常程序捆绑,有点类似于病毒,程序在运行时,木马程序先获得控制权或另开一个线程以监视用户操作,截取密码等,这类木马编写的难度较大,需要了解PE文件结构和Windows的底层知识(直接使用捆绑程序除外)。
 
  2、将特定的程序改名
 
  隐蔽性:5星
  应用程度:常见
 
  这种方式常见于针对QQ的木马,例如将QQ的启动文件QQ2000b.exe,改为QQ2000b.ico.exe(Windows默认是不显示扩展名的,因此它会被显示为QQ2000b.ico,而用户会认为它是一个图标),再将木马程序改为QQ2000b.exe,此后,用户运行QQ,实际是运行了QQ木马,再由QQ木马去启动真正的QQ,这种方式实现起来要比上一种简单的多。
 
  3、文件关联
 
  隐蔽性:5星
  应用程度:常见
 
  通常木马程序会将自己和TXT文件或EXE文件关联,这样当你打开一个文本文件或运行一个程序时,木马也就神不知鬼不觉的启动了。
 
  这类通过特定程序或文件启动的木马,发现比较困难,但查杀并不难。一般地,只要删除相应的文件和注册表键值即可。

posted on 2008-01-19 00:54 大龙 阅读(202) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理