【技术好文】你需要知道的DLL劫持都在这里了(dll劫持内存补丁)

网友投稿 1006 2022-10-02


【技术好文】你需要知道的DLL劫持都在这里了(dll劫持内存补丁)

DLL劫持

概念

首先来理解DLL在Windows系统中的作用,DLL全称Dynamic Link Library,称为动态连接库,在Windows系统中,大多数程序并不是一个单独的可执行文件,而是有一些单独的存放动态链接库在系统中,当需要某些功能时,通过DLL执行相应的功能,即DLL调用。

那么既然程序执行某些功能时,可能会通过DLL调用,从利用角度来看,如果替换了这个DLL文件,或者导出了原DLL的导出函数并恶意构造,在原程序调用正常DLL前调用了我们预先构造好的恶意DLL,那么就达到了劫持的效果。

所以手法可以有多种,比如替换原DLL文件,黑DLL放置最先路径,DLL转发等。

DLL搜索顺序

进程对应的应用程序所在目录; 当前目录(Current Directory); 系统目录(通过 GetSystemDirectory 获取); 16 位的系统目录(即 Windows 目录中的 System 目录); Windows目录(通过 GetWindowsDirectory 获取); PATH环境变量中的各个目录;

例如:对于文件系统,如Doc文档打开会被应用程序Office打开,而Office运行的时候会加载系统的一个DLL文件,如果我们用恶意的DLL来替换系统的DLL文件,就是将DLL和Doc文档放在一起,运行的时候就会在当前目录中找到DLL,从而优先系统目录下的DLL而被执行。

更详细的参考文档可以在官方文档中查看:https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order

防御思路

调用第三方DLL时,使用绝对路径 调用API SetDllDirectory()将当前目录从DLL加载顺序中移除 在开发阶段,就使用工具对系统进行测试

DLL劫持漏洞的检测软件

文末查看软件下载地址

加入社群


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【技术好文】十分钟你快速入门Nmap这款强大的网络扫描工具(使用Nmap扫描工具能够)
下一篇:Java 动态数组的实现示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~