首先和大家介绍一下手工杀毒
手工杀毒,就是指靠人工识别病毒木马,然后用一些其他工具将其诛杀,它于传统的杀毒软件杀毒方式的区别,就在于,是否有人工识别的过程,而传统的杀毒软件,则只需用户通过一个按钮,完成整个杀毒过程,手工杀毒则人工识别某些文件的行为,然后将其清除。
系统安全,方法有很多:影子系统、虚拟机、沙箱...但很多时候真的没有必要。保持良好的上网习惯和用机习惯,做好适当的备份就可以了。所以这里不讨论那些虚拟技术,主要是真实系统中的一些问题。虽然谈的是手工杀毒,但还是要列举一下平常会用到的可能有关的一些东西:
我们介绍杀毒的处理的方式(一层进一层地处理):
1、安全模式下全盘查杀。 2、将硬盘挂接到其它机器上全盘查杀。 3、重装系统后,仅操作桌面的情况下,安装杀毒软件全盘查杀。 4、依靠杀毒软件是对的,因为手工来杀意味着麻烦和很可能的失败,但是完全交给杀毒软件也不妥当。在病毒成功干扰杀毒软件之后,我们就要手工尽可能去排除干扰。一旦病毒进来了,难说病毒不会把杀毒软件先干掉。即使不用,了解下也没有坏处。
进入手工杀毒的主题:
当中毒之后,第一步,就是断网,并且千万不能系统重启(即使重启也不要正常重启)。
中毒后的症状现在也出奇的有一致性,干扰如360这类安全工具,禁用任务管理器等等。平时多注意任务管理器多注意进程,熟悉系统盘里的文件,以及文件的修改时间,会为手工杀毒带来方便,第一时间知道中毒,第一时间划定可疑范围。在杀毒里最开始也是最重要的一步,就是干掉病毒的进程。这就涉及到很多工具。没有这些工具,手工杀毒根本无从谈起。
首先是我们平时用的最多的任务管理器。用Ctrl+Shift+ESC调出(似乎平时人们都更喜欢Ctrl+Alt+Delete)。最大的缺点是不能同时结束两个以上的进程,而且可以说一直是病毒的首要目标,功能比较鸡肋。但是通常可以是一个信号灯,一旦其失效,就要考虑是不是中毒了~
我强烈推荐Sysinternals的Process Explorer和Process Monitor,因为这两个软件实在是太好了。自从Winternals被微软收购后,Sysinternals也被并入微软名下,所以其工具对于windows系统的支持非常好。 Process Explorer可以完全取代系统自带的鸡肋般的taskmanager,提供的功能之强,使得这款软件历经多年仍然难有出其右者。对于进程信息的提供真是应有尽有了,详细而透彻。虽然近一年时间似乎也逐渐成为病毒屏蔽目标之一,但是强大功能和实用性,我一直无法放弃使用。按Ctrl+H,还可以切换到Handler视图进行更加高级的操作。
[object Object]
早些时候使用process explorer可以说是百试百灵的,可以逃脱的病毒并不多,现在情况就差很多了。下面是我以前碰到的一个例子:U盘上总是会被写上一个文件,文件大小是655k,删除之后过会又会重建。在任务管理器中看不出什么问题,但是在process explorer下却是一目了然。有一个进程作为用户进程居然没有父进程,看其行为,居然每隔一定时间就有一次IO操作,大小刚好也是655k。于是找到位置,删除之。同时用Process Monitor追踪了一下找到其他一些文件删除,系统恢复。可以说杀的并不完整,但是病毒已经无效化了。
[object Object]
[object Object]
Process Monitor实际上是对进程的文件系统和注册表调用的监视。对于特定进程可以完全跟踪文件读写和注册表的读写,这对于排查病毒极为有用。同时也提供了一个进程查看器,其虽然不如专门的进程查看器process explorer强大,却也十分实用,特别是存活时间可以说是一目了然。
[object Object]
在熊猫烧香肆虐的时候,可以说是IceSword大显神威的时候。对于这款软件就不多说了,到了1.22后软件作者就没有再更新了,功能之强大也是沿用至今的利器。但是我一直是用不好的,因为自从用起Sysinternals的工具后,用冰刃的时候就少了很多。强大的工具,要小心使用,不然会危及系统。
[object Object]
也许以上我都是在介绍软件,但是事实就是这样。我们必须借助软件工具找到病毒进程,找到病毒位置。其实很有意思,杀毒的大部分时间都是花在寻找病毒之上的,不论是杀毒软件,还是手工处理。很多时候也许没有这么多工具可用,那么就只能考虑CMD了。运行中输入cmd进入命令行,命令tasklist可以显示当前进程信息,而命令taskkill则可以杀掉指定PID的进程。详细的可以键入tasklist /?看帮助,说明和用法都很详细。另外记得还有个tskill,和一个ntsd,记不怎么清楚了,我不常用。
[object Object]
常常还用一些辅助软件,因为觉得很多时候工具都是不够用的。比如一个网络工具——Tcpview,可以查看网络信息和链接,这对于系统诊断也是相当有效。看看哪个进程在做坏事吧,这个工具总是可以给我带来惊喜,尽管它不仅仅可以用于查毒。
与之对应的是,CMD也是又命令可以达到类似效果的,但是比较麻烦。命令netstat,并配合其参数也可以有比较好的效果。
对于这些工具,用着用着就会上手的。即使不精通的话,时间长了观察熟了抓毒就越快越准了。所以我不打算再讲简单用法了,使用这些工具仅仅只需要一些计算机的知识,或者说想要做高级一点的操作,需要的是编程方面的储备,特别是操作系统那一块。
病 毒侵入计算机后,通常都会实现自启动。找到并清除其自启动项将极大的限制其危害。通常最简单的方法是系统自带的“系统配置实用程序”。在运行里输入 msconfig回车,在启动标签里,显示了一部分的系统启动项目,通过简单的勾选可以选择要启动的项目。然而对于系统本身来说,这里没有一个启动项是必 须的,可以全部去掉也没什么关系。通常的做法是保留ctfmon(系统输入法),选择保留其他的自己的程序。
更加多的启动项就要到注册表里寻找了。运行regedit启动注册表编辑器,查找定位到一些启动位置看看是否又异常。以比较常见的位置来 说,HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion下的Run、RunOnce、 RunOnceEx、RunOnceSetup、RunServices、RunServicesOnce以及HKEY_CURRENT_USER分支下 对应的这些位置,都可以被利用,其中又尤以Run下的改动最为常见。事实上msconfig所列出的也就是注册表里的东西。另外还有 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
CurrentVersionPoliciesExplorerRun及HKEY_CURRENT_USER对应位置等,网上搜索应可以找到一些更加偏的 位置,虽然同样可以利用,但是通常比较少见。而对于“C:Documents and Settings用户名开始菜单程序启动”里的所有快捷方式,系统会自动启动。这可以方便的先自己希望自启动的程序。此位置并不常被利用,但还是要留意 下。更详细的启动项位置关系可以google下,知道了启动的顺序、作用可以更清楚地了解这个过程,在此不再复述。
对于可疑的自启动 项,可以直接删除。并且还要对注册表全面关键字搜索,直接确定的就删除,无法确定的就上网查找信息。而在修改之前,对于犹如系统数据库般的注册表,同样要 本着备份的思想。备份的方法是在注册表编辑器里右击要备份的分支,然后“导出”。现在形形色色注册表备份工具,也给注册表的备份和恢复提供了便利。
运行services.msc可以启动系统服务配置。如果病毒成功的获取了系统权限,成功的注册成了系统服务,那么这里也是不能放过的。通常在这里优化 系统的服务可以减少必要的进程从而达到优化系统的目的。这些服务设置为自动则会在开机时自启动,设置为手动则是在必要是调用启动。对于危险项(比如 Remote Registry)则通常是禁用的。
病毒注册成服务后,有些很明显,没有描述启动位置也很可疑,有些则会伪装。下图是我以前遇到过的一个例子,这让人想起了进程里的伪装,虽然拙劣但是用心良苦。
修改服务时,最好也做好备份,可以导出注册表对应分支HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices。
还有一个地方值得一看,那就是启动/关机脚本。运行gpedit.msc启动组策略编辑器,在位于用户配置-Windows设置-脚本(登录/注销)位置,在这里设置的脚本将会在登录或注销自动执行。
但是很多时候处理问题并不是这么复杂,使用集成工具可以大大简化这些操作。我用的是功能强大的Autoruns(呵呵,又是一个 Sysinternals的东西)。这个工具把系统的启动项统统笼络在一个界面里提供管理和查询,有用的描述和映像路径帮助我们找出可疑文件。当然,工具 越是强大也就越是危险,以前我还在琢磨Autoruns的使用的时候就搞的系统崩溃了,以后用的时候格外小心...
很多系统优化工具也提供启动项的管理,包括360在内的很多软件的这种功能也很好用。但是关键之一就是中毒之后,360很多时候都不能用(当然也可以选择修360),那个时候就是有什么能用就用什么的境地了,多几种方法绝对有好处。
说 完了自启动,下面就要杀毒了。其实所谓的杀毒或者说删除是在是杀毒过程中的一小部分。通过上面的方法——不论是在进程中还是启动项里查到或者是跟踪得到的 位置信息(总之寻到蛛丝马迹是上面的主要任务),现在就是找到那个位置,把病毒delete。直接删除,很少可以成功,即使删除成功,病毒也大多不会终 结。
无法删除,不管是由于进程没有清理完整,或者驱动级病毒的文件保护以及系统进程的注入等都会导致这种情况。借助于Unlocker这种解除锁定的工具
再配合如文件粉碎机或 者文件强行删除工具强制删除,效果较好。同时在安全模式下操作可以保证成功率,尽管很多时候安全模式都被破坏,但是应该尽可能地使用安全模式。实在无法解 决只能诉诸于DOS,或者WinPE,系统之上的系统可以干掉所有非底层病毒。DOS下相对操作较为繁琐,PE系统则易用很多,许多PE系统还提供很多有 用的工具。但是关于删除,我想我还又别的思路,那就是在定位病毒文件磁盘扇区后,强制使用MHDD调硬盘直接把那个地方erase掉!对此我尝试过,但是 步骤显得太繁杂,还不如纯DOS,所以只能说是一种噱头。
另一个问题是如何揪出病毒的残余?对此我个人的方法十分有限,除了盲目地跟 踪加载项(很少有人对此有兴趣并且擅长),以及没头没脑地使用各种工具寻找蛛丝马迹外,没有很好的方法。平常还用一种手段,就是编写一小段脚本找出系统可 疑的近期创建的文件。如果是在中毒后立即发现并查杀的话,此方法尤其奏效。但是局限于程序员和对系统环境熟悉并且敏感的人。所以说,手工杀毒,并非是推荐 方法。
最后的步骤,我想说,让杀毒软件来解决吧......虽然本文写的是手工,但是作为非专业杀毒的区区网管,我感觉自己所能做的 实在是很有限的。尽可能地阻止病毒的进程和启动,解除病毒体对于杀毒软件的干扰,我认为是作为手工杀毒的主要任务,这是由于我个人能力比较有限。虽然已经 过了牛人辈出的时代,但是牛人的数量却是惊人,如果是他们的话,一定可以妙手摘毒的吧。
本文的最后,我再写一些个人感想和建议。
感想:
重装系统作为最后的手段,效果其实最好。如果不是有什么麻烦的情况的话,不如直接重装。因为手工杀个把病毒的时间通常超过重装,而且面临失败的危险从而 浪费了宝贵的时间(当然喜欢研究就不一样了)。必须权衡时间上的利弊,干脆重装,然后在不点击盘符的情况下,安装杀毒软件后全盘扫描。
备份,还是备份!如果数据珍贵,千万不可偷懒。刻盘很安全,磁盘的话也要分开放置。所谓真正的数据备份,必然是存储介质相分离的。
建议:
及时打上所有系统必要补丁,使用FF浏览网页,并及时清理临时文件夹,将大大减少中毒几率。
平时使用时开一个低权限的用户,做什么操作使用什么权限,将大大降低中毒后的危害。麻烦和安全通常唱反调~
保持系统精简高效的运行,将会在最快时间发现中毒症状,使破坏和感染都减到最低的同时方便查杀。
备份,再提备份!无论是windows自带的还原(虽然有点鸡肋)还是ghost的快速犀利,甚至是动用veritas等等,总之备份是计算机使用者最好的习惯!
……