几扇鲜为人知的Windows XP自动运行后门
一、危险后门介绍
以下是几种不太被人注意和重视的潜在危险后门介绍,其危险级别一个比一个要高。对于其安全防范,由于一些后门的防范措施具有共同性,因此后文统一说明。
1.Windows Load
危险程度:★★★★☆
危险描述:该自动运行项目绕过了大家熟知的Run相关的键值进行程序的自动加载,能够逃过大多数安全程序的检查,绝大多数媒体上也没有公开介绍,因此风险很大。
后门分析:
在注册表的以下子项位置:
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]
这个注册表键项是为了保持与旧的Win.ini配置文件的兼容而设置的,可支持多个自动加载的值项。
该处支持一个“load”的字符串值,其键值可以是各种可执行文件,比如“C:\Windows\notepad.exe”等。恶意程序完全可以利用这个键值实现自动加载(图1)。
2.Windows Run
危险程度:★★★★☆
危险描述:与上述相似,该自动运行项目也是绕过大家熟知的Run相关的键值进行程序的自动加载,能够逃过大多数安全程序的检查,风险很大。
后门分析:
同样,在注册表的以下子项位置:
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]
该处支持一个“Run”的字符串值,其键值可以是各种可执行文件,比如“C:\Windows\notepad.exe”等。恶意程序完全可以利用这个键值实现自动加载(参见图1)。
3.特殊的16位可执行文件类型
危险程度:★★★★☆
危险描述:恶意程序充分利用这个后门可以逃避多种杀毒软件对常见敏感文件类型的快速扫描。木马或病毒可创建特殊的文件类型,并利用这个后门进行注册,就可以命令行的方
式实话各种破坏。
后门分析:
仍然在注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]位置下,名称为“Program”的字符串键值,其中默认的内容为“com exe bat pif cmd”,这是常见的16位可执行程序的文件类型(其中pif不能算是完全的可执行文件,但我们一并考察)。如果恶意程序修改此处的键值,比如添加一个“tst”的文件类型,再将恶意程序的扩展名改为.tst,则从命令行执行这个程序是没有任何问题的!不信你可以在此添加一个tst类型,然后复制一个notepad.exe并改名为notepad.tst,再在命令行下执行notepad.tst,是不是记事本被打开了?!
4.Windows Shell
危险程度:★★★★★
危险描述:这是一个最容易被恶意利用的后门!如果木马或病毒对该自动加载程序的键值进行了修改,除非有经验的高级用户,一般人不容易发现。
后门分析:
在注册表的以下位置:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
该处有一个名为“Shell”的字符串值项,Windows在安装时就已经将其默认键值设置为“Explorer.exe”。Explorer.exe这个程序是Windows的默认外壳(Shell)程序,它可以使我们启动系统后进入一个大家熟悉的桌面界面。这个Explorer.exe文件的位置在Windows目录,由于系统已经在环境变量中将C:\Windows、C:\Windows\System等系统目录纳入到了其默认的搜索路径中(系统内定的程序搜索路径为%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem,注册表中的位置为[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]下面的Path键值),因此上述键值中只需直接给出“Explorer.exe”的程序文件名即可,而这也恰恰是其危险的地方!
假如一个木马程序将其自身也命名为“Explorer.exe”,并将自己复制到Windows\System32目录,然后再将上述注册表中“Shell”字符串值项的键值修改为“C:\Windows\System32\Explorer.exe explorer.exe”,则此时作为木马的C:\Windows\System32\Explorer.exe这个程序将在加载系统外壳时先被执行,而真正的系统外壳程序C:\Windows\Explorer.exe却只能作为木马程序的参数被随后加载!
当然,专门针对这个危险后门的木马完全可以在程序内部就设置好加载真正的系统外壳程序explorer,exe的相关调用,这样修改上述注册表键值时,只需将默认的“Explorer.exe”改为“C:\Windows\System32\Explorer.exe”(此为绝对路径)或“%SystemRoot%\system32\Explorer.exe”(引用环境变量)即可。此时即使万一用户跟踪到了它的位置而试图将这个键值删除,则Windows因丢失了加载系统外壳的命令,将导致无法引导到桌面的故障,从而给普通用户带来更大的麻烦!
如果进一步分析,我们还会发现:Windows XP系统默认的搜索路径的顺序是“%SystemRoot%\system32;%SystemRoot%”,也就是说,Windows\System32目录的搜索优先级大于Windows目录,这样一来,木马程序甚至连这个注册表键值都不须作任何修改,只需将名称为explorer.exe的木马程序植入Windows\System32目录就可以了(图2)!
5.BootExecute
危险程度:★★★★★
危险描述:这也是一个很容易被恶意利用的后门!如果木马或病毒对该自动加载程序的键值进行了修改,除非有经验的高级用户,一般人绝难发现。
后门分析:
危险后门的注册表位置如下:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager]
在这个注册表值项下面,默认会存在一个“BootExecute”的多字符串值项,其默认的键值为“autocheck autochk *”,用于系统启动时的某些自动检查。有些应用程序在安装时也可能会在此放入其自身的自动运行项目,如著名的磁盘碎片整理软件Perfect Disk就会在这里添加一个“PDBoot.exe”的字符串,以实现系统引导初期自动对磁盘的特殊区域进行碎片整理。
多字符串值的格式是每条命令行作为单独的一行,如图所示。
可想而知,如果木马或病毒植入一个恶意程序到系统中后,再在此处添加自动加载的命令行,结果会如何?
更为严重的是,即使是目前国际上都很知名的几大杀毒软件,其自动加载也都是在Windows XP加载完毕、开始进入32位图形界面的过程中逐步自动加载到内存中的,也就是说杀毒软件加载的优先级要比上述这个注册表“BootExecute”值项中的程序的加载优先级低,因此采用这种方式感染系统其隐蔽性和危害性将更大!
6.PendingFileRenameOperations
危险程度:★★★★★
危险描述:这是一个可被恶意程序利用但利用稍有麻烦的后门。“PendingFileRenameOperations”的中文含义是“未决的文件改名操作”。大家一定遇到过安装某些应用程序时,安装程序在执行结束后会要求重新启动计算机,以便实现对正在使用或锁定的相关文件的替换和服务的加载等。其实,安装程序在下次启动时的操作命令一般是不会写入大家常见的Run相关的注册表键值中的,而是通过“PendingFileRenameOperations”这条特殊的注册表自动加载项目来完成。
后门分析:
危险后门的注册表位置如下:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager]
这下面支持一种名为“PendingFileRenameOperations”的注册表值项(图4),但该值项并不是任何时候都存在的,一般由软件的安装程序自动生成,当然也可通过其他途径植入。
如果木马或病毒要想做得更加隐蔽,完全可以在感染系统时临时使用一个极其罕见的文件名和扩展名,以逃避一些杀毒软件对常见敏感文件类型的扫描,然后通过“PendingFileR enameOperations”键值实现自身的文件改名,再配合前面所述的其他自动加载项目实现自动加载,就可露出恶意程序本来的狰狞面目!
二、危险后门的安全防范
1.修改系统默认的外壳(Shell)加载参数
如前所述,系统的外壳默认为“Explorer.exe”,这是极其危险的,要防范也很简单,在注册表编辑器中找到以下位置:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
将下面的“Shell”的键值修改为系统外壳程序的绝对路径,比如“C:\WINDOWS\Explorer.exe”。这样由于Windows XP本身的系统文件保护机制,这个文件一般是不容易被替换和修改的,从而避免了木马程序在System32目录中植入同名的Explorer.exe文件带来的危险。
2.合理设置杀毒软件的扫描选项
杀毒软件对系统的扫描可以有多种方式,为提高扫描速度和降低对系统资源的占用率,不少杀毒软件默认采取的是智能扫描(或称快速扫描等,不同产品说法不一),也即只扫描常见的易被病毒感染的文件类型,这就为恶意程序利用上述各种后门留下了隐患。因此,如果机器的配置允许,或者要对安全要求较高的场合,应当手工修改杀毒软件的扫描选项,让它对所有类型的文件进行扫描和监视,从而发现那些狡猾的入侵者(图5)。
3.巧妙利用注册表权限设置增强安全性
前述的Windows Load、Run、Program等键值的危险性,由于许多安全工具并不对这些项目进行监视和检查,因此这里是一个高危地带。由于[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]这个键项主要用于与旧的Win.ini兼容,因此绝大多数情况下普通用户是用不上这里的键值内容的,我们可以通过设置注册表权限来增强安全性,防止这里的内容被恶意地随便修改。
在注册表编辑器中找到上述键项,右击鼠标,选择快捷菜单中的“权限”命令(图6),在随后的对话框中,分别选择所有的用户,并一一在权限设置中选中“拒绝”即可。
图6 设置注册表权限
4.其他安全措施
知道了上述各种危险后门的位置,我们就可以根据自己的水平能力和操作的方便性采取更多的防范措施,比如有编程能力者可以编写专门的程序对这些高危键值进行监视和自动恢复;一般用户可在系统正常时导出上述相关位置的注册表并保存为备份文件,以便须要时导入恢复;也可将上述注册表键项一一打开后,点击“收藏夹”菜单将它们收藏,日后必要时快速进入这些位置手工检查等。因牵涉的内容较多较杂,此不赘述。