我的机器被一个木马攻击了,该木马表现为 netsvcs svchost 进程中的一项服务。可以使用 Process Explorer 识别此进程,即“svchost -k netsvcs”。
我的机器被感染的症状有:
-
1. 使用 ethereal,我可以看到从我的机器到不同网站(例如 ESPN 和在线音乐流媒体)的不间断 HTTP 流量。
-
2. 通常在 10 到 15 分钟内,Dr. Watson 会弹出一个对话框,表明通用主机进程已失败。
-
3. Process Explorer 显示进程“svchost -k netsvcs”占用了 100% 的 CPU。
-
4. C:\Documents and Settings\NetworkService\Local Settings\Temporary Internet Files\Content.IE5 中的文件已被进程“svchost -k netsvcs”锁定。
这是我为查明哪个服务才是罪魁祸首所采取的措施。
可以从以下注册表位置获取 Windows 将在 netsvcs svchost 容器中启动时运行的服务列表:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost\netsvcs。MULTI_REG_SZ 值中的每个字符串都是位于以下位置的服务的名称:HKLM\SYSTEM\CurrentControlSet\服务。
对于 netsvcs 中列出的每个服务,我在 SvcHost 中创建了一个不同的条目,然后更新了服务的 ImagePath 以指示该服务现在应该在哪个 svchost 下运行。
举个例子,为了在它自己的 svchost 下运行服务 AppMgmt,我们可以执行以下操作:
-
1. 在 SvcHost 下创建一个名为“appmgmt”且值为“AppMgmt”的新多字符串值。
-
2. 在 SvcHost 下创建一个名为“appmgmt”的新项,其值与“netsvcs”下的值相同(通常为 REG_DWORD:AuthenticationCapabilities=12320 和 REG_DWORD:CoInitializeSecurityParam=1)。
-
3. 在 CurrentControl\Services\AppMgmt 下将 ImagePath 修改为 %SystemRoot%\system32\svchost.exe -k appmgmt。
我对在 netsvcs 下运行的所有三十多个服务执行了上述过程。这使我能够准确查明哪个服务导致了上述症状。了解服务后,使用 Process Explorer 可以轻松确定服务锁定和加载了哪些文件以及使用了哪些注册表项。有了所有这些数据,从我的机器中删除该服务就很简单了。
我希望这篇文章对受到感染的 svchost 进程影响的其他人有所帮助。