Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

深度解析 Svchost.exe:服務宿主機制、實例查看與木馬偵測

編輯:XP 系統基礎知識

Svchost 進程概述

Svchost.exe 位於 %SystemRoot%\System32,是從動態連結庫(DLL)執行服務的通用宿主進程。系統啟動時,它檢查註冊表服務項,建立需載入的服務清單。多個 Svchost 實例可同時運行,每個會話包含一組服務,便於控制與除錯。Svchost 組別由註冊表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost 識別,每個值代表一個獨立組別,在工作管理員中顯示為獨立進程。

Svchost 本身不實作功能,僅作為 DLL 服務的載體。啟動某服務時,由註冊表 Parameters\ServiceDll 指定該服務的 DLL 路徑,該 DLL 必須匯出 ServiceMain() 函式。Windows 2000 通常有 2 個 Svchost,XP 則有 4 個以上。

查看 Svchost 內運行的服務

XP 下在命令提示字元輸入 Tasklist /svc(2000 用 Tlist -s)即可列出每個 Svchost 實例包含的服務。例如:RpcSs(遠端程序呼叫)、Dhcp(DHCP 用戶端)、Netman(網路連線)等。
Svchost 服務列表

以 RpcSs 為例說明機制

  1. 註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters\ServiceDll 值為 %SystemRoot%\system32\rpcss.dll。
  2. 服務管理單元中「Remote Procedure Call (RPC)」屬性顯示可執行檔路徑為 C:\Windows\system32\svchost.exe -k rpcss,-k rpcss 表示屬於 rpcss 服務組。

Svchost 木馬淺析與清除

惡意程式常利用 Svchost 機制自動載入,手法包括:新增組別、在現有組加入服務、修改既有服務的 ServiceDll 指向惡意 DLL。典型案例 PortLess BackDoor 即利用此法。

偵測與清除步驟(以 XP 為例):

  1. 用「進程間諜」等工具檢視 Svchost 模組資訊,比對發現可疑 DLL(如 SvchostDLL.dll)。
    Svchost 模組資訊
  2. 服務清單中出現新服務「Intranet Services」(顯示名),服務名 Iprip,啟動參數 -k netsvcs。
  3. 註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\ServiceDll 指向後門 DLL 路徑。
  4. 服務管理單元停用該服務,刪除註冊表 IPRIP 項,重開機後刪除 DLL 檔案。
提醒:修改註冊表前請先備份,以便出錯時還原。
Copyright © Windows教程網 All Rights Reserved