我是如何分析svchost高CPU利用率问题的

use*_*842 8 windows virus cpu services trojan

我的机器受到了木马的攻击,该木马在 netsvcs svchost 进程中表现为服务。可以使用进程资源管理器将此进程标识为“svchost -k netsvcs”。

我的机器被感染的症状是:

    1. 使用 ethereal 我可以看到从我的机器到不同网站(如 ESPN 和在线音乐流媒体)的不间断 HTTP 流量。
    2. 通常在 10 到 15 分钟内,Watson 博士会弹出一个对话框,指示通用主机进程失败。
    3. 进程资源管理器显示进程“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\Services

对于 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 来确定服务锁定和加载的文件以及它使用的注册表项很容易。拥有所有这些数据,从我的 mmachine 中删除服务是一个简单的步骤。

我希望这篇文章对受感染 svchost 进程影响的其他人有所帮助。