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

Svchost.exe 進程深度解析:從服務宿主到木馬偽裝識別

編輯:Windows XP 系統介紹

在 NT 核心 Windows 系列中,Svchost.exe 是極關鍵的進程。眾多病毒、木馬利用其特性駐留系統,深入了解其運作機制對安全防護至關重要。本文詳細剖析 Svchost 功能、服務載入原理、實例分析與木馬偽裝偵測清除實戰。

Svchost 進程概述

微軟定義:Svchost.exe 是從動態連結庫(DLL)執行服務的通用宿主進程。檔案位於 %SystemRoot%\System32。開機時檢查登錄表服務區段,建構需載入服務清單。可同時運行多個實例,每個會話包含一組服務,依啟動方式與位置區隔,便於控管與除錯。

Svchost 群組由登錄表 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost] 識別。每個值代表獨立 Svchost 群組,對應任務管理員中的單一實例。鍵值型別為 REG_MULTI_SZ,包含該群組運行的服務名稱(圖1)。


圖1 登錄表中的 Svchost 群組定義

本質上,Svchost 僅作服務宿主,不具體功能。需以 Svchost 啟動 DLL 形式服務時,該 DLL 的載入器指向 Svchost,啟動時由 Svchost 呼叫 DLL 實現。使用哪個 DLL 由服務登錄項下 Parameters 子項的 ServiceDll 鍵值決定,該 DLL 必須匯出 ServiceMain() 函式支援服務任務處理。

提示:不同 Windows 版本 Svchost 數量不同。Win 2000 通常 2 個,XP 則 4 個以上。

Svchost 進程實例講解

查看 Svchost 內運行服務清單:XP 命令提示字元輸入 Tasklist /svc(Win 2000 用 Tlist -s)。可見 Svchost 啟動 RpcSs(RPC)、Dhcp、Netman 等核心服務(圖2)。


圖2 Svchost 服務清單

以 RpcSs 為例:登錄表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters] 中 ServiceDll = %SystemRoot%\system32\rpcss.dll。服務管理單元中 RpcSs 可執行檔路徑為 C:\Windows\system32\svchost -k rpcss,證明其依賴 Svchost 啟動,-k rpcss 表示屬於 Rpcss 服務群組。


圖3 Svchost 進程模組資訊

Svchost 木馬淺析與清除實戰

木馬常利用 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost] 實現自動載入,手法包括:

  • 新增群組並加入服務名;
  • 在既有群組加入服務名或利用未安裝服務;
  • 修改既有服務的 ServiceDll 指向自身 DLL。

以 PortLess BackDoor 為例,偵測清除步驟(XP 環境):

  1. 用「進程間諜」等工具檢視 Svchost 模組資訊(圖3),對比基準發現可疑 SvchostDLL.dll。
  2. 服務清單中出現新服務「Intranet Services」(顯示名),服務名 Iprip,由 Svchost 啟動(-k netsvcs)。Win 2000 中正規 Iprip 顯示名為「RIP Listener」。
  3. 登錄表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters] 中 ServiceDll 指向後門 DLL 路徑。
  4. 清除:服務管理單元停止「Intranet Services」→ 刪除登錄表 IPRIP 項 → 重開機 → 依 ServiceDll 路徑刪除後門主程式。
重要提醒:修改登錄表前務必備份,以便出錯時還原。
Copyright © Windows教程網 All Rights Reserved