Dll文件劫持检测工具是一个免费使用的检测工具,没有任何第三方依赖关系,对系统底层耦合度低。
在最新的版本中,增加了新的写权限检查功能,Dll文件劫持检测工具在默认情况下不需要管理员权限,因此如果您想扫描类似“Program Files”的目录,您需要使用管理员权限运行检测工具,以确保文件能正常运行。
DLL文件劫持科普:
通常情况下,在Windows底层体系结构中有一个dll的搜索路径。如果系统在没有绝对路径的情况下,会尝试自动查找一个请求相关的可执行文件或者 dll文件(触发这个查找过程),那么在这个运行机理下,你可以把你的恶意DLL放在搜索路径的更靠前的位置,这样它就会在真正的dll文件出现之前被找到,这样的话Windows会很乐意地将你的攻击代码提供给应用程序使用,最终导致恶意代码被顺利的运行,从而导致系统危害。
假设Windows的DLL搜索路径如下所示:
A) 可执行文件的当前工作目录,最高优先级,第一次检查
B) \windows 系统目录
C) \ Windows\system32 系统目录
D) \Windows\syswow64 系统目录,最低优先级,最后检查
举个栗子,有个可执行文件“runme.exe文件“请求”sick.dll,它恰好位于syswow64子目录中。这使您有机会将恶意的dll放入A)、B)或C)中,并将其加载到可执行文件序列中。
正如前面所说的,如果尝试用自己的dll替换sick.DLL,即使是绝对完整路径也不能防止这种情况。
Microsoft Windows使用Windows文件保护机制保护系统路径(如System32),但在entrprise解决方案中,保护可执行文件免受DLL劫持的最佳方法是:
使用绝对路径而不是相对路径
如果您有个人签名,请在将DLL加载到内存之前对DLL文件进行签名并检查应用程序中的签名。否则,请使用原始DLL哈希值检查DLL文件的哈希值)
当然,这也不仅仅局限于Windows。任何允许动态链接外部库的操作系统理论上都容易受到这种劫持攻击。
Dll文件劫持检测工具使用简单的机制找出容易被劫持的DLL:
扫描可执行文件的导入表,找出链接到可执行文件的DLL
搜索放置在与链接的DLL匹配的可执行文件中的DLL文件(如我之前所说,可执行文件的当前工作目录具有最高优先级)
如果找到任何DLL,马上扫描DLL的导出表
将可执行文件的导入表与DLL的导出表进行比较,如果找到匹配项,则可执行文件和匹配的公共函数标记为DLL劫持候选项。
主要功能:
检测工具能够选择扫描类型(已签名/未签名的应用程序)
确定可执行签名者
确定使用哪一个引用的DLL选项进行劫持检测
确定待检测DLL的导出方法名称
配置规则以确定哪些劫持选项是最佳选择或较佳选择,并以不同颜色显示
能够检查可执行目录的写入权限,这是一个很方便的劫持检测选项
点击下载最新的DLL劫持检测工具的最新文件: