當一個可執行文件運行時,windows加載器講課執行模塊映射到進程的地址空間中,加載器分析可執行模塊的輸入表,並設法找出任何須要的DLL,並將它們映射到進程的地址空間中。html
因爲輸入表中只包含DLL名而沒有它的路徑名,所以加載程序必須在磁盤上搜索DLL文件。而這裏DLL文件搜索遵循如下順序。
編程
攻擊者先僞造一個與系統同名的DLL,提供一樣的輸出表,每一個輸出函數轉向真正的系統DLL。程序調用系統DLL時會優先調用系統DLL時會先調用當前目錄下僞造DLL,完成相關功能(惡意代碼或者程序補丁)。再跳到系統DLL同名函數裏執行。這個過程用形象的詞描述就是系統DLL被劫持(Hijack)了。windows
攻擊文件構造函數
事例:工具
微軟存在DLl劫持致使遠程攻擊;wireshark;windows live email;Microsoft movieMaker;Firefox;uTorrent;PPT2010;等等軟件都被曝光過存在DLL劫持漏洞spa
危害:操作系統
安裝上述軟件的用戶打開圖片,視頻,BT種子,網頁文件都有可能感染病毒。視頻
攻擊者利用DLL劫持漏洞構造一個特殊的DLL文件,將這個DLL文件打包到一些jpg、ppt、MP三、mpg、html文件中分發,用戶解壓雙擊打開文檔,病毒即被當即觸發。htm
新型DLL劫持漏洞造成原理:進程
應用程序爲了擴展或者兼容等目的須要加載相應的DLL文件,可是由於某些緣由致使這個DLL文件默認不存在當前系統中,此時就會嘗試加載文檔所在目錄下的DLL文件,從而達到破壞的做用。
應對:
DLL劫持利用了系統未知DLL的搜索路徑方式,使得程序加載當前目錄下的系統同名DLL。因此能夠首先告訴系統DLL的未知,改變加載系統DLL的順序不是當前目錄,這個想法能夠經過修改註冊表實現。新版的操做系統註冊表鍵值已經至關齊全,所以建議使用新版操做系統。
而對於新型的DLL劫持,由於並無十分有效的應對方式,因此用戶要養成運行文件前檢查目錄的習慣,開啓隱藏文件和顯示系統文件選項,防止經過應用程序加載惡意DLL。
2018-12-28 22:38:25 《黑客防線2012合訂本》筆記 撒地方