DLL 搜索顺序劫持
对手可能通过劫持用于加载 DLL 的搜索顺序来执行他们自己的恶意有效负载。Windows 系统使用一种常见的方法来查找要加载到程序中的所需 DLL。(引用: Microsoft Dynamic Link Library Search Order)(引用: FireEye Hijacking July 2010) 劫持 DLL 加载可能是为了建立持久性以及提升权限和/或规避文件执行限制。 对手可以通过多种方式劫持 DLL 加载。对手可能会在目录中植入特洛伊木马动态链接库文件 (DLL),该目录将在请求的合法库之前被搜索,从而导致 Windows 在调用受害者程序时加载他们的恶意库。对手还可能通过放置与模糊指定的 DLL 同名的恶意 DLL 在 Windows 搜索合法 DLL 之前的位置来执行 DLL 预加载,也称为二进制植入攻击。(引用: OWASP Binary Planting) 通常这个位置是程序的当前工作目录。(引用: FireEye fxsst June 2011) 远程 DLL 预加载攻击发生在程序将其当前目录设置为远程位置(如 Web 共享)之前加载 DLL。(引用: Microsoft Security Advisory 2269637) 幻影 DLL 劫持是一种特定类型的 DLL 搜索顺序劫持,对手针对对不存在的 DLL 文件的引用。(引用: Hexacorn DLL Hijacking)(引用: Adversaries Hijack DLLs) 他们可能能够通过在缺失模块的位置植入具有正确名称的恶意 DLL 来加载自己的恶意 DLL。 对手还可以通过 DLL 重定向直接修改搜索顺序,启用后(在注册表中并创建重定向文件)可能导致程序加载不同的 DLL。(引用: Microsoft Dynamic-Link Library Redirection)(引用: Microsoft Manifests)(引用: FireEye DLL Search Order Hijacking) 如果配置为以更高权限级别运行的程序易受路径劫持攻击,那么加载的对手控制的 DLL 也将以更高权限级别执行。在这种情况下,该技术可用于从用户到管理员或 SYSTEM 的权限提升,或从管理员到 SYSTEM,具体取决于程序。受路径劫持攻击的程序可能会表现正常,因为恶意 DLL 可能会配置为也加载它们原本要替换的合法 DLL。