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合订本》笔记 撒地方

相关文章
相关标签/搜索