木馬為達持久化,會隱藏蹤跡並掛載於多處自動啟動點。掌握其隱藏手法與檢查清除流程,才能徹底根除。
木馬常見隱藏手法
- 任務列隱身:視窗程式設 `Visible=False`、`ShowInTaskbar=False`。
- 任務管理器偽裝:註冊為**系統服務** (Services),進程名偽裝成系統元件 (如 `svchost.exe`、`lsass.exe` 拼字變體)。
- 自動掛載點 (全盤):
① 啟動資料夾 (Start Menu → Programs → Startup)
② `win.ini` : `[Windows] run=` / `load=`
③ `system.ini` : `[Boot] shell=explorer.exe <惡意程式>` (正確應為 `explorer.exe`)
④ 登錄檔 `Run` / `RunOnce` / `RunServices` / `RunServicesOnce` (HKLM/HKCU)
⑤ 計畫任務、WMI 事件訂閱、COM 劫持、瀏覽器擴充、Shell 延遲載入等新式持久化。
逐一排查自動啟動點
1. win.ini
開啟 `%SystemRoot%\win.ini`,檢查 `[Windows]` 區段 `run=`、`load=` 後是否有陌生路徑/檔名。注意偽裝:`command.exe` (正為 `cmd.exe`)、`explore.exe` (漏掉 r)。
2. system.ini
開啟 `%SystemRoot%\system.ini`,檢查 `[Boot] shell=` 值。標準為 `shell=explorer.exe`。若為 `shell=explorer.exe evil.exe` → `evil.exe` 為木馬。
3. 登錄檔 Run 機碼 (核心重災區)
重點檢查:
`HKLM\Software\Microsoft\Windows\CurrentVersion\Run`
`HKCU\Software\Microsoft\Windows\CurrentVersion\Run`
`HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce`
`HKU\\Software\Microsoft\Windows\CurrentVersion\Run`
查看鍵值名稱與路徑,**對照白名單**,陌生 `.exe`/`.bat`/`.vbs`/`.scr` 極度可疑。
**偽裝技巧**:`AcidBattery v1.0` 將 `Explorer` 鍵值改為 `C:\WINDOWS\expiorer.exe` (i↔l 視覺欺騙)。
4. 服務管理器 (services.msc)
檢查非標準服務、描述模糊、路徑指向非系統目錄、啟動類型為「自動」的服務。木馬常註冊隨機服務名。
查殺標準流程
- 立即斷網:拔網路線/關無線,阻斷 C&C 通訊與橫向擴散。
- 清理啟動項:
- `win.ini` : `run=`、`load=` 清空。
- `system.ini` : `shell=explorer.exe` 恢復標準。
- 登錄檔 Run/RunOnce 等機碼:刪除惡意鍵值 (先記錄檔名路徑)。
- 處理頑固自我修復木馬 (如 BladeRunner):
- 記錄檔名與目錄。
- 重開機進入 **安全模式 (命令提示字元)** 或 DOS 環境。
- 刪除惡意檔案本體。
- 回正常模式,清理殘留登錄鍵值。
- 全盤掃毒:更新防毒軟體病毒碼,完整掃描 (含壓縮檔、啟動區、Rootkit 掃描)。
- 驗證系統完整性:`sfc /scannow` 修復系統檔案;檢查關鍵登錄區 (Shell、Userinit、AppInit_DLLs) 是否正常。
- 修改所有帳密、啟用 2FA:假設帳密已外洩。
工具推薦
- Autoruns (Sysinternals):最全面的自動啟動項掃描器,高亮顯示無簽章/可疑項,一鍵停用/刪除。
- Process Explorer:進程樹、DLL 載入、TCP 連線、句柄全視圖,替代工作管理員。
- GMER / TDSSKiller:專門掃描 Rootkit/驅動級木馬。
- Malwarebytes / HitmanPro:第二意見掃描,補足傳統防毒盲區。
木馬查殺是系統性工程,**斷網 → 斷持久化 → 除本體 → 驗完整 → 換帳密 → 監控**,缺一不可。