在企业环境中部署 Microsoft Windows 恶意软体移除工具
http://www.microsoft.com/taiwa...A_0503-1.aspx Microsoft Windows 恶意软体移除工具是设计用来与上面所列的系统搭配使用的。未列于清单中的系统 (包括所有版本的内嵌作业系统) 并未经过测试,因此不受支援。简介Microsoft 已经发行 Microsoft Windows 恶意软体移除工具,以协助您移除电脑中特定或普遍的恶意软体。
本文中的资讯只适用于工具的企业部署。强烈建议您检阅下列「Microsoft 知识库」文件,其中包含有关工具及下载位置的一般资讯:
890830 Microsoft Windows 恶意软体移除工具协助移除 Windows Server 2003、Windows XP 或 Windows 2000 电脑中目前常见的特定恶意软体
此工具主要是为了系统上没有安装现有、最新防毒产品的非企业使用者而提供的。不过,企业环境也可以部署此工具,来加强现有的防护,做为深度防御策略的一部份。如果要在企业环境中部署此工具,您可以使用下列一或多个方法:
- SMS 软体套件
- 群组原则电脑的启动指令码
- 群组原则电脑的使用者登入指令码
如需有关如何透过 Windows Update 及「自动更新」部署工具的详细资讯,请按一下下面的文件编号,检视「Microsoft 知识库」中的文件:
890830 Microsoft Windows 恶意软体移除工具协助移除 Windows Server 2003、Windows XP 或 Windows 2000 电脑中目前常见的特定恶意软体
这个工具的目前版本不支援下列部署技术:
- Software Update Services (SUS)
- Windows Update 服务 (WUS)
- Windows Update 类别目录
- 为远端电脑执行此工具
此外,Microsoft Baseline Security Analyzer (MBSA) 侦测不到工具是否在执行。本文包含有关如何检查工具的执行作业,以做为部署一部份的资讯。
程式码范例
这里所提供的指令码及步骤仅做为范例之用。客户必须测试这些范例指令码及案例,并适当地加以修改,才能运用在自己的环境中。您将必须根据环境中的设定,变更 ServerName 及 ShareName 。
下列程式码范例可以执行下列操作:
- 以无讯息模式执行工具
- 撷取传回码并附加至工具的记录档
- 将记录档复制至事先设定的网路共用
- 以执行工具的电脑名称及目前使用者的使用者名称做为记录档名称的开头。您必须依照<初始安装和设定>一节中的指示执行,在共用上设定适当的使用权限。
REM In this example, the script is namedRunMRT.cmd.
REM The Sleep.exe utility is used to delay the execution of the tool when used as a
REM startup script. (See the "Known issues" section for details.)
@echo off
call \\ServerName\ShareName\Sleep.exe 5
Start /wait \\ServerName\ShareName\Windows-KB890830-ENU.exe /q
echo RETURN_CODE: %ERRORLEVEL% >> %windir%\debug\mrt.log
copy %windir%\debug\mrt.log \\ServerName\ShareName\Logs\%computername%_%username%_mrt.log
注意 在这个程式码范例中,ServerName 是伺服器名称的预留位置,而 ShareName 是共用名称的预留位置。
初始安装和设定
本节主要提供给使用启动指令码或登入指令码来部署此工具的系统管理员参考。如果您使用 Systems Management Server (SMS),可以跳至<部署方法>一节。
如果要设定伺服器及共用,请执行下列步骤:
- 在成员伺服器上设定共用。然后,将共用命名为 ShareName。
- 将工具及范例指令码 RunMRT.cmd (如需详细资讯,请参阅<程式码范例>一节) 复制至共用。
- 设定下列共用使用权限和 NTFS 档案系统使用权限:
- 共用使用权限:
- 为管理此共用的使用者新增网域使用者帐户,然后选择 [完全控制]。
- 移除 Everyone 群组。
- 如果您使用电脑启动指令码方法,请授与 Domain Computers 群组「变更」和「读取」的使用权限。
- 如果您使用登入指令码方法,请授与 Authenticated Users 群组「变更」和「读取」的使用权限。
NTFS 使用权限:
- 为管理此共用的使用者新增网域使用者帐户,然后选择 [完全控制]。
- 移除 Everyone 群组 (如果出现在清单中)。
注意 当您移除 Everyone 群组时,如果收到错误讯息,请按一下 [安全性] 索引标签上的 [进阶],然后按一下以清除 [允许从父项继承权限套用到这个物件] 核取方块。
- 如果您使用电脑启动指令码方法,请授与 Domain Computers 群组「读取&执行」、「列出资料夹内容」和「读取」的使用权限。
- 如果您使用登入指令码方法,请授与 Authenticated Users 群组「读取&执行」、「列出资料夹内容」和「读取」的使用权限。
在 ShareName 资料夹下建立一个名为 Logs 的资料夹。在用户端电脑上执行工具之后,这个资料夹会是收集最后记录档的资料夹。
如果要在 Logs 资料夹上设定 NTFS 使用权限,请执行下列步骤:
注意 请勿在这个步骤中变更「共用」使用权限。
- 为管理此共用的使用者新增网域使用者帐户,然后选择 [完全控制]。
- 如果您使用电脑启动指令码方法,请授与 Domain Computers 群组「修改」、「读取&执行」、「列出资料夹内容」、「读取」和「写入」的使用权限。
- 如果您使用登入指令码方法,请授与 Authenticated Users 群组「修改」、「读取&执行」、「列出资料夹内容」、「读取」和「写入」的使用权限。
部署方法
注意 如果要执行这个工具,无论您选择何种部署选项,都必须拥有 Administrator 或 SYSTEM 的使用权限。
使用 SMS 软体套件下列范例提供使用 SMS 2003 的逐步指示,而 SMS 2.0 的步骤,则是类似 SMS 2003 的逐步指示。
- 从套件 Windows-KB890830-ENU.exe /x 解压缩 Mrt.exe 档。
- 使用 ISMIF32.exe,来建立可以启动 Mrt.exe 并撷取传回码的 .bat 档。
范例:
@echo off
Mrt.exe /q
If errorlevel 13 goto error13
If errorlevel 12 goto error12
Goto end
:error13
Ismif32.exe –f MIFFILE –p MIFNAME –d ”text about error 13?Goto end
:error 12
Ismif32.exe –f MIFFILE –p MIFNAME –d “text about error 12?Goto end
:end
如需有关 Ismif32.exe 的详细资讯,请按一下下面的文件编号,检视「Microsoft 知识库」中的文件:
268791 SMS:How a Status Management Information Format (MIF) File Produced by the ISMIF32.exe File Is Processed in SMS 2.0
186415 SMS:Status MIF Creator, Ismif32.exe Is Available
- 在 SMS 2003 主控台中建立套件:
[list=1]开启 [SMS Administrator Console]。
用滑鼠右键按一下 [Packages] 节点,选取 [New],然后按一下 [Packages]。随即会显示 [Package Properties] 对话方块。
在 [General] 索引标签上,为套件命名。
在 [Data Source] 索引标签上,按一下以选取 [This package contains source files] 核取方块。
按一下 [Set],然后选择含有工具的来源目录。
在 [Distribution Settings] 索引标签上,将 [Sending priority] 设定为 [High]。
选取 [Reporting] 索引标签上的 [Use these fields for status MIF matching],然后为 [MIF file name] 及 [Name] 栏位指定名称 ([Version] 和 [Publisher] 为选择性)。
按一下 [OK] 建立套件。
为套件指定发布点 (DP):
在 SMS 2003 主控台的 [Packages] 节点底下,找出新的套件。
展开套件。用滑鼠右键按一下
[Distribution Points],指向 [New],然后按一下
[Distribution Points]。
执行
[New Distribution Points Wizard],并选取现有的发布点。
按一下
[Finish] 结束精灵。
将先前建立的批次档加入至新的套件:
在新套件节点底下,按一下以选取 [Programs] 节点。
用滑鼠右键按一下
[Programs],指向
[New],然后按一下
[Program]。
选取
[General] 索引标签,然后输入有效的名称。
在
[Command line] 中,按一下
[Browse] 选取您建立用来启动 Mrt.exe 的批次档。
将
[Run] 选项变更为
[Hidden]。将
[After] 选项变更为
[No action required]。
按一下
[Requirements] 索引标签,再按一下以选取
[This program can run only on specified client platforms] 选项。
按一下以选取
[All x86 Windows 2000]、
[All x86 Windows Server 2003] 及
[All x86 Windows XP]。
按一下
[Environment] 索引标签,并在
[Program can run:]清单中,按一下以选取
[Whether or not a user is logged]。将执行模式设定为
[Run with administrative rights]。
按一下
[OK] 关闭对话方块。
建立通知,以告知用户端有关程式的讯息:
用滑鼠右键按一下 [Advertisement] 节点,选取 [New],然后按一下 [Advertisement]。
在
[General] 索引标签上,输入通知的名称。在
[Package] 栏位中,选取您先前建立的套件。然后,在
[Program] 栏位中,选取您先前建立的程式。按一下
[Browse],然后选取
[All System] 集合或选取只包含 Microsoft Windows 2000 及更新版本的电脑集合。
在
[Schedule] 索引标签上,如果您希望程式只执行一次,就保留预设的选项。如果要依照排程执行程式,请指定排程时间间隔。
将
[Priority] 设定为
[High]。
按一下
[OK] 建立通知。
使用群组原则电脑的启动指令码这个方法会要求您在设定指令码并套用群组原则之后,重新启动用户端电脑。
- 依照<初始安装和设定>一节中的步骤设定共用。
- 设定启动指令码。如果要执行这项操作,请依照下列步骤执行:
[list=1]用滑鼠右键按一下 [Active Directory 使用者和电脑] MMC 嵌入式管理单元中的网域名称,然后按一下 [内容]。
按一下 [群组原则] 索引标签。
按一下 [新增] 建立新的群组原则物件 (GPO),并将原则命名为 MRT Deployment。
按一下新的原则,然后按一下 [编辑]。
展开 [使用者设定] 中的 [Windows 设定],然后按一下 [指令码]。
按两下 [登入],然后按一下 [新增]。[新增指令码] 对话方块便会出现。
在 [指令码名称] 方块中,输入 \\ServerName\ShareName\RunMRT.cmd。
按一下 [确定],再按一下 [套用]。
重新启动属于此网域的用户端电脑。
关于企业部署的其他资讯检查传回码您可以在部署 (登入或启动) 指令码中检查工具的传回码,以确认执行的结果。如需有关如何执行这项操作的范例,请参阅<程式码范例>一节。
下列清单列出有效的传回码:
0 = 找不到感染
1 = 作业系统环境错误
2 = 未以系统管理员的身分执行
3 = 不是受支援的作业系统
4 = 初始化扫描器时发生错误(请下载新的工具)。
5 = 未使用
6 = 侦测到并移除至少一个感染。没有错误。
7 = 侦测到至少一个感染,并且发生错误。
8 = 侦测到并移除至少一个感染,但是必须手动移除,才能完整移除。
9 = 侦测到并移除至少一个感染,但是必须手动移除,才能完整移除,并且发生错误。
10 = 侦测到并移除至少一个感染,但是必须重新启动,才能完整移除
11 = 侦测到并移除至少一个感染,但是必须重新启动,才能完整移除,并且发生错误
12 = 侦测到并移除至少一个感染,但是必须手动移除,再重新启动,才能完整移除。
13 = 侦测到并移除至少一个感染,但是必须重新开机。没有发生错误。
剖析记录档恶意软体移除工具会将执行结果详细地写入 %windir%\debug\mrt.log 记录档。
注意 此记录档仅提供英文版本。
如果此记录档已经存在,工具就会附加至现有的档案中。您可以使用类似先前范例的命令指令码,来撷取传回码并将档案收集至网路共用。
下列范例为已感染 Sasser.A 病虫的电脑中的 Mrt.log 档:
Microsoft Malicious Software Removal Tool v1.0, January 2005
Started On Fri Dec 06 06:24:16 2002
Found virus:Win32/Sasser.A.worm in process 15244
Found virus:Win32/Sasser.A.worm in file C:\WINNT\system32\avserve.exe
Found virus:Win32/Sasser.A.worm in file C:\WINNT\avserve.exe
!!! System is infected with:Win32/Sasser.A.worm
Terminating process with pid 15244
Done!
Terminating process with pid 15244
Already done.
Removing registry value:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run -> avserve.exe
Done!
Deleting file:C:\WINNT\system32\avserve.exe
Done!
Deleting file:C:\WINNT\avserve.exe
Done!
Removal Tool Results:
Found Win32/Sasser.A.worm and Removed!
Microsoft Malicious Software Removal Tool Finished On Fri Dec 06 06:24:17 2002
记录档包含下列区段:
下列概要说明每个区段:
页首记录档的页首会显示目前工具的名称及版本,以及指示何时执行过工具的时间戳记。类似下列:
Microsoft Malicious Software Removal Tool v1.0, January 2005 Started On Sun Dec 05 15:52:07 2004
详细资料详细资料提供诸如工具在电脑上找到何种恶意软体 (如果有),以及在执行期间曾经出现的任何警告或错误等资讯。
如果没有找到恶意软体,并且执行过程中也没有出现警告或错误,那么详细资料这个部份就会完全空白。
以先前所述受感染电脑中的档案为例,详细资料显示出为了清除感染而从电脑移除的处理序、档案及登录机码:
Found virus:Win32/Sasser.A.worm in process 15244
Found virus:Win32/Sasser.A.worm in file C:\WINNT\system32\avserve.exe
Found virus:Win32/Sasser.A.worm in file C:\WINNT\avserve.exe
!!! System is infected with:Win32/Sasser.A.worm
Terminating process with pid 15244
Done!
Terminating process with pid 15244
Already done.
Removing registry value:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run -> avserve.exe
Done!
Deleting file:C:\WINNT\system32\avserve.exe
Done!
Deleting file:C:\WINNT\avserve.exe
Done!
如果清理电脑期间发生错误,该项资讯也会写入记录档的详细资料区段。
下列文字撷取自含有错误的记录档中的详细资料区段:
Terminating process with pid 13152
Failed to terminate the process!
0x00000102:The wait operation timed out.
Terminating process with pid 13152
Already done.
Deleting file:C:\WINNT\system32\ashxcvb.exe
Failed - Scheduled to be removed after reboot!
摘要记录档的摘要区段提供执行工具的整体结果,其中包括已经从电脑移除的恶意软体 (如果有) 清单,以及任何必要的动作,例如重新启动电脑,或执行其他手动移除步骤。
下列为记录档中摘要区段的范例:
Removal Tool Results:
Found Win32/Sasser.A.worm and Removed!
如果电脑上找不到恶意软体,摘要区段会类似下列:
Removal Tool Results:
No infection found.
下列提供发生错误时,记录档中摘要区段的范例。系统必须重新启动,才能完成清理程序。
Removal Tool Results:
Found Win32/HLLW.Gaobot.ZF, partially removed.
For cleaning Win32/HLLW.Gaobot.ZF, the system need to be restarted!
页尾记录档会以页尾做为结束,而页尾部份会包含完成执行的日期及时间。
下列为页尾范例:
Microsoft Malicious Software Removal Tool Finished On Fri Dec 06 06:24:17 2002
就像先前所提到的,如果工具执行一次以上,记录档案就会跟着附加。因此,执行数次之后,记录档将会包括一系列的项目,并且每个项目都包括前面所述的四个区段。
已知问题当您使用启动指令码执行工具时,可能会在 Mrt.log 档案中看到类似下列的错误。PID 数字将有所不同。
Error:MemScanGetImagePathFromPid(pid:552) failed.
(错误:MemScanGetImagePathFromPid(PID:552) 失败)。
0x00000005:拒绝存取。
当处理序刚启动或最近曾经停止回应时,就会发生这个错误。唯一的影响就是 PID 所委派的处理序尚未经过扫描。
如果要解决这个问题,请使用 Sleep.exe Platform SDK 公用程式,使启动指令码在执行工具之前延迟五秒 (请参阅上列的范例指令码)。此延迟让电脑上的处理序可以在开机之后稳定下来。
常见问题集问 1:
当我测试用来部署工具的启动或登入指令码时,并未在之前设定的网路共用中看到所要复制的记录档。为什么?
答 1:
这个问题通常是因为使用权限而造成的。例如,执行移除工具的帐户并未拥有共用的「写入」使用权限。如果要疑难排解这个问题,请先检查登录机码,确定工具已经执行过,或者您可以寻找用户端电脑上是否存有记录档。如果工具已顺利执行,您可以测试简单的指令码,确认在与执行移除工具相同的安全性内容下执行指令码时,指令码可以写入网路共用。
问 2:
如何检查移除工具是否已经在用户端电脑上执行?
答 2:
您可以检查下列登录机码,来确认工具的执行。请注意,您可以执行这样的检查,做为启动或登入指令码的一部份。这可以避免执行工具多次。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RemovalTools\MRT 值为 Version。
每次执行工具时,无论执行的结果为何,工具都会将 GUID 记录至登录中,以表示曾经执行过工具。下列表格列出每个发行版本相对应的 GUID。
问 3:
如何防止透过自动更新传送此更新程式至我的电脑?
答 3:
您可以设定 Q2 中所述的登录机码,如此,工具将不会出现在 Windows Update 或「自动更新」。
问 4:
如何停用工具的感染报告元件,使报告不会传回 Microsoft?
答 4:
系统管理员可以藉由新增下列登录机码值至电脑,来选择是否停用工具的感染报告元件。如果已经设定这个登录机码值,工具将不会向 Microsoft 回报感染资讯。
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MRT\DontReportInfectionInformation 值为 1。请注意,这个值的类型应该是 REG_DWORD。
如果下列登录机码值已经存在,这个功能就会自动停用:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\WUServer这个登录机码值表示电脑是连线至 SUS 伺服器。