LD_PRELOAD 劫持
LD_PRELOAD 劫持 是什么?
LD_PRELOAD 劫持一种 Linux 持久化与库劫持技术,利用 LD_PRELOAD 环境变量或 /etc/ld.so.preload 文件向动态链接进程注入攻击者代码。
LD_PRELOAD 劫持(MITRE ATT&CK T1574.006)滥用 Linux 与多数类 Unix 系统的 GNU 动态链接器。攻击者通过为某进程或用户 shell 设置 LD_PRELOAD,或将路径写入 /etc/ld.so.preload(系统级),强制 ld.so 在所有其他库之前加载指定共享对象。恶意 .so 可挂钩 readdir、open、accept、write 等 libc 符号,以隐藏文件和进程、窃取凭据或维持用户态 rootkit。该手法对非 setuid 二进制有效,被 HiddenWasp、Symbiote 等 Linux 恶意软件广泛使用。防御措施:用 AIDE、auditd 监控 /etc/ld.so.preload、限制为仅 root 可写、检测异常 LD_PRELOAD,并用静态链接工具核对 libc 行为。
● 示例
- 01
将 /usr/lib/libsel.so 写入 /etc/ld.so.preload,使每个新进程都加载用户态 rootkit。
- 02
为 sshd 设置 LD_PRELOAD 以挂钩 PAM 认证并窃取凭据。
● 常见问题
LD_PRELOAD 劫持 是什么?
一种 Linux 持久化与库劫持技术,利用 LD_PRELOAD 环境变量或 /etc/ld.so.preload 文件向动态链接进程注入攻击者代码。 它属于网络安全的 攻击与威胁 分类。
LD_PRELOAD 劫持 是什么意思?
一种 Linux 持久化与库劫持技术,利用 LD_PRELOAD 环境变量或 /etc/ld.so.preload 文件向动态链接进程注入攻击者代码。
LD_PRELOAD 劫持 是如何工作的?
LD_PRELOAD 劫持(MITRE ATT&CK T1574.006)滥用 Linux 与多数类 Unix 系统的 GNU 动态链接器。攻击者通过为某进程或用户 shell 设置 LD_PRELOAD,或将路径写入 /etc/ld.so.preload(系统级),强制 ld.so 在所有其他库之前加载指定共享对象。恶意 .so 可挂钩 readdir、open、accept、write 等 libc 符号,以隐藏文件和进程、窃取凭据或维持用户态 rootkit。该手法对非 setuid 二进制有效,被 HiddenWasp、Symbiote 等 Linux 恶意软件广泛使用。防御措施:用 AIDE、auditd 监控 /etc/ld.so.preload、限制为仅 root 可写、检测异常 LD_PRELOAD,并用静态链接工具核对 libc 行为。
如何防御 LD_PRELOAD 劫持?
针对 LD_PRELOAD 劫持 的防御通常结合技术控制与运营实践,详见上方完整定义。
LD_PRELOAD 劫持 还有哪些其他名称?
常见的别称包括: ld.so.preload 滥用, 共享库劫持。
● 相关术语
- attacks№ 331
DLL 劫持
一种滥用 Windows DLL 搜索顺序的攻击,使合法程序加载攻击者控制的库,而不是预期的库。
- attacks№ 238
cron 持久化
Linux 与 Unix 中的持久化技术,利用 cron、anacron 或 systemd 定时器按时间或事件重新执行攻击者代码。
- attacks№ 608
launchd 持久化
macOS 持久化技术,通过安装 LaunchDaemon 或 LaunchAgent 的 plist 文件,让 launchd 在开机、登录或触发时执行攻击者代码。
- malware№ 949
Rootkit
一种隐蔽性极强的恶意软件,可在操作系统或设备上获得并隐藏特权访问权限,使常规工具难以检测。
- attacks№ 862
进程注入
一类规避检测的技术,攻击者在合法进程的地址空间内执行恶意代码,以借用其信任与身份。
● 参见
- № 054AppInit_DLLs