最快速有效的发现方式是直接检查/etc/ld.so.preload文件是否存在且内容异常;该文件系统默认不创建,若存在非空内容,99%为恶意行为,需进一步验证是否真实加载及关联持久化痕迹。

直接检查 /etc/ld.so.preload 文件是否存在且内容异常,是最快速有效的发现方式。
检查 /etc/ld.so.preload 文件是否存在且非空
该文件本应极少存在,系统默认不创建。一旦出现,99% 是恶意行为。
- 执行
ls -l /etc/ld.so.preload,若返回“No such file”,说明未被利用 - 若文件存在,立即用
cat /etc/ld.so.preload查看内容 - 常见后门路径如
/tmp/.x.so、/dev/shm/.a.so、/var/tmp/libnss.so等都属高危信号
验证可疑共享库是否真实加载
即使文件存在,也要确认它是否真被系统加载,避免误报(比如攻击者仅写入未触发)。
- 运行
grep -r "ld.so.preload" /proc/*/maps 2>/dev/null | head -5,查看是否有进程映射了该路径下的 so 文件 - 对疑似路径如
/tmp/.x.so,执行file /tmp/.x.so和strings /tmp/.x.so | grep -i "socket\|connect\|exec\|fork"判断是否含网络或执行逻辑 - 用
lsof -nP | grep "\.so$" | grep -v "lib.*\.so"辅助排查非常规 so 加载
检查系统启动和服务初始化阶段的异常痕迹
攻击者有时会配合其他手段确保 preload 持久生效,需同步排查关联项。
- 检查
/etc/ld.so.conf及/etc/ld.so.conf.d/*.conf中是否追加了可疑路径 - 运行
systemctl list-unit-files --state=enabled | grep -i "init\|rc\|cron",排查是否有伪装服务在开机时重建 preload 文件 - 查看
~/.bashrc、/etc/profile.d/*.sh是否有echo "... > /etc/ld.so.preload类写入操作
自动化快速筛查脚本(可一键运行)
把关键检查步骤整合成一行命令,适合应急响应时快速判断:
if [ -f /etc/ld.so.preload ]; then echo "[ALERT] /etc/ld.so.preload exists:"; cat /etc/ld.so.preload; echo; echo "Loaded by processes:"; grep -l "$(cat /etc/ld.so.preload 2>/dev/null)" /proc/*/maps 2>/dev/null | cut -d'/' -f3; else echo "[OK] /etc/ld.so.preload not found"; fi










