🤔
文件劫持漏洞: 这是一种使攻击者能够通过操纵文件内容或文件路径来破坏安全边界的漏洞
攻击要求
- 漏洞软件必须通过敏感操作与被劫持的文件或目录发生交互
- 攻击者必须能够劫持某些文件或目录
c:\.git\
C:\User\Alice\
中调用git log
git
如果没有在当前目录内找到.git
会自动向父文件夹内寻找 此时找到C:\.git\
C:\.git\
内设置了githooks
则会导致Alice执行Bob的任意代码Q1: githooks?
官方提供的一部分Hook函数 用于在git相关操作之后可以快速执行某些命令
被劫持的文件有两种来源,现有技术主要侧重于检测第一个来源的漏洞。
当没有提供绝对文件路径时,操作系统或程序通常使用不同的文件搜索策略来定位目标文件。通常,这些搜索策略可能会返回具有弱权限的目录,从而允许攻击者植入恶意文件。在我们的调查中,我们确定了5种搜索策略,它们可能返回具有弱权限的目录。
- 路径搜索顺序(3.4%): 在Windows系统中,当执行命令时,系统首先尝试在当前工作目录(CWD)中找到被调用的可执行文件,然后再搜索PATH环境变量中定义的路径。当CWD的权限较弱时,这种策略会带来安全风险。以Github Cli[19]中的漏洞为例。在执行gh命令时,CLI客户端将尝试在CWD中找到可执行文件git.exe。一旦CWD(例如,C:\ProgramData)具有弱权限,攻击者就可以在该目录中放置恶意可执行文件git.exe。
- Windows下的Linux路径(4.5%): 具体来说,当Windows系统上不存在Linux路径时,系统会从
C:\
目录搜索。由于C:\
在默认情况下是可写的,这使得攻击者可以轻松地植入恶意文件。以CVE-2019-5443[11]为例。curl程序读取默认配置文件/usr/local/ssl/openssl.cnf
。在windows操作系统中,此文件不存在,系统会搜索配置文件C:\usr\local\ssl\openssl.cnf
。由于路径C:\
具有弱权限,攻击者可以轻松劫持文件并控制引擎配置,从而导致任意代码执行。- 未被包裹的路径(17.1%): 未被包裹的路径是指没有加引号的文件路径。当未加引号的路径包含空格或特殊字符时,Windows系统将截断该路径并使用截断的路径搜索该文件。例如,在CVE-2020-13884[14]中,Citrix Workspace程序调用CreateProcess API以不加引号的路径
C:\ProgramData\Citrix\Citrix Workspace 1911\TrolleyExpress.exe
执行文件TrolleyExpress.exe。但是,Windows系统使用空格截断路径并使用路径C:\ProgramData\Citrix\Citrix.exe
搜索文件,有效地加载文件Citrix.exe
而不是TrolleyExpress.exe
。由于路径C:\ProgramData\Citrix
具有弱权限,攻击者可以劫持Citrix.exe
,从而导致权限升级。- 符号链接(19.4%): 当访问符号链接时,操作系统按照该链接来定位目标文件或目录。CVE-2022-39845就是这样一个例子,它会导致任意目录删除。具体来说,三星Kies的卸载程序试图删除一个不存在的目录
C:\ProgramData\Samsung\DeviceProfile\Cache
。由于攻击者可以拥有对C:\ProgramData\Samsung
的写权限,因此攻击者可以针对任意目录(例如C:)创建符号链接C:\ProgramData\Samsung\DeviceProfile\Cache
。因此,卸载程序将删除C:\
中的所有文件。- 动态链接库(45.5%): 在搜索动态库的过程中,操作系统在搜索目录中查找这些库。但是,如果在此搜索过程中遇到具有弱权限的目录,则可能会允许攻击者劫持要加载的动态库。DLL劫持是近年来备受关注的问题,我们研究的现有漏洞大多是由DLL劫持引起的。
并非所有被劫持文件的访问都可能导致漏洞。例如,查询文件大小之类的操作通常是安全的。通过我们的研究,我们确定了六种可能导致漏洞的操作类型。
读取操作会导致更多的FHVuln,并带来比我们想象的更高的风险。这些发现来自于新型的FHVuln,因此无法从现有的FHVuln中观察到。此外,我们对Windows和类unix系统中的FHVuln进行了详细的讨论,确定了它们广泛发生背后的原因,并讨论了减轻它们的责任。我们的发现为未来研究改进检测工具和开发针对FHVulns的有效防御提供了有价值的见解。
文件劫持漏洞可以在软件生命周期的任何阶段触发,大多数漏洞是在软件程序启动阶段触发的。目前还没有一种技术能够处理软件生命周期中的每个阶段来检测fhvuln。
本文作者:Du4t
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
预览: