DLL劫持漏洞自动化识别工具Rattler测试

本文介绍了DLL劫持漏洞的概念、原理和自动化检测工具Rattler的使用方法。通过实例展示了如何利用Rattler查找程序中的DLL劫持漏洞,并通过Process Monitor验证测试。此外,还探讨了防御DLL劫持的措施和用户应注意的安全问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x00 前言

最近,来自SensePost的Chris Le Roy开源了一款工具:Rattler,可用来自动识别DLL是否存在预加载漏洞(也可以理解为DLL劫持漏洞,文中该名词均采用DLL劫持漏洞)。虽然DLL劫持漏洞已不再是新技术,可追溯到2010年,但是我对自动化很是感兴趣,于是对此做了进一步研究。

本文将理清DLL劫持漏洞原理,实例分析,测试自动化工具Rattler,分享心得,并测试一个存在该漏洞的软件——Explorer Suite安装包

注:

Explorer Suite安装包内包含CFF Explorer,免费,常用来编辑PE文件格式,最后更新于2012年11月18日,是比较小众的一款工具。对于分析PE文件格式,建议使用作者另一款更专业的工具:Cerbero Profiler

Chris Le Roy介绍Rattler的博客地址:

https://sensepost.com/blog/2016/rattleridentifying-and-exploiting-dll-preloading-vulnerabilities/

Chris Le Roy在BSides Cape Town上也介绍了Rattler,简介如下:

http://www.bsidescapetown.co.za/speaker/chris-le-roy/

0x01 简介DLL劫持漏洞根源

程序在调用DLL时未指明DLL的完整路径

SafeDllSearchMode

从WindowsXPSP2开始,SafeDllSearchMode默认开启,SafeDllSearchMode的存在是为了阻止在XP时代存在的DLL劫持漏洞

注:

强制关闭SafeDllSearchMode的方法:创建注册表项HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerSafeDllSearchMode值设为0

程序在调用DLL时,如果未指明DLL的完整路径,那么系统会按照一套固定的搜索顺序寻找DLL

如果SafeDllSearchMode开启,程序会依次从以下位置查找DLL文件:

The directory from which the application loaded

The system directory

The 16-bit system directory

The Windows directory

The current directory

The directories that are listed in the PATH environment variable

如果关闭,则从以下位置查找DLL文件:

The directory from which the application loaded

The current directory

The system directory

The 16-bit system directory

The Windows directory

The directories that are listed in the PATH environment variable

详细内容见:

https://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx

KnownDLLs

注册表位置:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs

KnownDLLs注册表项下包含一系列常见的系统dll,如usp10.dll、lpk.dll、shell3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值