近日接到内网用户来报,在上到某些站点的时候,会被提示安装一个叫3721中文实名的插件,部分用户在不知情的情况下误点“安装”选项,导致该病毒驻留于硬盘上难以杀除。天缘虽是网络管理员,但是对Windows操作系统的确使用得不多,从来也没有用过这个名为3721的插件,但看到用户们焦急地神情,于是答应尽力而为。经过几番努力,终于将其斩于马下。 以下是杀除该病毒得经历及病毒解决方案。
天缘使用一台windowsxp机器,访问用户提供的站点,下载并执行了该插件。该插件为中文,自动安装后重新启动机器后生效,并自带卸载功能。通过安装/卸载前后的对比观察,其驻留性、自身保护性及对系统性能的大量损耗,让天缘确定了该插件确是病毒无疑!
病毒发作现象:
自动将浏览器的“搜索”功能重定向到一个叫www。3721。com的网站,该站点为中文站,且无法修改;
强行在用户ie上添加“情景聊天”、“上网加速”等几个图标;
不断刷新注册表相关键值,以达到成功驻留和大量消耗用户主机资源的目的;
每次启机加载,并自带进程保护功能,在正常地windows启动下难以杀除;
带自动升级功能,每次用户上网使用ie时,该病毒会后台执行升级;
病毒自身特点:
自带卸载功能;该病毒为达到隐藏自身目的,麻痹下载插件用户的目的,提供了卸载程序。但根据天缘的使用情况发现,在卸载后,该病毒程序依然驻留,启动时仍然加载,依然监视、改写注册表;
采用网络升级方式;该病毒为了防止用户以及杀毒软件的杀除,采取定期网上升级的方式,这点与近期的其他Windows主流病毒类似,但值得一提的是该病毒建有公开的病毒升级站点www。3721。com,且站点风格酷似门户、服务类站点,具有极大的欺骗性;
以驱动模式加载;该特性可说是近段时期以来病毒编写的一次技术飞跃,采用驱动模式加载配合挂接hook的方式,在windows下极难查杀(详细技术讨论见后);
提供在浏览器地址栏中输入中文后转到其站点进行关键字查询的搜索服务。前段时间的冲击波克星病毒也曾在感染用户机器后自动连接用户的机器到update.Microsoft.com下载补丁,看来新的病毒越来越多地喜欢提供一些另类功能了;
被动方式传播:利用一些站点来进行传播,而不是主动感染其他机器,这点与当前热门的“美女图片”病毒的方式相近。从主动转向被动,可说是今年一些病毒的新特点。
病毒详细分析:
当用户访问站点的时候,弹出一个控件下载窗口提示用户下载安装,表面上称自己是提供中文实名服务,引诱用户安装;
在安装过程中多处修改用户文件及注册表;
添加文件:
在Documents and SettingsAll Users「开始」菜单程序网络实名 目录下添加:
了解网络实名详细信息。url 86 字节
清理上网记录。url 100 字节
上网助手。url 99 字节
卸载网络实名。lnk 1,373 字节
修复浏览器。url 103 字节
在WINDOWSDownloaded Program Files 下添加:
assis.ico 5,734 字节
cns02.dat 1,652 字节
CnsHook.dll 56,320 字节
CnsMin.cab 116,520 字节
CnsMin.dll 179,712 字节
CnsMin.inf 378 字节
sms.ico" 6,526 字节
yahoomsg.ico 5,734 字节
在WINDOWSSystem32Drivers 目录下添加:
CnsminKP.sys
添加注册表键值:
增加HKEY_LOCAL_MACHINESOFTWARE3721 主键,下设多子键及属性值;
在HKEY_LOCAL_MACHINESOFTWAREClassesCLSID 主键下增加
两个子键
在HKEY_LOCAL_MACHINESOFTWAREClasses主键下增加
CnsHelper.CH
CnsHelper.CH.1
CnsMinHK.CnsHook
CnsMinHK.CnsHook.1四个子键
在HKEY_LOCAL_MACHINESOFTWAREClassesInterface主键下增加子键
在HKEY_LOCAL_MACHINESOFTWAREClassesTypeLib主键下增加
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerAdvancedOptions主键下增加!CNS子键
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions 主键下增加
五个子键
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerSearch主键下增加
CustomizeSearch
OcustomizeSearch
SearchAssistant
OsearchAssistant 四个子键
在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionExplorerShellExecuteHooks主键下增加子键
在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionRun下增加CnsMin子键
在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionRunOnce下增加EK_Entry 子键 (提示,这个键将在下次启动机器的时候生效,产生最令人头疼的部分,后文会叙述)
在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionUninstall下增加CnsMin 子键
在HKEY_CURRENT_USERSoftware下增加3721子键
在HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain下增加
CNSAutoUpdate
CNSEnable
CNSHint
CNSList
CNSMenu
CNSReset
在重新启动计算机后,上面提到的RunOnce下的EK_Entry生效,在注册表中多处生成最为邪恶的CnsMinKP键值,同时在系统盘的windows/system32/drivers目录下生成CnsMinKP.sys文件,噩梦由此开始。
由于win2k/xp在启动的时候(包括安全模式)默认会自动运行windows/system32/drivers下面的所有驱动程序,于是CnsMinKP.sys被加载,而这个驱动的作用之一,就是保证windows/ Downloaded Program Files目录下的Cnshook.dll和CnsMin.dll以及其自身不被删除;Cnshook.dll的作用则是提供中文实名功能,CnsMin.dll作用在于使其驻留在ie进程内的时候。CnsMin为了保证自己的优先级最高,用了一个定时器函数反复安装钩子,因此造成系统性能下降,在天缘测试的那台机器上,使得性能大概下降了20%左右。而且由于hook强行挂接的原因,当用户使用断点调试程序的时候将会导致频繁出错,这一点与早期版本的cih导致winzip操作和无法关机类似(关于详细的技术细节,可参看题目为《[转载]3721驻留机制简单研究》一文,原作者Quaful@水木清华)
防删除特性:
该病毒虽然自带一个所谓的“卸载程序”,但事实上核心部分的程序/注册表键值依然没有删除。而且该病毒更是利用各种技术手段,具有极其强大的反删除特性。
windows系统启机(包括安全模式下)便会加载windows/system32/drivers下的CnsMinKP.sys,该驱动该驱动程序过滤了对其自身及相关重要文件和注册表的删除操作。每当试图删除3721的关键文件和注册表项时,直接返回一个TRUE,使Windows认为删除已经成功,但文件和注册表实际上还是在那里。
技术亮点:
天缘不得不承认,3721这个病毒插件可称我作为网管以来面对的最难清除的病毒。近几年来病毒有几次质的突破:cih感染可升级的bios、红色代码打开windows的共享扩大战果、meliza让我们见识了什么是看得到源程序的病毒、mssqlserver蠕虫让我们留意到计算机病毒能攻击的不光是节点还有网络设备、冲击波病毒让我们认识到大量使用同一种操作系统时在出现安全漏洞时的可怕、美女图片病毒让我们知道了将欺骗艺术与软件漏洞结合的威力、而这次3721病毒首次展现了病毒强大的反删除特性,可说是在windows环境下无法杀除的病毒。虽然这是个良性病毒,对系统并没有破坏特性,但依据病毒的发展史,可以预见,这种几近完美的反删除技术将很快被其他病毒所利用,很快将被其他病毒所利用。届时结合网络传播,局网感染带强大反删除功能的病毒或许会让目前windows平台下的杀毒软件遭遇到最大的考验。而这次经历,也让我意识到微软的windows操作系统在人性化、美观化、傻瓜化的背后的危机。作为it同行,我个人对3721病毒作者所使用的种种技术表示钦佩,但新型病毒的潘多拉魔盒,已经被他们打开。
在目前已知的病毒历史上,之前只有几种病毒利用过windows nt下的system32/drivers 下的程序会被自动加载的特性来进行传播,但那些病毒本身编写地不够完善,会导致windows nt系统频繁蓝屏死机,象3721插件病毒这样完美地加载、驻留其他进程,只消耗主机资源,监测注册表及关键文件不导致系统出错的病毒,国内外尚属首次,在技术上比以前那些病毒更为成熟;
如同天缘和大家曾经探讨过的没打sp2以上patch的win2k如何上网下载sp4再安装补丁这样的连环套问题一样。由于drivers目录下的CnsMinKP.sys启机必定加载,而欲不加载它,只有在windows启动后,进注册表改写相应的CnsMinKP键值或者删除该文件,但由于CnsMinKP.sys过滤了对其自身及相关重要文件和注册表的删除操作。每当试图删除3721的关键文件和注册表项时,直接返回一个TRUE,使Windows认为删除已经成功,但文件和注册表实际上还是在那里。使得注册表无法修改/文件无法被删除,让我们传统的杀除病毒和木马的对策无法进行。
驻留ie进程,并自动升级,保证了该病毒有极强大的生命力,想来新的杀除