案例背景
同事新裝機器,點擊 QQ 訊息中「免費得 Q 幣」連結 → IE 載入掛馬頁面 → 中毒。金山 QQ 專殺工具檢測到記憶體木馬 Win32.Troj.QQMydj2005dl.125440,但「殺一下 → Shell 重啟 → QQ 依然發廣告」,循環無法根治。
溯源分析:掛馬頁面技術鏈
- 主頁面內嵌
<iframe src="https://www.joyiex.com/dq.htm">。
dq.htm 內含 <object data="dq.asp">。
dq.asp 利用 **IE iFrame 緩衝區溢位漏洞**(MS04-011 類)構造惡意內容,**無需用戶互動**,未打補丁的 IE 直接執行任意代碼下載木馬。
- 木馬修改 IE 首頁/搜尋頁、禁用 Regedit、植入啟動項。
手動清除全過程
階段 1:搶回控制權
- 下載「3721 IE 修復」還原 IE 設定。
- 導入解鎖 Regedit 的 .reg 檔案,恢復註冊表編輯權限。
- 檢查
Run 鍵值無異常 → 病毒不在常規啟動項。
階段 2:定位惡意進程
- 金山專殺顯示惡意進程 PID 屬於
explorer.exe(Shell 進程)。
- 推測:病毒透過 **DLL 注入/APC 執行緒** 寄生在 Explorer 內,進程列表僅顯示宿主進程。
階段 3:鎖定病毒實體檔案
- 金山專殺掃描 C 槽,提示發現病毒但未列出檔名。
- 多次掃描觀察,發現
msapi.dll、msapi.exe 為感染時間產生。
.exe 可刪除但**秒級重生**;.dll 無法刪除(被進程鎖定)。
- 結論:記憶體中以 **DLL 形式駐留**,
.exe 只是載入器/備份。
階段 4:找到持久化點
- 註冊表搜尋
msapi → 發現於 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell:
Shell = explorer.exe C:\path\msapi.exe
- 刪除鍵值 → 秒級自動恢復 → **記憶體駐留代碼在監控並修復註冊表**。
階段 5:核心突破——替換法清除記憶體殘留
- 將
notepad.exe 複製並重命名為 msapi.exe,覆蓋病毒 .exe。
- 重啟電腦 → 記憶體載入的是「記事本」而非病毒代碼 → **病毒 DLL 失去載入器,卸載/無法重注入**。
- 此時可正常刪除
msapi.dll、註冊表 Shell 鍵值、其他殘留檔案。
關鍵經驗總結
- 啟動項不只在 Run 鍵值:Winlogon Shell、服務、排程、IFEO、WMI、啟動資料夾、瀏覽器擴充……
- 進程名 = explorer.exe 不代表乾淨:DLL 注入、執行緒劫持、APC 排程都能讓惡意代碼在合法進程內運行。
- 備份註冊表先於任何操作:作者因未備份導致系統不穩,教訓深刻。
- 替換法(二進位劫持):用無害同名程式覆蓋病毒載入器,重啟後惡意代碼失去宿主,是清除「無法刪除的被鎖定檔案」的實戰奇招。
- 分類判斷:此樣本屬**後門程式**(Backdoor),具備鍵盤記錄、下載執行、自我保護、監控註冊表修復能力。
給讀者的建議
- 遇到專殺工具「殺不斷、重啟 Shell」循環,**立即轉向手動分析**,勿反覆無效掃描。
- 善用
Process Explorer(查 DLL 載入)、Autoruns(全啟動項)、GMER/RootkitRevealer(Rootkit 掃描)。
- **修補 IE 漏洞是根本**;若環境不允許打補丁,部署「主動防禦/HIPS」攔截緩衝區溢位利用代碼執行。