2007年4月16日星期一

手工杀木马病毒经验谈

  自己杀,帮同学杀木马也几年了,写一下这几年凝结、锤炼出来的经验。如果不想看完,这里是简化说法:用超级兔子查看进程和自启动程序,查看C:\windows和C:\windows\system32的新文件,查看系统服务,搜索认为可疑的文件名,如果是木马病毒则删除之。查看C:\windows\HOSTS有无可疑IP。

现阶段木马特点

  现在的木马,从木马与主人通讯方式来看绝大数为反弹式,即在受害者电脑中种下木马后由木马程序与主人联系。从木马的植入、启动方式来看这几年大多数为注入式,即通过使用电脑里现有的程序(为加强隐蔽性,多使用系统程序)加载DLL插件之类的形式植入和启动。从“复活机制”来看有文件关联型的,“监控型”的等等。文件关联型是打开某种文件(一般是TXT,HTM等,还有修改文件夹打开方式的,用“我的电脑”打开文件夹就启动)时复活,“监控型”是另外使用一个程序不断检测,一旦发现木马被清除就重新植入。对有“复活机制”的木马必须斩草除根才能有效清除。
  反弹式木马优点在于隐蔽性较好。但现在的网络防火墙软件都有监视程序访问网络的功能,新程序访问网络一般都要得到用户的许可,因此一看不认识的程序访问网络就可看到些蛛丝马迹了。(当然对系统程序和常用程序的文件名要比较了解)
  注入式木马由于没有进程,容易躲过进程查看软件的眼睛,因此多了一重隐蔽性。此外,由于是系统程序调用、加载DLL,一般情况下尝试删除会说文件在使用中不可删除。这不像那些有独立进程的木马,只要关掉进程(比如Ctrl+Alt+Del)然后删除就可以了。这些优点使注入式木马近年来大行其道。比如注册表中[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft NT\Windows\CurrentVersion\Winlogon]"Shell" = "Explorer.exe",如果改成"Shell" = "Explorer.exe 1.exe"开机就挂上木马(1.exe)了。而且用的是最重要的系统进程explorer.exe来挂,只有用下面说的方法可以删除。另外有些注入式木马是伪装成系统服务启动的,一般自启动项里看不到。
  还好感染文件的病毒和木马现在不流行了,那些不是本文的方法可以清除的。威金和熊猫烧香就是典型。(其实本体文件可以用本文的方法清除,之后只要不打开被感染的文件就不会有问题,不过谁能做到呢。此外它们除了感染文件以外还用尽了各种传播手段,这也是其大规模爆发的原因)
  此外,现在的木马为增强隐蔽性多冒充成系统文件,比如利用数字1冒充字母l的rundl1.dll、利用数字0冒充字母o的svch0st.exe、IEXPL0RE.EXE等。还有的文件名与系统文件完全相同但放在不同目录,这就更隐蔽了,需要对系统文件相当熟悉才能查杀(当然上网搜索一下就很简单了)
  目前还有靠autorun.inf自动启动的病毒(autorun.inf是自动启动信息,光盘、U盘里如果有这个,一读取就会感染病毒,实在是非常歹毒的做法),且经常与监控结合,带有复活机制。查杀先要把监控程序清除,然后最好是进Dos删除,Windows环境下打开目录时就有可能中招了。(绝大多数病毒程序在Dos下无法正常运行)这种病毒还常修改文件夹的打开方式,由此也可看出现在的木马病毒实在无所不用其极。
  现在的木马病毒为增强生存能力,常具备监视进程的能力,发现用户启动杀毒软件\注册表编辑器等即将其关闭,甚至一植入就破坏杀毒软件。

查杀方法

  这几年凝结、锤炼出来的经验简单说来就一条:直接删除文件(当然之后还要删除注册表信息等)——且听我细说。
  计算机中一切数据(广义的数据),无论是程序也好档案也好音乐也好病毒也好,都以文件形式存放在硬盘中。只要病毒文件不存在了,自然无法发挥威力。
  如上所述,注入式木马在正常启动的Windows中是删除不了的。删除病毒文件的方法是:使用WinPE(可以理解为光盘上的XP。光盘启动以后几乎具备XP的所有基本功能。著名的深山红叶就是一个WinPE)或者MaxDos。(使用CD 目录名进入目录,Deltree 文件名删除文件 Dir列出目录中的所有文件)
  为什么可以直接删除呢?上面也说了,现在感染文件的病毒和木马不多,所以一般病毒和木马的本体文件完全是病毒程序,删除对用户毫无影响。
  删除文件之后还要删除注册表内相关信息,对只使用启动项的,搜索文件名就可以了。文件关联型的还要改文件打开方式,具体请上网搜索。点开始菜单的运行,输入regedit启动注册表编辑器。


  如此则怎样找出病毒文件自然是这一招的关键了。
  首先当然是看进程。
  其次很多木马都是自启动的,看一下自启动项就原形毕露了。这两个都可以用超级兔子。另外有些注入式木马是伪装成系统服务启动的,一般自启动项里看不到,这点也要了解。

  使用杀毒软件查毒也是一个办法,这个就不用说了。不过杀毒软件我一般只作为辅助手段,它们机械的防护方式实在无法应付现在的木马病毒的捉迷藏。
  使用杀毒软件全盘扫描耗时甚多,至少一个小时,多者几个小时。但其实绝大多数木马病毒的文件都在C:\windows、C:\Windows\System32、C:\Windows\installer、C:\Program Files\Internet Explorer、C:\Program Files\Internet Explorer\plugins这几个文件夹里(绝大多数在前两个);更方便查杀的是,它们的修改日期都比较新:一般就在用户发觉有木马的前几天之内。
  于是查杀就很简单了:在“我的电脑”里,查看方式选“详细资料”,按一下修改日期那里,就变成按修改日期排序。一般木马就在最后几个之中。也可以使用杀毒软件作为辅助手段:打开病毒监控浏览这些文件夹就可以了。这样发现病毒就会报告,方便不少。但不得不说的是不要一昧相信杀毒软件,杀毒软件病毒库的更新永远是慢于新病毒的出现的。此外,每周至少要升级一次病毒库,这是无数高手的金玉良言。
  当然了,删除之前为免误删可以先上网搜索一下文件名(有疑问就搜索是个好习惯,长此以往能学到不少东西),实在担心删错的可以把该文件移动到其他地方、改名。现在的木马还只会辨别精确的文件名,错一个字就启动不了了。(不过以后难保不会出现可以辨别不正确文件名的木马)


  这种可谓最简单的了。几乎一切木马病毒的本体都可以如此清除,对文件关联型的木马,可以搜索该文件类型的打开方式(此时的默认打开方式一般都是病毒复活程序),将其改回感染前的。不使用Windows自带的程序有利于更早发现此类木马:比如使用EmEditor打开TXT文件,使用Firefox或者Opera浏览网络,使用Total Commander代替我的电脑和资源管理器等等。对监控型的,要注意本体和监控程序都要删除。
  有的木马会修改C:\windows\HOSTS来开后门,这点也要留意。


  最后推荐几个软件:
  超级兔子:用来查看进程和自启动项。查看自启动项看不到注入式木马,比如前面提到的1.exe,不过一般使用也足够了,而且还有一个优点:可识别系统文件,对辨认冒充系统文件的木马病毒有帮助。同时其卸载王可以删除常见的木马病毒、广告程序等。也可以修复病毒造成的诸如不能使用注册表编辑器等问题。
  Icesword:查看进程调用的DLL、模块,自启动程序等,非常强大的工具。
  Spy-bot Search&Destroy:间谍软件清除工具,完全免费,功能直逼一流的商业软件,有简体中文。下载地址:http://www.spybot.info/cs/download/index.html

  还要说一下校验技术:校验是扫描文件以后给出一个很短的特征码(校验码),理论上不同的文件特征码都不一样,一个文件修改过后特征码也会变化,即不存在两个不同文件特征码相同的情况,就和两个人指纹在理论上不可能相同一样。Hash和MD5就是典型的特征码校验技术。
  如果知道文件原来的校验码,再扫描一次,比较新旧两个校验码就可知道文件是否改动过了。现在的木马病毒还没有使用这个技术,否则上面说的改名处理就没有用了。超级兔子的识别系统文件应该也是只看目录和文件名而没有校验。不过正如前面说到的,现在感染文件的病毒和木马不多,所以这方面问题不大。

  木马病毒的发展速度很快,新的入侵、传播方法会不断出现,本文不可能一一涵盖,大家平时也要自己多留意了。

3 条评论:

Biby Cletus 说...

Nice post, its a really cool blog that you have here, keep up the good work, will be back.

Warm Regards

Biby Cletus - Blog

catmao 说...

路过,看看,写的还行

萧十一狼 说...

呵呵,谢谢~