Linux挖矿病毒排查与清除
约 1088 字大约 4 分钟
2026-08-29
服务器 CPU 突然长期跑在 90% 以上、进程名却没见过,是感染挖矿木马的典型症状。入侵者利用弱密码、未授权服务或应用漏洞进入后,植入矿机程序长期占用算力。处理原则:只杀进程没用——它们都带"复活"机制,必须顺着进程找到文件与持久化入口一起清理。
第一步:确认可疑进程
# 按 CPU 排序看最占资源的进程
top -b -n 1 | head -20
# 或使用 ps 直接按 CPU 排序
ps aux --sort=-%cpu | head -10符合这些特征的基本可以判定为挖矿进程:
- CPU 长期 90%+ 且不是自己的业务程序;
- 进程名奇怪(随机字符串、伪装成
kdevtmpfsi、kinsing、xmrig、sysupdate等系统进程名); - 进程的属主是普通用户(如
www、nobody)却在跑高负载任务。
先与业务确认
动手前与业务方确认这些进程不是合法任务(编译、渲染、压测都会吃满 CPU),避免误杀业务进程。资源查看命令的更多用法见Linux资源查看基础命令。
第二步:定位进程文件位置
# 以 PID 12345 为例:查看进程对应的可执行文件真实路径
ls -l /proc/12345/exe
# 查看进程工作目录
pwdx 12345
# 查看进程打开的文件与网络连接
lsof -p 12345 | head -20/proc/<PID>/exe 指向的路径(常藏在 /tmp、/dev/shm、/var/tmp、用户家目录的隐藏目录)就是要清除的矿机本体。
第三步:结束进程并删除文件
# 结束进程(-9 强制)
sudo kill -9 12345
# 删除矿机文件(按第二步定位到的路径)
sudo rm -f /tmp/.xxx /dev/shm/xxx
# 观察 1~2 分钟,确认进程没有自动复活
ps aux --sort=-%cpu | head -5进程很快"复活"说明持久化机制还在运行,进入第四步。
第四步:清除持久化(关键一步)
挖矿木马通常布了多处"复活点",逐项检查并清理:
清理前先备份取证
清理前把可疑任务内容截图或复制保存(如 crontab -l > /tmp/evidence.txt),便于事后分析入侵途径;无法确认的条目先注释而不是删除。
计划任务(最常见的复活点):
crontab -l # 当前用户的定时任务 sudo ls -la /etc/cron.d/ /etc/cron.daily/ /var/spool/cron/ sudo grep -r "curl\|wget\|base64" /etc/cron* /var/spool/cron/ 2>/dev/null删除可疑行;个别木马会锁定任务文件防修改,先解锁再编辑:
sudo chattr -i /var/spool/cron/root。定时任务机制见Cron定时任务。systemd 服务与定时器:
systemctl list-timers --all # 可疑的一次性定时器 systemctl list-units --type=service --state=running | grep -vi "ssh\|nginx\|mysql\|docker"发现可疑服务:
sudo systemctl stop <名称> && sudo systemctl disable <名称>,并删除对应的/etc/systemd/system/<名称>.service。动态链接库劫持(隐藏进程的手法):
cat /etc/ld.so.preload 2>/dev/null该文件存在且指向可疑
.so文件时,清空文件内容(echo -n | sudo tee /etc/ld.so.preload)。SSH 后门:检查
~/.ssh/authorized_keys与/root/.ssh/authorized_keys里是否有不是自己添加的公钥,直接删除对应行。
第五步:堵住入侵入口
不清入口,清完还会再中。按命中概率排序排查:
- 弱密码与爆破:检查
sudo lastb | head -30有无海量失败登录——有就说明被爆破过,按SSH安全加固清单改用密钥登录、安装 fail2ban。 - Redis 未授权访问:6379 端口对公网开放且无密码,是最经典的挖矿入口,检查并整改,参见部署Redis缓存。
- 应用漏洞:Web 程序(尤其老旧 CMS、上传组件)被传马——升级到最新版本。
- 改掉所有密码:系统账号、数据库、面板密码全部更换。
处理不干净怎么办
清理后 CPU 仍异常、进程杀不完或反复复发,说明木马扎根较深(替换系统命令、内核级隐藏),此时:
- 备份业务数据(不要备份可执行文件),重装系统是最干净的方式;
- 重装后先按第五步加固,再恢复业务;
- 重装操作或日志取证可提交工单处理。
系统改坏时的救援手段见进入Linux单用户模式。
