温馨提示×

centos怎么查找隐藏进程

小樊
52
2026-10-20 17:53:44
栏目: 智能运维

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

  • 用户态隐藏:进程名、命令行做了伪装
  • 内核态隐藏(Rootkit):通过 LKM、系统调用劫持等手段,让 ps / top / /proc 看不到

下面按实用程度从常规到进阶说明。


一、常规排查(先确认是不是“假隐藏”)

1. 对比 ps 和 /proc

ps -eo pid,comm | sort -n > /tmp/ps.txt
ls /proc | grep '^[0-9]' | sort -n > /tmp/proc.txt
diff /tmp/ps.txt /tmp/proc.txt

如果 /proc 有 PID 但 ps 没有,说明可能被隐藏。


2. 使用 top / htop

top
htop
  • 观察 CPU、内存异常占用
  • 隐藏进程常仍有资源消耗

3. 查看网络连接(很多隐藏进程会联网)

ss -antp
netstat -antp

看是否有未知 PID 占用端口。


二、使用更底层的工具(绕过用户态隐藏)

4. lsof(查看打开文件/端口的进程)

lsof -i
lsof -n -P

有时能发现 ps 看不到的进程。


5. fuser

fuser -v /var/run/*

查看谁在使用文件。


三、检测内核级隐藏进程(Rootkit)

6. 使用 unhide

yum install unhide
unhide checkbrute
unhide sys

专门检测隐藏进程。


7. 使用 rkhunter / chkrootkit

yum install rkhunter chkrootkit
rkhunter --check
chkrootkit

8. 对比系统调用(高级)

strace -p <pid>

或直接检查:

  • /proc/kallsyms
  • 内核模块:lsmod

四、最强手段(系统已被完全控制时)

9. 从 Live CD / 救援模式启动

  • 不依赖被感染系统
  • 挂载磁盘后检查:
    • /proc
    • /etc/rc.local
    • crontab
    • systemd units

10. 使用外部审计工具

  • Osquery
  • Falco
  • Auditd
auditctl -a always,exit -F arch=b64 -S execve

五、常见隐藏手段(了解敌人)

  • LD_PRELOAD 劫持
  • 修改 ps / top
  • 内核模块隐藏 PID
  • 进程名改为 [kworker] 等

六、建议排查顺序(总结)

  1. ps vs /proc
  2. ss / lsof
  3. unhide
  4. rkhunter
  5. Live CD 审计

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

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 是否已经怀疑中了 Rootkit
  • 是否有异常 CPU / 网络现象

我可以给你更精准的一条龙排查命令。

0 踩