排查ld_preload后门需检查环境变量、/etc/ld.so.preload文件、可疑.so库及内存映射进程,覆盖配置、文件、行为三层检测,重点识别函数劫持与异常路径。

排查 LD_PRELOAD 后门需从环境变量、系统配置文件、内存映射和可疑共享库四方面入手。它不依赖进程名或端口,而是通过函数劫持静默运行,容易被忽略。
检查 LD_PRELOAD 环境变量
攻击者常通过 shell 配置文件或服务单元设置该变量:
- 运行 echo $LD_PRELOAD 查看当前会话是否被设置
- 检查用户级配置:grep -r "LD_PRELOAD=" ~/.bashrc ~/.bash_profile ~/.profile /etc/profile.d/ 2>/dev/null
- 检查 systemd 服务:systemctl show --property=Environment --all 2>/dev/null | grep PRELOAD
- 检查 cron 任务:crontab -l; ls /etc/cron.d/ | xargs -I{} cat /etc/cron.d/{},留意 export 或 env 命令
检查 /etc/ld.so.preload 文件
这是系统级预加载入口,优先级高于环境变量,一旦存在非空内容即高度可疑:
- 执行 ls -l /etc/ld.so.preload —— 正常应不存在,或为空且权限为 -rw-r--r--、属主 root
- 若存在,用 cat /etc/ld.so.preload 查看路径,常见恶意路径如 /tmp/.x.so、/var/run/.b.so、/home/user/Nomal.so
- 注意:该文件只认纯路径行,含空格、# 注释或无效字符会导致加载失败,但攻击者可能故意写入“看似无害”的路径干扰判断
定位并分析可疑 .so 文件
preload 中的路径指向的共享库才是实际后门载体:
- 对每个路径(如 /home/user/Nomal.so),先确认存在:ls -la /home/user/Nomal.so
- 验证是否为合法 ELF 共享对象:file /home/user/Nomal.so
- 检查是否 hook 关键函数:readelf -Ws /home/user/Nomal.so | grep -E "(write|connect|socket|exec|system|popen)"
- 提取敏感字符串:strings /home/user/Nomal.so | grep -i "flag\|sshlog\|nc\|tcp\|127.0.0.1\|key"
- 若确认恶意,且未被占用,立即删除;若被进程占用(lsof /home/user/Nomal.so 有输出),建议重启对应服务或整机
查找已加载该库的活跃进程
恶意 so 在进程启动时注入,不会出现在 ps 中,但会出现在内存映射里:
- 扫描所有进程 maps:grep -l "/home/user/Nomal.so" /proc/[0-9]*/maps 2>/dev/null | cut -d'/' -f3
- 对返回的 PID,查其真实身份:cat /proc/PID/cmdline | tr '\0' ' ' 和 ls -l /proc/PID/exe
- 重点关注 bash、sshd、crond、python 等常驻进程 —— 若它们映射了恶意 so,说明已被劫持,需 kill 并重启服务(如 systemctl restart sshd)
不复杂但容易忽略











