【原创】一次真实的自虐经历--关于组策略“软件限制策略”规则的编辑
【前言】大家知道,用好WINDOWS自带组策略中的“软件限制策略”功能,可以防止一些恶意程序自动运行,用来对付U盘autorun病毒是很实用的。但是,如果使用不当,将造成系统出现比中毒还要严重的后果,下面就以我个人亲身经历来说说吧。
【故障和解决】今天中午突发奇想:用“软件限制策略”来禁止所有驱动器根目录下的任意类型文件,会怎样呢?说干就干。
依次完成了以下设置:
1、开始--运行--输入GPEDIT.MSC--回车,进入组策略编辑器;
2、按“计算机配置--WINDOWS设置--安全设置--软件限制策略--其他规则”依次展开,双击“其它规则”,在右侧窗格右键,选择“新路径规则”输入“?:\*.*”(不包括外面的双括号),“安全级别”选择“不允许的”,然后单击“确定”;
3、退出组策略编辑器。
结果在第2步输入字符串时,犯了严重的错误,实际输入的是“?:\*”,这就意味着任何驱动器下任何目录下的任何类型的文件都被阻止运行,倒了。更要命的是,完成设置后,已经无法进入组策略编辑器把规则改回来了(进入组策略编辑器必须调用的可执行文件C:\WINDOWS\SYSTEM32\MMC.exe被阻止运行),崩溃了。
接下来,试探性地“开始--运行--输入regedit--回车”,发现居然可以进入注册表编辑器,还好……
进入注册表编辑器后,编辑--查找--输入“?:\*”--回车,在[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{0F03ADC9-F209-42B0-A9DD-82A72236082C}Machine\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx}]这个注册表子项的项值中包含一个【ItemData】的值项,其数据为“?:\*”。二话不说,直接将[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{0F03ADC9-F209-42B0-A9DD-82A72236082C}Machine\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx}]这个注册表子项删除,之后重启电脑。
你也许会说,系统被修复了?错了!重启后开机无法进入系统了!症状是:我的机只有超级管理员这一个管理员账户,以前开机时都是直接在“欢迎使用”后进入桌面,但我本此重启后,显示“欢迎使用”后直接进入用户账户选择界面(只有一个超级管理员账户可供选择),且单击该账户后提示“正在加载设置”后继续回到这个界面。显然,c:\windows\system32\userinit.exe这个文件被之前设置的组策略规则阻止运行了,巨囧中……
静下心来认真想了想,分析问题可能出在这里:在搜索数据包含“?:\*”的注册表项时,只看到了在当前用户账户的设置(HKEY_CURRENT_USER),而没有注意本机账户(HKEY_LOCAL_MACHINE)注册表项设置有没有,导致重启后,软件限制策略规则继续有效,并成功地阻止了c:\windows\system32\userinit.exe这个文件的运行,造成无法进入系统。
没办法了,手边没有操作系统安装光盘和PE光盘,只能看运气了。直接点计算机账户选择界面左下角的“关闭计算机”,重启电脑尝试进入安全模式,发现可行……
进入安全模式后,直接进入组策略编辑器,删除了“其它规则”中“?:\*”这条规则。之后关闭组策略编辑器,重启电脑后,恢复正常。
【思考和心得】
1、个人在猜想,其实在不当规则设置后,进入注册表编辑器,将[HKEY_CURRENT_USER]、[HKEY_LOCAL_MACHINE]两个根键下含有“?:\*”数据的相关注册表项删除,刷新或重启后计算机应该也可以恢复(之后又查了查,注册表删除法失败的原因可能是没有删除[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers]下的一个含有“?:\*”数据的注册表项所导致)。是否我的判断准确,也不想再折腾了,吼吼……
2、安全模式相当有用,遇到难缠问题可以考虑利用……
3、由我的实例来看,组策略“软件限制策略”也留了活口,比如俺的注册表编辑器进程c:\windows\regedit.exe还是可以运行的(或者是留了从开始菜单中进入注册表编辑器的活口,没验证到底是哪个),以及可以从安全模式突破规则限制强行登录系统的活口。哈哈,不错吧……
用户系统信息:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)