温馨提示×

怎样查找linux隐藏进程

小樊
50
2026-09-03 11:26:00
栏目: 智能运维

在 Linux 中,“隐藏进程”通常指被 rootkit、恶意程序或人为手段隐藏的进程(比如劫持 ps/top、修改 /proc、钩子系统调用等)。查找隐藏进程需要多维度交叉验证,不能只依赖 ps

下面按实用程度系统讲一下。


一、常规进程查看(先看正常情况)

ps -ef
ps aux
top
htop

如果这里有异常进程,问题可能已经不复杂。


二、直接对比 /proc 与 ps(最常用)

Linux 所有进程都在 /proc 下有目录:

ls /proc | grep '^[0-9]'

对比:

ps -e | awk '{print $1}' | sort -n > /tmp/ps.txt
ls /proc | grep '^[0-9]' | sort -n > /tmp/proc.txt
diff /tmp/ps.txt /tmp/proc.txt

proc 有但 ps 没有 → 隐藏进程嫌疑


三、检查被篡改的命令

隐藏进程常篡改:

  • ps
  • top
  • lsof
  • netstat

1. 检查命令完整性

which ps
ls -l $(which ps)
rpm -V procps-ng      # CentOS/RHEL
dpkg -V procps        # Debian/Ubuntu

2. 使用静态/可信工具

从干净系统拷贝,或使用:

  • busybox ps
  • busybox top
busybox ps -ef

四、使用系统调用级工具(抗隐藏)

1. lsof(看进程打开的文件)

lsof | grep deleted

2. strace 跟踪进程

strace -p <PID>

3. systemtap / bpftrace(高级)

可 Hook fork/execve,即使 ps 被改也能发现。


五、网络层反查(非常有效)

隐藏进程常开端口:

ss -antp
netstat -antp

对比:

cat /proc/net/tcp

如果 有端口但 ss/netstat 看不到进程 → 高度可疑。


六、内核级检测工具(强推荐)

1. rkhunter

rkhunter --check

2. chkrootkit

chkrootkit

3. unhide(专门找隐藏进程)

unhide proc
unhide sys
unhide quick

七、从外部视角(最可靠)

如果系统可能已被完全控制:

  • Live CD / 救援模式 启动
  • 挂载原系统
  • 检查 /proc/bin/sbin/lib

八、实战判断思路总结

方法 能否发现隐藏进程
ps/top ❌(可能被改)
/proc 对比
busybox
ss/netstat
unhide ✅✅
内核工具 ✅✅✅

九、如果你愿意

你可以告诉我:

  • 系统版本(CentOS / Ubuntu / 容器 / 云服务器)
  • 服务器变慢CPU 异常,还是怀疑被入侵
  • 是否有权限(root / 普通用户)

我可以给你一条可以直接复制执行的排查命令集

0