■
笔者就曾经遇到过这样的情况:当使用某款杀毒软件扫描系统时,发现一个名为“wlsrmgr..sys”的病毒文件,看其名称应该是驱动文件。笔者立即使用该杀毒软件将其清除,看起来好像已经将其驱逐出去了。但是,当下次启动电脑时,该杀毒软件有提示发现该病毒文件,看来杀毒软件实际上并没有将其清除,说明该病毒是以驱动的形式加载的,该杀毒软件只能发现而无法将其删除。既然已经知道了该病毒文件的路径,就只能手工清除了。
进 入“C:W i n d o w sSystem32Drivers”文件夹,果然找到了“wlsrmgr.sys”文件,当试图手工删除时,遭到了系统的拦截,于是使用优盘引导系统进入WinPE环境,进入上述文件夹,将该病毒文件清除,仅仅删除了病毒文件是不够的,还必须将其在系统中遗留的相关配置信息清除,才可以彻底消除其影响。
运行“regedit.exe”程序,在其中点击“Ctrl+F”键,输入“wlsrmgr..sys”执行搜索操作,果然在“HKEY_LOCAL_MACHINESYSTEMControlSet001Services”分支中发现了与之相关的键值,说明该病毒是以系统服务的方式启动运行的,将其删除后,才让该病毒彻底从系统中销声匿迹了。如果在删除相关键值时,出现权限不足的提示,可以在其右键菜单上点击“权限”项,在弹出窗口中选择“Everyone”账户(如果没有的话,可以添加该账户),在“允许”列中选择“完全控制”项,就可以将其顺利删除了。
某次当笔者在上网冲浪时,安装的杀毒软件突然自动关闭了,这让笔者感到有些奇怪,估计可能是有病毒入侵了。运行IceSword这款安全利器,在其主界面对进程、端口、内核模块、启动项、服务等内容进行仔细检查,当打开SSDT列表时,果然在其中发现了可疑之处,IceSword以红色标记显示“certload.dli” 和“fsvtub.sys”存在安全问题。经过检测,前者位于系统临时路径中,后者位于“C:Windowssystem32Drviers”文件夹中。在删除“certload.dli”文件时,系统提示无法删除。
在IceSword的进程列表中点击右键,在弹出菜单中选择“查找模块”项,输入该文件名称,发现其插入到了“iexplorer.exe”进程中,将IE关闭后,在IceSword文件管理界面中将上述两个文件顺利删除,之后重启系统,发现杀毒软件恢复了功能,于是对全盘进行扫描,在“c:windowssystem32”目录中发现名为“lasse.exe”的病毒文件,初看起来还以为是系统核心进程,将其删除后以为问题已经解决了。但是,打开安装的某防火墙管理界面,在网络连接检测列表中发现“iexplorer.exe”进程持续不断地连接外地的某个IP,看来还有隐藏的病毒文件没有被清除。
因为Knlsc这款小工具可以轻松发现隐藏的服务或者驱动,于是在CMD窗口中 执 行“knlsc13.exe-f” 命令,果然在检测报告中发现名为“kmsrvhk.sys”的驱动文件加载了一个隐藏的系统服务。 执 行“knlsc13.exe-cd kmsrvhk”命令,禁止运行该服务,同时在防火墙中添加一条规则,禁止“iexplorer.exe”进程访问外网。当重启电脑后,发现虽然没有打开IE,但是“iexplorer.exe”进程却自动出现了。于是在IceSword中打开进程列表,对关键的进程进行分析,在对应的模块信息中查找可疑分子,经过一番搜索,发现“mrxvdmsp.dl1”和“hidsrbss.d1l”很可疑,其全部位 于“C:Windowssystem”目录中。为了彻底删除以上可疑文件,使用优盘引导系统进入WinPE环境,将“certload.dli”,“mrxvdmsp.dl1”和“hidsrbss.d1l”文 件删除。重新进入系统后,执行“knlsc13.exe law”命令,发现名为“watserver”的服务试图调用“hidsrbss.d1l”的可疑文件,运行“knlsc13.exe cd watserver”命令禁用该服务,之后发现“iexplorer.exe”进程消失了,不再连接外网了。至此,将病毒文件彻底清除,恢复了系统的平静。
同事从网上下载了某个小工具,使用杀毒软件检测并没有发现问题,但是运行后安装的某杀毒软件的主动防御功能被破坏,杀毒软件提示有病毒侵入,但是无法顺利删除。想找到该可疑程序进行分析时,发现该程序已经奇怪地消失了。毫无疑问,该病毒文件具有自毁功能,运行完毕后会自动删除自身文件。为了将其彻底清除,必须了解其行为特点。于是笔者从相同的网站下载了该文件,为了安全起见,将其放到虚拟机中。使用PeID对其进行检测,发现其经过了加壳处理,具有免杀功能可以避开杀毒软件的检测。运行该可疑程序,同时使用FileMon、RegMon、System Safety Monitor、Total Uninstall、Online Armor等监控工具对其进行监控。
经过跟踪分析,发现该文件确实是病毒程序,当其运行 后,会 在“C:WindowsSystem32”文件中释放名为“mclkbd2f.dll”,“mclkbd2f.cgf”等文件,在“C:WindowsSystem32Drivers”目录中创建名为“wansepid.sys”的驱动文件。使用IceSword对系统进行分析,该病毒会在系统中创建Hook项目,主要用来盗取用户输入的密码等敏感信息。修改SSDT项目,让杀毒软件的主动防御功能失效,同时以驱动加载的形式创建病毒服务,获得自动运行的权利。该病毒对注册表进行了一些修改,同时还会对内网中的其它主机进行探测工具,通过溢出攻击操作来获得SYSTEM账户权限。当病毒激活后,该可疑程序会通过自动删除来逃避用户的追捕。
了解其运行原理后,清除起来就有的放矢了。在同事的主机上进入安全模式,在注册表编辑器中打 开“HKEY_LOCAL_MACHINESOFTWAREM i c r o s o f tW i n d o w sCurrentVersionExplorerShellExecuteHooks”分支,将其中病毒创建的项目全部删除。 打 开“HKEY_LOCAL_MACHINESYSTEMControlSet001Services”分支,将病毒创建的名为“wansepid”的服务项目彻底删除。打开“HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{3ffa9bef--6 5 7 1-d 1 6 b-b c a 7-a d 2 1 7 0 e 6 1 4 0 9 c}InprocServer32”,将 其 中 的所有键值清空。之后进入WinPE环 境,将“mclkbd2f.dll”、“mclkbd2f.cgf”、“wansepid.sys” 等 病 毒 文件删除,之后进入系统使用IceSword恢复被篡改的SSDT项目,让该机上的杀毒软件的主动防御功能获得恢复。为了提高系统安全性,使用360安全卫士等工具为系统和常用软件打上了各种补丁,让系统变得更加强壮。
有些病毒会将自身伪装成硬件驱动程序,可以利用设备管理器来发现其行踪并徒手将其清除。例如对于某木马的变种程序来说,就会以硬件驱动的形式将自身隐藏起来。运行“devmgmt.msc”程序,在设备管理器窗口点击菜单“查看”→“显示隐藏的设备”项,在设备列表中打开“非即插即用驱动程序”项,在其中看到所有驱动型软件的服务程序,经过一番搜索后,发现名为“audserver”的硬件驱动非常可疑,双击该驱动项目,在其属性窗口中的“驱动程序”面板中双击“驱动程序详细信息”按钮,在弹出窗口中发现其实际路径为“C:WindowsSystemDriversaudserver.sys”,在“驱动程序”面板中的“类型”列表中选择“已禁用”项。之后重启电脑,就可以让该虚假的驱动程序失去活力,之后进入上述路径,手工将病毒文件清除即可。
此外,随着人们对于Internet依赖程度的增加,浏览器(特使是IE)成了最常用的上网工具。为了实现劫持绑架浏览器的目的,很多恶意程序会以驱动文件的方式,将自身注册为浏览器插件来实现更改主页、强制进入恶意站点、盗窃用户隐私信息等。用户可以使用上述方法,对驱动文件夹和注册表进行检查,来发现和清除可疑的驱动文件,同时将其在注册表中的痕迹信息全部清除,也可以使用AntiSpy这款强悍的安全工具来清除这类恶意插件。在其主界面中的“网络”面板中打开“IE插件”标签,在其中显示所有的插件信息,包括类型、名称、模块路径、文件厂商等内容。AntiSpy使用黑色来标识和微软相关的正常插件,以蓝色标识第三方的插件项目,对于可疑的插件,可以在其右键菜单上点击“在线搜索插件名”项,寻找与之相关的更多信息来鉴别其真实身份。
对于存在问题的插件,可以取消其选择状态,将其设置为禁用状态,对于确认是病毒的插件,在其右键菜单中点击“删除注册表和文件”项,将其从系统中彻底清除。如果病毒文件难以删除,可以在该插件的右键菜单上点击“在AntiSpy文件管理器中定位文件”项,在AntiSpy文件管理器自动选中病毒文件,在其右键菜单中点击“添加到重启删除列表”项,之后重启系统就可以将其清除。为了防止用户清除恶意插件,病毒会利用非法驱动文件为其撑起“保护伞”,为此可以在“启动项”面板左侧点击“驱动程序”项,在右侧列表中找到和病毒插件相关的驱动文件项目,在其右键菜单中点击“删除启动信息和文件”项,将其从系统中清除。
当然,有时仅仅依靠安全软件,是无法完全保证系统安全的。为了及时发现病毒驱动的踪迹,可以在系统处于正常状态时,在CDM窗口中执行“dir c:windows*.sys/s>sys1.txt”命令,将系统文件夹中的所有驱动文件记录下来。当发现系统运行出现异常时,在CMD窗口中执行“dir c:windows*.sys/s>sys2.txt”命令,将当前系统文件夹中所有的驱动文件记录下来,之后执行“fc sys1.txt sys2.txt”命令来对两者进行比对。对于多出来的一些SYS文件,通过对其创建时间、存储路径、版本、是否压缩、数字签名等特征进行分析后,很容易发现来历不明的可疑驱动文件。例如,发现了名为“kerbdrv.sys”的驱动文件很可疑,因为其没有任何开发者和版本信息,利用搜索引擎查找该文件相关信息,确信其不是任何驱动文件,于是进入WinPE环境将其清除,之后在注册表中搜索和清除和其相关的所有项目,将其从系统中彻底驱逐出去。
使用手工备份驱动文件信息毕竟有些繁琐,而且备份的信息也不完整,相比之下,使用AntiSpy可以更加完美地备份驱动信息文件。在其主界面中的“驱动模块”面板(如图1所示)中显示所有的驱动文件信息,包括驱动名、驱动对象、驱动路径、服务名、启动类型、加载顺序、文件厂商等内容。点击“驱动名”列,使其按照名称进行排序,之后在驱动列表的右键菜单中点击“导出到”→“文本文件”项,可以将驱动文件信息全部导出到指定的文本文件中,或者点击“导出到”→“Excel表格”项,将其导出为独立的表格文件。当系统运行异常时,再次执行以上操作,获得当前的驱动信息备份文件,之后使用“fc”命令或者运行Beyonf Compare3等专业的比对工具,就可以很容易地发现潜在的驱动文件中的恶意文件了。在AntiSpy中选择病毒驱动文件,在其右键菜单中点击“卸载驱动”项,可以让其失去活力,点击“删除驱动文件和注册表”项,可以将其彻底删除。
图1 查看驱动文件信息
图2 使用Pserv管理驱动文件
除了使用上述方法备份和查看驱动文件信息外,还可以使用Pserv这款小工具来全面记录驱动文件信息。在系统处于正常状态时,在Pserv主界面中点击菜单“查看”→“设备列表”项,显示所有的设备文件信息(如图2所示),将其窗口最大化,同时调整各列的显示宽度,将设备的全称、名称、状态、启动、类型、路径等重要信息全部显示出来,之后运行HyperSnap这款抓图软件,点击菜单“捕捉”→“区域(带卷动)”项,将Pserv主界面设置为抓取区域,这样,就可以将驱动文件信息完整抓出来,并保存为独立的图片文件。
当系统出现异常时,按照上述方法抓取此时的驱动文件信息,之后将两张图片进行比对,可以很容易发现混迹在驱动文件中的不法之徒,因为Pserv默认按照名称排序,所以查找对比起来极为简单,当发现病毒驱动后,在Pserv主界面中选择该驱动文件,在其右键菜单上点击“禁用”项可以禁用该驱动文件,点击“删除”项可以将其删除。如果不能删除,知道了其名称和路径,可以在WinPE环境中进行删除操作。此外,在Pserv中点击菜单“查看”→“服务列表”项,可以管理服务信息,按照上述方法,可以备份和检测服务信息,将伪装成服务的病毒找出来并清除。