首页/安全/应急响应速查/ld.so.preload 动态库劫持排查

ld.so.preload 动态库劫持排查

glibc 的 /etc/ld.so.preload 会让指定库注入所有新进程:木马借它实现全局隐藏与凭据收割,正常系统里该文件通常不存在。

应急响应速查安全更新于 2026-10-13

ld.so.preload 是什么

glibc 动态链接器会读取 /etc/ld.so.preload,把其中列出的库预加载到所有新启动的进程。木马借这个机制实现全局隐藏与凭据收集:被劫持的目录读取与文件打开调用,会让 ls、ps、netstat 看不到指定文件、进程与端口。

排查三步

先确认文件是否存在、内容是什么;再检查被引用 .so 的来源、权限与哈希;最后验证是否与观察到的隐藏行为吻合。清理时先复制留档,再移除并复验。

基本信息

文件/etc/ld.so.preload
作用把指定 .so 预加载到每个新进程
正常状态文件不存在或内容为空
关联检查被引用 .so 的来源、权限、创建时间与哈希
同类机制LD_PRELOAD 环境变量、glibc 审计模块
权限要求读写该文件需 root

典型使用场景

  • 排查全局隐藏型 rootkit(工具输出与实际不一致)
  • 确认凭据收割类劫持的注入来源
  • 清理后验证隐藏行为是否消失
  • 与进程 maps 联动定位被注入的库
  • 事件报告中说明根因与影响范围

检查预加载配置

检查预加载配置
ls -l /etc/ld.so.preload 2>/dev/null; cat /etc/ld.so.preload 2>/dev/null
for so in $(cat /etc/ld.so.preload 2>/dev/null); do ls -l "$so"; md5sum "$so"; done
grep -c '' /etc/ld.so.preload 2>/dev/null     # 行数:非 0 即需解释每一行
ls -la /usr/lib64/libselinux* /lib64/libselinux* 2>/dev/null | head

逐项读法

检查项含义正常/异常
文件是否存在该机制是否被启用多数发行版默认没有这个文件
文件内容行每行一个库路径出现非系统路径即为高可疑
库文件时间.so 的创建与修改时间与入侵时间窗重合需重点核查
库文件哈希内容摘要用于与已知样本比对并作为留档依据
LD_PRELOAD 环境变量只影响被设置了该变量的进程,/etc/ld.so.preload 影响所有新进程:两者是不同机制,排查必须分别做,不要只查其中一个。
删除前先把文件与被引用的 .so 复制到证据目录:它们是根因的核心证据,直接 rm 会让验证与溯源都失去材料。

留档并验证隐藏效果

留档并验证隐藏效果
cp -a /etc/ld.so.preload /evidence/ 2>/dev/null
for so in $(cat /etc/ld.so.preload 2>/dev/null); do cp -a "$so" /evidence/; sha256sum /evidence/$(basename "$so"); done
ls -la / | head -n 20                       # 与被劫持时的输出对比
ls /proc | grep -c '^[0-9]' && ps -ef | wc -l   # 两个数字对不上即存在隐藏进程

一并核对的注入入口

  • /etc/ld.so.conf.d 下的自定义路径与 ldconfig 缓存
  • 各进程 environ 中的 LD_PRELOAD 与 LD_LIBRARY_PATH
  • 被替换的系统库(核对包管理器校验和)
  • 异常内核模块与系统调用 hook

易错点

  • 只查 LD_PRELOAD 环境变量:全局预加载文件是另一个机制,容易整片漏掉
  • 直接删掉文件不备份:验证与溯源都缺素材
  • 只看文件名判恶意:库可以伪装成 libselinux 之类的系统名
  • 清理后不验证:隐藏行为是否消失没有结论
  • 忘记同步检查 ld.so.conf.d 与 ldconfig:其他注入入口可能仍在

数据来源与参考

  • ld.so(8) 手册:/etc/ld.so.preload
  • MITRE ATT&CK T1574.006

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌