實例講述映像劫持IFEO技術
大家對于映像劫持(IFEO)應該都不陌生,從2007年開始,眾多病毒木馬就利用映像劫持關閉殺毒軟件,傳播自身。
所謂的映像劫持IFEO就是Image File Execution Options(其實應該稱為 Image Hijack)。它位于注冊表的
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options |
IFEO的本意是為一些在默認系統環境中運行時可能引發錯誤的程序執行體提供特殊的環境設定。由于這個項主要是用來調試程序用的,對一般用戶意義不大。默認是只有管理員和Local system有權讀寫修改。
當一個可執行程序位于IFEO的控制中時,它的內存分配則根據該程序的參數來設定,而WindowsNT架構的系統能通過這個注冊表項使用與可執行程序文件名匹配的項目作為程序載入時的控制依據,最終得以設定一個程序的堆管理機制和一些輔助機制等。出于簡化原因,IFEO使用忽略路徑的方式來匹配它所要控制的程序文件名,所以程序無論放在哪個路徑,只要名字沒有變化,它就運行出問題。
映像劫持IFEO實例演示
這里我們用一個實際例子,來演示一下映像劫持。
點擊“開始”-“運行”輸入“regedit”命令,打開注冊表編輯器,展開到:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image |
然后選擇Image File Execution Options,右鍵點擊新建一個項,把這個項(默認在最后面)命名為QQ.exe。
望文知意,這次是要用QQ來做試驗。選中QQ.exe這個項,此時右邊默認是空白的。點擊鼠標右鍵,新建一個“字串符”,然后改名為“Debugger”最后一步,雙擊該鍵,修改數據數值(其實就是路徑),這里是修改為Windows系統“記事本”程序的路徑
C:\WINNT\system32\notepad.exe |
注:“C:”是系統盤,如果你的系統安裝在D盤則改為“D:”(不包括雙引號)。這里使用的操作系統是Windows2000,如果你的系統不是Windows2000或WindowsNT的話,把WINNT改成Windows,類似情況同理處理。
![]() |
好了,實驗下,看看效果。點擊QQ.exe,看出現了什么
![]() |
QQ主程序QQ.exe被記事本“劫持”了,記事本直接按照.txt文檔格式打開了QQ.exe程序。
回到注冊表,刪除相應鍵,一切又恢復了正常,熟悉的QQ界面回來了。
![]() |
同理,病毒等也可以利用這樣的方法,把殺毒軟件、安全工具等名字再進行重定向,指向病毒路徑。所以,如果你把病毒清理掉后,重定向項沒有清理的話,由于IFEO的作用,沒被損壞的程序一樣運行不了!
映像劫持終極利用——讓病毒迷失自我
同上面的道理一樣,如果我們把病毒程序給重定向了,病毒也就變得“找不到北”無法正常運行了。
WindowsRegistryEditorVersion5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ |
將上面的代碼保存為后綴.reg的文件,雙擊執行(這里以金豬病毒和威金病毒為例),這樣即使這些病毒在系統啟動項里面,即使隨系統運行了,但是由于映象劫持的重定向作用,還是會被系統提示無法找到病毒文件(這里是logo_1.exe和sppoolsv.exe)。
現在病毒木馬更多的是在利用各類移動設施(U盤等)、通過網頁掛馬進行傳播,通過模擬用戶操作關閉殺毒軟件。但我們仍然可以通過這個映像劫持的實例進行深入思考:如何利用病毒自身的技術來抵御病毒木馬的入侵。
【編輯推薦】