温馨提示×

如何查找debian隐藏进程

小樊
44
2026-09-16 19:18:15
栏目: 智能运维

在 Debian(以及其他 Linux 发行版)中,“隐藏进程”通常指:

  • 用户级隐藏:进程存在但 ps / top 看不到(如 ps 被篡改)
  • 内核级 rootkit:进程在内核中隐藏,用户态工具完全不可见
  • 容器 / namespace 隐藏:进程在其他 PID namespace 中
  • 普通隐藏:进程名以 . 开头或使用了特殊技巧

下面按由浅入深的方式说明如何查找。


一、基础检查(先确认是不是“假隐藏”)

1. 对比不同工具

ps aux
top
htop

如果某个工具看不到,但另一个能看到,可能是:

  • ps 被替换
  • 环境变量或别名问题

2. 直接读 /proc

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

每个数字目录都是一个进程。

对比:

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

差异进程 = 被隐藏进程


二、检查 ps / 系统命令是否被篡改

1. 检查命令完整性

which ps
ls -l $(which ps)

2. 使用静态或官方版本

# 使用 busybox(若已安装)
busybox ps

或从干净系统复制 ps、top。


三、检查其他 PID Namespace(容器 / chroot)

1. 查看所有 namespace 中的进程

lsns -t pid

2. 进入其他 namespace 查看

nsenter -t <pid> -p ps aux

四、使用底层工具检测隐藏进程

1. unhide(专门查隐藏进程)

sudo apt install unhide
sudo unhide proc
sudo unhide sys

它会对比:

  • /proc
  • 系统调用
  • 内核任务列表

2. chkrootkit

sudo apt install chkrootkit
sudo chkrootkit

3. rkhunter

sudo apt install rkhunter
sudo rkhunter --check

五、内核级隐藏进程(高级)

如果进程连 /proc 都没有,可能是 kernel rootkit。

1. 检查内核模块

lsmod

异常模块:

  • 名字随机
  • 无作者/描述
modinfo <模块名>

2. 使用 forensic 工具

sudo apt install volatility

(需内存镜像)

3. 最可靠方法

✅ 从 Live CD / 干净系统启动 ✅ 挂载原系统磁盘 ✅ 分析 /proc、/sys、kernel memory


六、实用快速检查清单

ls /proc | grep -E '^[0-9]+$' | sort -n
ps -e | awk '{print $1}' | sort -n
diff <(ls /proc | grep -E '^[0-9]+$') <(ps -e | awk '{print $1}')
unhide proc
chkrootkit

七、如果你怀疑被入侵

  1. 断网
  2. 不要在原系统继续操作
  3. 使用干净介质启动
  4. 做磁盘 & 内存镜像
  5. 分析或重装系统

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

  • 是 VPS / 物理机 / 容器
  • 是否已经 root
  • 具体现象(CPU 高?网络异常?)

我可以给你更针对性的命令。

0 踩