首页
网络安全
当前位置: 首页 > 正文

windows中程序不安全的DLL加载漏洞的分析

时间:2010-10-13作者:
背景
微软8月23日发布了新的安全通告(MSA2269637),提醒用户防范因应用程序采用不安全 的DLL加载方式而导致的远程代码执行威胁,即“DLL劫持攻击”。攻击者只要成功诱导用 户从一个不安全路径打开一个特殊构造的文件,即可触发运行用户计算机上存在问题的应用程 序,进而远程执行任意代码[1]。 原理
当应用程序调用LoadLibrary()或者LoadLibraryEx()的时候,如果参数指定了DLL的完整 路径,那么就会直接加载该路径上的DLL;否则就会按照预定的路径搜索顺序寻找同名的DLL来 加载。 DLL加载的搜索顺序如下[4]: SafeDllSearchMode关闭 1.应用程序所在目录 2.当前工作目录 3.系统目录 4.16位系统目录 5.Windows目录 6.环境变量指定的目录 SafeDllSearchMode打开 1.应用程序所在目录 2.系统目录 3.16位系统目录 4.Windows目录 5.当前工作目录 6.环境变量指定的目录 利用的方法 利用过程 攻击者把同名的恶意DLL放在当前工作目录上。应用程序运行时会按上述的搜索顺序寻找DLL,如 果在当前工作目录前的所有目录都没有需要的DLL,那么当搜索到当前工作目录时,应用程序就会 加载同名的恶意DLL,使得DLL中的代码可以在该应用程序的权限下执行。 利用条件 1.应用程序在调用LoadLibrary()时没有指定完整路径 2.在路径搜索顺序中,真正的DLL所在的目录排在当前工作目录之后 3.当前工作目录在路径搜索顺序中没有被剔除 4.当前工作目录的切换(方法:如BitTorrent,将恶意同名DLL跟一个种子文件放在同 一个目录下,当双击这个种子文件时,系统会自动调用BitTorrent程序来打开文件, 此时当前工作目录就是恶意DLL所在的目录) 为什么选择当前工作目录? 1.没有访问和修改系统目录的权限 2.当前工作目录所涵盖的范围更广(如包括WebDAV、SMB、etc.),所需要的权限较低 影响 攻击者可以通过提供恶意同名DLL,利用有漏洞的应用程序,在目标系统上执行恶意的代码,从而 实现获取权限、留下后门等目的。 受影响的程序:VMware、Wireshark、Mozilla、BitTorrent、Adobe、etc.(详见[3]) 解决方法 1.指定完整路径的DLL 2.打开安全路径搜索模式(部分解决) 3.剔除对当前工作目录的搜索 &#

关闭

 网络与信息教育技术中心版权所有
地址: 山西省太原市坞城路140号    咨询电话:0351-7666230     email:wlzx@sxufe.edu.cn