絕大多數病毒/木馬透過修改註冊表 `Run`/`RunOnce` 鍵值實現開機自啟。與其事後查殺,不如預先剝奪寫入權限,從根源斷絕持久化路徑。
核心鍵值位置
- 機器級 (需管理員):
- `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`
- `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce`
- `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices`
- `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce`
- 使用者級:
- `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`
- `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce`
權限鎖定操作 (以 HKLM\Run 為例)
- 執行 `regedt32` (Win2K/XP) 或 `regedit` (Vista+) 開啟註冊表編輯器。
- 定位目標鍵值 → 右鍵「權限」。
- 選 `Everyone` / `Users` 群組 → 勾選「讀取」允許 → 取消勾選「完全控制」、「寫入」。
- 確保 `Administrators`、`SYSTEM`、`TrustedInstaller` 保有完全控制 (供合法軟體安裝/更新)。
- 點選「進階」→ 勾選「將繼承的權限項目傳播給子物件」→ 確定套用。
效果驗證
- 嘗試手動在 `Run` 新增字串值 → 應提示「拒絕存取」。
- 安裝合法軟體 (需寫入 Run) 時,以管理員身分執行安裝程式即可繞過 (UAC 提權)。
- 惡意程式若無管理員權限,寫入失敗,持久化中斷。
擴展:全方位啟動項鎖定矩陣
| 啟動向量 | 位置/機制 | 鎖定/監控手段 |
| 註冊表 Run/RunOnce | HKLM/HKCU 4組鍵值 | ACL 鎖定寫入、WinPatrol/Autoruns 監控異動 |
| 啟動資料夾 | `All Users\Start Menu\Programs\Startup` `User\Start Menu\Programs\Startup` | NTFS 權限移除 Users 寫入、腳本定期掃描 |
| 服務 | SCM (services.exe) | 服務權限鎖定、授權簽名驅動強制 |
| 排程任務 | Task Scheduler (1.0/2.0) | GPO 禁止非管理員建立、事件日誌 4698 監控 |
| WMI 事件訂閱 | `__EventFilter`/`__FilterToConsumerBinding` | WMIC 定期枚舉、EDR 行為監控 |
| 瀏覽器擴充/Shell 延伸 | 註冊表 CLSID、AppInit_DLLs | AppLocker/WDAC 簽名強制、Autoruns 定期審計 |
哲學總結
「防患於未然」非空談。鎖死持久化入口,讓攻擊者「進得來、留不住、偷不走」,將戰場從「事後清理」前移至「事前阻斷」,才是資安投資報酬率最高的策略。
copyright ©
萬盛學電腦網 all rights reserved