DLLHijack漏洞原理

原理


 

當一個可執行文件運行時,windows加載器講課執行模塊映射到進程的地址空間中,加載器分析可執行模塊的輸入表,並設法找出任何須要的DLL,並將它們映射到進程的地址空間中。html

因爲輸入表中只包含DLL名而沒有它的路徑名,所以加載程序必須在磁盤上搜索DLL文件。而這裏DLL文件搜索遵循如下順序。

編程

  1. 可執行程序加載的目錄
  2.  系統目錄
  3.  16位系統目錄
  4.  Windows目錄
  5.  文檔運行目錄
  6.  PATH環境變量中列出的目錄

攻擊者先僞造一個與系統同名的DLL,提供一樣的輸出表,每一個輸出函數轉向真正的系統DLL。程序調用系統DLL時會優先調用系統DLL時會先調用當前目錄下僞造DLL,完成相關功能(惡意代碼或者程序補丁)。再跳到系統DLL同名函數裏執行。這個過程用形象的詞描述就是系統DLL被劫持(Hijack)了。windows


攻擊文件構造函數

  • 編程環境:Delphi 2007
  • 工具軟件:ViewDLL,進程查看器。

事例:工具

  微軟存在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合訂本》筆記 撒地方

相關文章
相關標籤/搜索