事件回顧:為防 RPC 漏洞攻擊關閉服務,卻釀成連鎖故障
管理員為阻擋 RPC 漏洞(如 Blaster/Nachi 蠕蟲)攻擊,透過「服務管理員 → RPC → 登入分頁 → 禁用硬體設定檔」關閉 RPC 服務。雖攻擊停止,但引發嚴重副作用:
• 開機極慢 • 工作列不顯示最小化視窗 • 無法複製貼上 • 無法開啟第二層網頁 • RPC 服務屬性頁面消失
依賴 RPC 的服務(Messenger、Windows Installer、Windows Time、Event Log 等)全面失效。
標準恢復三法(適用於「啟動類型被改為停用」情境)
方法一:註冊表修改
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs
Start 值:4(停用) → 2(自動)
重開機生效。
方法二:SC 命令列
sc config RpcSs start= auto
# 回應:[SC] ChangeServiceConfig SUCCESS
方法三:故障修復主控台(Win2003 範例)
- 安裝光碟開機,按 `R` 進入修復主控台。
- 輸入:`enable RpcSs service_auto_start`
- 輸入 `exit` 重開機。
實戰踩坑:上述三法全失效,根因在「硬體設定檔」而非「啟動類型」
管理員關閉方式是**禁用硬體設定檔**,而非修改啟動類型。註冊表中 `RpcSs\Start` 仍為 `2`(自動),故標準三法無效。
深度修復:註冊表比對定位殘留鍵值
- 匯出禁用前後兩份 `HKLM\SYSTEM` 完整備份。
- 轉為文字檔,使用 Word「比較與合併文件」功能找出差異。
- 發現禁用後新增兩個關鍵分支:
`HKLM\SYSTEM\CurrentControlSet\HardwareProfiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_RPCSS`
`HKLM\SYSTEM\CurrentControlSet\HardwareProfiles\Current\System\CurrentControlSet\Enum\ROOT\LEGACY_RPCSS`
- 刪除第一個分支(0001)即可恢復 RPC 服務。第二個為符號連結,隨之消失。
- 重開機,RPC 服務正常啟動,所有依賴服務恢復運作。
核心教訓與預防建議
- RPC 為系統核心服務,嚴禁停用。正確防禦:安裝補丁(MS03-026/MS03-039)、啟用防火牆封鎖 TCP 135/445、部署 IPS/EDR。
- 服務管理員「登入分頁」的硬體設定檔禁用功能極具破壞性**,非專家勿動。
- 變更前必備份註冊表**(`regedit` → 匯出),支援快速回滾。
- 建立「服務依賴關係圖」**,變更前評估衝擊範圍(RPC 依賴服務超過 20 項)。
結語
一次為防蠕蟲關閉 RPC,導致系統半癱瘓、標準恢復失效、需深入註冊表手術修復。安全加固必須精準:修補漏洞、封鎖埠口、最小權限,而非犧牲核心服務。 此案例為所有系統管理員敲響警鐘:動核心服務前,三思而後行。