在 Ubuntu(Linux)系统中,“隐藏进程”通常指被 rootkit、恶意程序或某些防护软件通过Hook系统调用、修改内核结构等方式隐藏的进程。普通 ps、top 命令可能看不到它们。
下面按由浅入深、由合法到专业的方式说明如何查找隐藏进程。
ps -ef
ps aux
top
htop
有些进程只是:
. 开头(不是进程隐藏)ps -eLf
/proc 目录(非常重要)Linux 进程一定对应 /proc/<pid>:
ls /proc | grep '^[0-9]'
对比:
ps -eo pid
如果 /proc 里有 PID,但 ps 看不到,说明被隐藏。
/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
隐藏进程常监听端口:
ss -antp
netstat -antp
Unknown PID 或 users:(("?",pid=xxx)) 要警惕。
lsmod
异常模块(随机名、无描述)可能用于隐藏进程。
sudo apt install rkhunter
sudo rkhunter --check
sudo apt install chkrootkit
sudo chkrootkit
sudo apt install unhide
sudo unhide proc
sudo unhide sys
sudo unhide brute
它会对比 /proc、ps、系统调用,找出隐藏进程。
sudo apt install bpfcc-tools
sudo execsnoop
即使进程隐藏,执行行为仍可被捕获。
适用于:
步骤:
linux_pslist vs linux_psaux建议操作顺序:
| 方法 | 能否发现隐藏进程 | 难度 |
|---|---|---|
| ps / top | 否 | 低 |
| /proc 对比 | 能 | 中 |
| unhide | 能 | 低 |
| rkhunter / chkrootkit | 能 | 低 |
| eBPF | 强 | 中 |
| 内存取证 | 最强 | 高 |
如果你愿意,可以告诉我:
我可以给你一套更精准的操作命令。