ATT&CK-CN V1.0 Last Update: 2019-03 [返回索引页]

译者: 林妙倩(清华大学网络研究院网络空间安全实习生) 原创翻译作品,如果需要转载请取得翻译作者同意。

数据来源:ATT&CK Matrices

原文: https://attack.mitre.org/techniques/T1038

术语表: /attack/glossary

DLL 搜索顺序劫持

Windows 系统使用常见方法来查找需要加载到程序中的 DLL。 攻击者可以利用 Windows DLL 搜索顺序和未明确指明 DLL 的程序来提权和持久化攻击。

攻击者可以执行 DLL 预加载,也称为二进制种植攻击 。执行该攻击的方式是将与未明确的 DLL 同名的恶意 DLL 放置到某一位置,这个位置在合法 DLL 所在位置前被 Windows 搜索到。

该位置通常是程序的当前工作目录。当程序在加载 DLL 之前将其当前目录设置为远程目录(如 Web 共享),会发生远程 DLL 预加载攻击。 攻击者可能会这样做使得程序加载恶意 DLL。

攻击者还可以通过替换现有 DLL 或修改。manifest 或。local 重定向文件,目录或 Junction 来直接修改程序加载 DLL 的方式,以使程序加载不同的 DLL 以持久化攻击或提权。

如果有 DLL 搜索顺序漏洞的程序配置为在更高的权限级别运行,则加载的由攻击者控制的 DLL 也将在更高级别执行。在这种情况下,该技术可用于从用户到管理员或 SYSTEM 或从管理员到 SYSTEM 的权限升级,具体取决于程序。

被路径劫持的程序可能看起来正常,因为可以配置 恶意 DLL 使其同时加载它们所替换的合法 DLL。

缓解

禁止加载远程 DLL。 默认情况下,这包括在 Windows Server 2012+中,对于 XP+和 Server 2003+,可通过 patch 设置。 路径算法 启用安全 DLL 搜索模式,强制搜索本地目录 DLL (例如用户的 home 目录)之前,在具有更多限制的目录中的搜索系统 DLL (例如% SYSTEMROOT % )。 可以通过计算机配置>[策略]>管理模板> MSS (旧版)中的组策略来启用安全 DLL 搜索模式: MSS : (安全 DLL 搜索模式)启用安全 DLL 搜索模式。 相关的注册表项位于 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDLLSearchMode 使用能够检测企业内系统上的 DLL 搜索顺序劫持机会并进行更正的审计工具。 像 PowerSploit 框架这样的工具包包含 PowerUp 模块,可用于查找系统中的 DLL 劫持缺陷。

使用能够审核和/或拦截未知 DLL 的白名单 工具(如 AppLocker ),识别并拦截可能通过搜索顺序劫持执行的潜在恶意软件。

检测

监视文件系统中 DLL 的移动、重命名、替换或修改。 由与已知软件、补丁等无关的进程(与过去的行为相比)加载的 DLL 集中的变化都是可疑的。 监视加载到进程中的 dll 并检测文件名与其相同但路径异常的 dll。 修改或创建与软件更新无关的.manifest 和 .local 重定向文件是可疑的。