定位高可疑进程需先查cpu占用前20名,重点关注cmd列路径非常规、进程名仿冒(如sshd1、bashd)的条目;对可疑pid执行ls -l /proc/pid/exe,若指向/tmp、/var/tmp、/dev/shm等临时路径,该进程极大概率是后门;再结合ld_preload检查、/proc与ps pid数量比对、lsmod筛选可疑内核模块及cmdline分析,多维度交叉验证隐藏后门。

定位高可疑进程
银河麒麟基于Linux内核,后门进程常伪装成系统服务名或藏身于临时目录,直接运行 ps -eo pid,ppid,comm,user,%cpu,%mem,cmd --sort=-%cpu | head -20 查看CPU占用前20的进程,重点关注命令列(cmd)中路径不在 /bin、/usr/bin、/usr/libexec 的条目。
若发现进程名形如 systemd-、sshd1、bashd 或含随机字符串(如 ks82jx),立即记录其PID——这类命名是木马仿冒的典型痕迹,不是系统原生行为。
验证进程真实可执行文件路径
对上一步筛选出的可疑PID(假设为12345),执行:ls -l /proc/12345/exe。
输出若指向 /tmp/.X11-unix、/var/tmp/kthreadd、/dev/shm/.log 或用户家目录下的隐藏路径,【该进程极大概率是后门】。正常系统进程的exe链接必须指向只读、受控的系统目录,临时目录下出现活跃进程二进制文件,违反最小权限原则。
若提示 No such file or directory,说明进程已退出但残留了/proc下的PID目录,需结合下一步交叉验证。
检查进程是否加载了LD_PRELOAD后门
方法一:查当前会话环境变量
运行 echo $LD_PRELOAD,非空输出即存在预加载风险;
方法二:查全局配置文件
执行 ls -l /etc/ld.so.preload 2>/dev/null,若文件存在且内容非空,【立即停止后续操作,该文件已被篡改】;
方法三:扫所有活跃进程的内存映射
运行 grep -l "lib.*\.so" /proc/[0-9]*/maps 2>/dev/null | xargs -r -n1 dirname | sort -u,输出中若包含 /tmp、/var/tmp、/home/*/.cache 等非常规路径,说明有进程正加载外部共享库,需逐个用 readelf -Ws [路径] | grep -E "(connect|socket|exec)" 检查是否劫持网络或执行函数。
排查Rootkit类隐藏进程
第一步:枚举/proc下所有PID目录
执行 ls /proc | grep '^[0-9]\+$' | wc -l 记录总数;
第二步:获取ps可见进程PID列表
运行 ps -eo pid= | tr -d ' ' 并统计行数;
第三步:比对差值
若/proc中PID数量明显多于ps输出(例如多出5个以上),说明存在ps不可见进程,极可能是Rootkit注入所致;
此时执行 lsmod | grep -E "(hide|rootkit|drv|acpi)",任何匹配结果都需用 modinfo [模块名] 查author字段——若为空或为乱码,【该内核模块高度可疑】。
确认进程关联的启动源
对仍存疑的PID(如12345),执行:cat /proc/12345/cmdline | tr '\0' ' ' 查看完整启动命令;
再运行:systemctl status $(ps -o comm= -p 12345) 2>/dev/null || echo "not managed by systemd";
若返回 not managed by systemd,且cmdline中含 curl、wget、nc、bash -c 或base64字符串,【该进程大概率是远程下载执行的内存马或脚本后门】。











