通过PATH环境变量进行路径拦截
对手可能通过劫持用于加载库的环境变量来执行自己的恶意有效负载。PATH环境变量包含一个目录列表(用户和系统),操作系统按顺序搜索这些目录以查找从脚本或命令行调用的二进制文件。 对手可以将恶意程序放置在PATH环境变量列表中较早的条目中,从而导致操作系统在按顺序搜索该PATH列表时执行恶意二进制文件而不是合法二进制文件。 例如,在Windows上,如果对手将名为“net.exe”的恶意程序放置在C:\example path
中,该路径默认情况下优先于C:\Windows\system32\net.exe
在PATH环境变量中,当从命令行执行“net”时,将调用C:\example path
而不是系统的合法可执行文件C:\Windows\system32\net.exe
。某些执行程序的方法依赖于PATH环境变量来确定在未给出程序路径时要搜索的位置,例如从命令和脚本解释器执行程序。(引用: ExpressVPN PATH env Windows 2021) 对手还可以直接修改指定要搜索目录的$PATH变量。对手可以修改$PATH变量以指向他们有写访问权限的目录。当调用使用$PATH变量的程序时,操作系统将搜索指定目录并执行恶意二进制文件。在macOS上,这也可以通过修改$HOME变量来执行。这些变量可以使用命令行、launchctl、Unix Shell配置修改或修改/etc/paths.d
文件夹内容来修改。(引用: uptycs Fake POC linux malware 2023)(引用: nixCraft macOS PATH variables)(引用: Elastic Rules macOS launchctl 2022)