木馬技術演進至新一代「嵌入式木馬」(DLL 型注入式),運用動態嵌入技術(Hook、API、遠程線程),多數採用遠程線程將自身掛載至正常系統進程,清除難度大。
DLL 代碼與 EXE 幾乎相同,僅介面與啟動模式不同。可視為缺少 main 入口的 EXE,導出 API 函數模組。DLL 木馬將木馬功能代碼加特殊代碼編譯為 DLL,導出相關 API,外表普通但攜帶完整木馬功能。標準入口 DllMain 包含運行代碼或指向執行模組。透過在目標進程創建遠程線程(RemoteThread)進入其記憶體空間(稱「注入」),載體命令遠程線程加載 DLL,木馬即掛載執行,無新進程產生。
駭客常注入關鍵進程(iexplore.exe、explorer.exe)達到隱蔽與持久化。黑洞、灰鴿子等經典木馬支援 EXE/DLL 雙模式生成,DLL 穩定性極高,各大廠商列為重點查殺對象。
原理:安裝系統與必要應用後,記錄 system32 目錄下所有 EXE/DLL 文件名。異常時重新記錄,對比差異發現新增/變更文件。
cmd → cd system32 → dir *.exe > exe.txt & dir *.dll > dll.txtdir *.exe > exe1.txt & dir *.dll > dll1.txtfc exe.txt exe1.txt > change.txt & fc dll.txt dll1.txt > change.txtchange.txt 將列出變化/新增的 EXE/DLL。檢視建立時間、版本、是否壓縮判斷是否被 DLL 木馬修改。ps.exe /a /m > usedll.txt 導出當前所有調用的 DLL,再 fc dll.txt usedll.txt > changenow.txt 比對,大幅縮小搜尋範圍。exe.txt: 2005-12-04 11:59a 26,772,480 dx81setup.exe 2005-12-04 11:59a 473,600 g5setup解碼.exe dll.txt: 2005-03-31 02:52a 36,924 php5apache.dll 2005-03-31 02:52a 36,925 php5apache2.dll 2005-03-31 02:52a 53,314 php5apache_hooks.dll
得到 exe1.txt、dll1.txt。
change.txtchangedll.txt 新增: fdftk.dll, fribidi.dll, gds32.dll changeexe.txt 新增: mpsetup.exe, RealPlayer10-5GOLD_cn.EXE, Winamp278cn_DFX_Blue.EXE
非自行安裝者即為可疑,刪除即可。
查殺嵌入式木馬最有效辦法即文件對比法。結合上述縮小範圍技巧與自身想像力,可精準查殺,讓嵌入式木馬無所遁形。