请记录好Debugger指向的程序位置,也不要试图再执行那些安全工具,首先应该尝试删除受影响的 IFEO项,然后刷新注册表看看数据是否马上恢复了,如果马上恢复,则说明后台里有程序正在实时判断和写入IFEO,这时候必须拿出 Sysinternals出品的注册表监控工具Regmon或类似工具,设置Filter为你正在尝试删除的安全工具的IFEO项,很快就能发现具体是什么进程在操作注册表了,然后将IceSword改名(如果已经被劫持),在它的进程列表里将相应进程终止掉。如果这个进程立即又重生了呢?再终止一次,然后迅速点击IceSword的“监视进线程创建”,你就能发现上一次捣乱的程序是什么名字了,将它记录下来,再开启一个Sysinternals的工具 “Process Explorer”,在对应进程上点击右键选择“Suspend”,这个进程就会被挂起,用IceSword和它配合把相关恶意进程都挂起后,再使用 IceSword的文件功能里的“强制删除”,在这个程序还没来得及反应时就把它们的本体给歼灭,这时候再返回Process Explorer里按照大小排列从最大的一个守护进程开始Kill Process即可,由于没有了映像文件存在,它们意欲重新建立木马帝国的贼心也就无法实现了。
如果查杀过程更为复杂的话,请自行参阅相关文章,这里就不再赘述了。
如此实现“免疫”?不被推荐的做法
由于AV终结者搞得人心惶惶,一时间网络上开始流传“免疫映像劫持”甚至“利用映像劫持免疫大部分常见病毒”的做法,对于这些方法的最初提供者,我相信他们的出发点是好的,只是,从严格的角度来看,这却是不可取的。
首先是“免疫映像劫持”,具体的方法是,例如免疫威金病毒“logo_1.exe”,则在IFEO列表里建立一个“logo_1.exe”项,然后设定它的 Debugger参数为它自身即“logo_1.exe”,根据原作者解释,其原理是递归死循环:“当Debugger的值等于本身时,就是调用自身来调试自己,结果自己不是调试器,又来一次,递归了,就进入了死循环,也就不能启动了。”
这种方法虽然有效(最后的现象是“找不到文件”),但是它会导致系统在短时间内陷入一个CreateProcess循环和命令参数的字符串累加状态,会消耗一定的资源,最终没能执行程序是因为系统使用 CreateProcess启动的实例会被它自身代替执行,从而造成死循环,而且命令行的长度是有系统限制的,到一定范围就会出错了,尤其在可以接受命令行参数的程序里,你甚至会发现硬盘狂转了好一会儿才弹出错误提示,这段时间里就是在死循环传递状态了,最终由于超过系统限制的命令行长度而导致系统传递执行请求时出错,才得以跳出这个死循环,换一个角度来看,如果系统没有限制命令行长度,那么这个操作很可能直接导致系统所有资源都消耗在这个自己反复执行自己的“调试器”上了。
至于“利用映像劫持免疫大部分常见病毒”的做法,发起号召者模仿“映像劫持”后门屏蔽大部分常用安全工具的原理,搜集了许多流行危害程序的可执行文件名加以前面提到的递归死循环方法达到目的,如果不计较前面提到的递归死循环缺点,似乎这个方法是可行的。
然而这真的可行吗?世界上存在许多与某些系统文件同名同姓的社交型后门,如位置不同而名字相同的命令提示符输入法控制程序“conime.exe”(被 OSO超级U盘病毒借用名字)、重要程序Rundll32.exe被某些木马替换为自身、甚至IE浏览器主体iexplore.exe也存在被木马伪造文件名的案例,如此一来不知道多少正常的系统程序可能会被这份“免疫列表”给误杀了,我仅仅粗略浏览了一下就发现msiexec.exe居然存在“免疫列表”中,要知道这可是微软安装程序的主执行体啊……
争议话题:是否禁止IFEO列表权限?
同时,网上还流传着一个让初级用户看不懂的做法,那就是关闭IFEO列表的写入权限,具体操作如下:
?执行32位注册表编辑器regedt32.exe
?定位到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
?确保焦点在Image File Execution Options上,选择“安全”—“权限”
?将出现的用户列表内所有带有“写入”的权限去掉,确定退出
这样一来,任何对IFEO的写入操作都失效了,也就起了免疫效果。这个方法对一般用户而言还是不错的,除非遭遇到一些特殊的需要往里面写入堆管理参数的程序,否则我建议一般用户还是禁止此项,从而杜绝一切IFEO类病毒来袭。
而争议正在于此,因为从长计议来看,用户很可能会遇到需要往IFEO列表里写入数据的正常程序,彻底禁止了IFEO的写入可能会导致不可预见的后果,既然如此,我们就采取折中的方法好了,使用HIPS(主机入侵防御系统)的注册表防御体系RD(Registry Defend),为我们提供一种两者都能兼顾的IFEO管理方法
以SSM为例,首先确保RD体系模块已经开启,然后添加新监视规则,“键路径” 指向HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,“操作”为“当更改时报警”,记得“包含值”选上,最后把“子键深度最大值”设为“3”,点击确定生成新的监视规则,然后在“规则”主界面里确保“存取”、“删除”、“写入”的操作均为疑问状态,这是表示在相关键值被进行写入操作时弹出消息询问用户,最后点击“应用设定”让规则生效,从此只需开着SSM,映像劫持就离你远去了。