木馬種類繁多,部分極難清除。本文深入分析木馬運作機制,提供徹底查殺方案。
木馬由控制端與伺服端組成。入侵者必須將伺服端傳送給受害者執行。伺服端執行後會自我複製至系統目錄,並將啟動代碼寫入「啟動項」,實現開機自動執行,隨後隱蔽開放埠口等待連線。
Windows 提供多處啟動項:
Run、RunServices(兩處)。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs 及 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run。木馬不會放過任何入口,常在啟動項發現陌生程式名。需熟悉自身正常啟動項,才能判別異常。
Windows 搜尋無路徑檔案時遵循「由外而內」規則(根目錄 → 系統目錄)。若同名檔案存在於 C:\ 與 C:\Windows,系統會執行前者。木馬可將自身命名為系統必載檔案(如 internat.exe)並置於較淺層目錄,達成偽裝啟動。
現象:刪除木馬檔與啟動項後木馬復活,甚至導致所有 EXE 無法執行。原因:木馬修改 HKEY_CLASSES_ROOT\exefile\shell\open\command 將 EXE 開啟方式指向木馬程式,使其長駐記憶體並自我修復。刪除木馬後,系統找不到開啟程式導致 EXE 全掛。
exefile\shell\open\command 恢復為 "%1" %*。Explorer.exe 改名,REGEDIT.EXE 改為 Explorer.exe,重啟進入註冊表修復後再還原。REGEDIT 修復;XP 甚至可在「開啟方式」瀏覽至 CMD.EXE 啟動命令提示字元修復。掌握啟動項與檔案關聯機制,木馬無所遁形。