温馨提示×

怎样查找ubuntu隐藏进程

小樊
38
2026-10-24 09:51:49
栏目: 智能运维

在 Ubuntu(Linux)系统中,“隐藏进程”通常指被 rootkit、恶意程序或某些防护软件通过Hook系统调用、修改内核结构等方式隐藏的进程。普通 ps、top 命令可能看不到它们。

下面按由浅入深、由合法到专业的方式说明如何查找隐藏进程。


一、基础排查(先看是否只是“没看到”)

1. 确认是否真的隐藏

ps -ef
ps aux
top
htop

有些进程只是:

  • 属于其他用户
  • 名称以 . 开头(不是进程隐藏)
  • 在容器 / namespace 中

2. 查看所有线程

ps -eLf

3. 检查 /proc 目录(非常重要)

Linux 进程一定对应 /proc/<pid>:

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

对比:

ps -eo pid

如果 /proc 里有 PID,但 ps 看不到,说明被隐藏。


二、使用系统自带工具发现异常

1. 检查进程与 /proc 不一致

for pid in /proc/[0-9]*; do
    pid=$(basename $pid)
    if ! ps -p $pid > /dev/null; then
        echo "隐藏进程可能: $pid"
        cat /proc/$pid/cmdline
    fi
done

2. 查看网络连接

隐藏进程常监听端口:

ss -antp
netstat -antp

Unknown PID 或 users:(("?",pid=xxx)) 要警惕。

3. 查看内核模块

lsmod

异常模块(随机名、无描述)可能用于隐藏进程。


三、使用专业检测工具(推荐)

1. rkhunter(Rootkit 检测)

sudo apt install rkhunter
sudo rkhunter --check

2. chkrootkit

sudo apt install chkrootkit
sudo chkrootkit

3. unhide(专查隐藏进程)

sudo apt install unhide
sudo unhide proc
sudo unhide sys
sudo unhide brute

它会对比 /proc、ps、系统调用,找出隐藏进程。


四、内核级 / 高级排查(服务器安全场景)

1. 使用 eBPF 工具(现代方法)

sudo apt install bpfcc-tools
sudo execsnoop

即使进程隐藏,执行行为仍可被捕获。

2. 使用 Volatility(内存取证)

适用于:

  • 已怀疑被入侵
  • 需要做司法级分析

步骤:

  1. 导出内存镜像
  2. 用 Volatility 分析 linux_pslist vs linux_psaux

五、如果你怀疑系统已被入侵

建议操作顺序:

  1. 断网
  2. 用 Live CD / 另一台机器 挂载磁盘分析
  3. 不信任当前内核和命令
  4. 重装系统(最安全)

六、总结对照表

方法 能否发现隐藏进程 难度
ps / top 否 低
/proc 对比 能 中
unhide 能 低
rkhunter / chkrootkit 能 低
eBPF 强 中
内存取证 最强 高

如果你愿意,可以告诉我:

  • 是 服务器还是桌面
  • 是否 已怀疑中毒
  • 当前 Ubuntu 版本

我可以给你一套更精准的操作命令。

0 踩