centos疑似中毒了,需要查看隐藏进程怎么办?cpu爆满,ps命令居然失效了,什么都不显示,top命令也看不到主要占据的进程。

centos疑似中毒了,需要查看隐藏进程怎么办?cpu爆满,ps命令居然失效了,什么都不显示,top命令也看不到主要占据的进程。

上午好☀️☀️☀️️
本答案参考通义千问
如果你的 CentOS 服务器疑似中毒,并且发现 CPU 使用率异常高、ps 和 top 命令失效,这很可能是系统被恶意软件入侵,隐藏了进程和系统服务。以下是详细排查和解决步骤:
mpstat 或 vmstat 查看 CPU 使用情况。ls -l /bin/ps
如果发现 /bin/ps 被替换为一个可疑文件(如 /tmp/ps),则说明系统被攻击。
从其他正常 CentOS 服务器拷贝 ps 工具,或从官方源重新安装 procps-ng 包:
yum reinstall procps-ng
strace -f -o /tmp/strace.log ps -e
注意: 此方法会消耗较多资源,适用于紧急排查。
虽然 ps 失效,但 /proc 中仍然保留着进程信息:
for pid in /proc/[0-9]*; do echo $pid; done | grep -v '0' | cut -d/ -f3
重点: 这个命令可以列出所有正在运行的进程 ID(PID)。
然后使用以下命令查看每个 PID 的详细信息:
cat /proc/<PID>/status
注意: 如果某些 PID 不在
/proc中,说明它们已经被删除或隐藏。
yum install -y wget
wget https://www.chkrootkit.org/chkrootkit.tar.gz
tar -zxvf chkrootkit.tar.gz
cd chkrootkit-0.55
./chkrootkit
重点: 该工具可以检测常见的 rootkit 行为,如隐藏进程、修改系统日志等。
dmesg | grep -i "process"
重点: 某些 rootkit 会在内核日志中留下痕迹。
cat /var/log/messages
cat /var/log/secure
重点: 查找异常登录、权限更改、可疑命令执行记录。
crontab -l
ls -l /etc/cron*
cat /etc/rc.local
重点: 恶意程序可能通过这些方式实现开机自启。
find / -name "*hidden*" 2>/dev/null
find / -name "*.*" 2>/dev/null | grep -E "\.so$|\.ko$|\.sh$|\.py$"
systemctl list-units --type=service --all | grep -i "loaded: masked"
重点: 隐藏服务可能通过 systemd mask 来隐藏。
ifconfig eth0 down
tar -czvf backup.tar.gz /path/to/data
重点: 如果系统被严重破坏,最安全的方式是 重装操作系统 或 恢复到干净的备份。
| 工具名称 | 功能描述 |
|------------------|------------------------------------|
| chkrootkit | 检测 rootkit |
| ltrace | 跟踪系统调用 |
| strace | 跟踪进程行为 |
| ps | 显示进程信息(需确保未被篡改) |
| dmesg | 查看内核日志 |
/proc 目录查找隐藏进程如果你能提供更详细的系统信息(如 dmesg 内容、ps 输出、ltrace 结果等),我可以进一步帮助你分析具体问题。