服务器中挖矿程序该如何清理

juming
juming 正式会员超兽战士
发布于 2026-10-07 08:50 ·1 浏览 ·0 回复

学完这篇,你能在一台被入侵的 Linux 服务器上定位挖矿进程、连根拔掉它的自启项和后门,并做基本的加固收尾。下面按操作顺序来,建议全程用 root 或 sudo 执行。

第一步:确认是不是挖矿,拿到 PID

先看 CPU 占用,挖矿程序的典型特征是某个陌生进程长期吃满单核或多核。执行:

top

进入后按 P(大写)按 CPU 排序,按 1 展开每个核心。也可以直接:

ps aux --sort=-%cpu | head -20

记下可疑进程的 PID、启动用户和命令行。常见名字会伪装成 kworker、[kthreadd]、sysupdate、python3、随机字符串等。

注意:ps、ls、top、netstat 都可能被替换成夹带私货的版本。怀疑时用 rpm -Va(CentOS 7)或 dpkg -V(Ubuntu 20.04)校验系统命令是否被改动,或直接调用绝对路径 /usr/bin/ps aux。

第二步:隔离服务器,别急着删

目的是先掐断它的网络和自启链路,避免边删边被重新拉起。在云控制台(阿里云 ECS 的「安全组」、腾讯云 CVM 的「防火墙」)把出站规则改成只放行 22 端口,或直接在本机执行:

iptables -I OUTPUT -p tcp --dport 3333 -j DROP
iptables -I OUTPUT -p tcp --dport 5555 -j DROP

3333、5555、7777、14444 是挖矿矿池常用端口,也可直接封矿池 IP。

第三步:定位进程对应的文件和网络连接

这一步要拿到「它从哪来、在哪、连着谁」。执行:

ls -l /proc/<PID>/exe
readlink /proc/<PID>/cwd
cat /proc/<PID>/cmdline | tr '\0' ' '
ss -antp | grep <PID>

/proc/<PID>/exe 是程序的真实路径(即使被删了也会显示 (deleted)),cwd 是它运行目录。顺手检查高危目录:

ls -la /tmp /var/tmp /dev/shm

这三个目录是挖矿程序最爱落脚的地方。

注意:如果要做溯源或上报,先把 /proc/<PID>/ 下的 exe、cmdline、maps 打包备份,删完就找不回来了。

第四步:排查所有持久化入口

挖矿程序通常有多个后门,只杀进程会立刻复活。逐项检查:

crontab -l -u root
ls -la /etc/cron.d/ /etc/cron.hourly/ /var/spool/cron/
systemctl list-units --type=service --state=running
ls -la /etc/systemd/system/*.service
cat /etc/rc.local
cat /etc/ld.so.preload
cat /root/.ssh/authorized_keys

重点看:可疑的 systemd 服务、奇怪的 cron 任务(常带 curl | bash 或 base64 串)、/etc/ld.so.preload 里指向的陌生 .so 文件、authorized_keys 里不认识的公钥。同时 cat /etc/passwd 看有没有新增的 UID 0 用户。

第五步:清除进程、文件和自启项

按「先断自启,再杀进程,最后删文件」的顺序做:

systemctl disable --now <恶意服务名>
crontab -r -u root          # 确认 cron 里没有正常业务再执行
chattr -i /tmp/xxx          # 被加了不可删除属性的话先解锁
kill -9 <PID>
rm -f /tmp/xxx /etc/systemd/system/xxx.service
systemctl daemon-reload

chattr -i 很关键,很多挖矿程序会给自己的文件和 cron 配置加 +i 属性,不解锁删不掉。

注意:如果有多个互相守护的进程,先一次性全 kill -9,否则删一个另一个会立刻把它拉起来。

第六步:加固并复查

清理完不等于安全,漏洞入口必须堵上:

  1. 改掉 root 及所有可疑账户密码:passwd root
  2. 打补丁:CentOS 7 用 yum update -y,Ubuntu 20.04 用 apt update && apt upgrade -y
  3. 关闭不必要的对外端口,firewall-cmd --list-ports 或 ufw status 核对
  4. 打开云厂商的主机防护:阿里云「云安全中心 > 主机防护 > 病毒查杀」,腾讯云「主机安全 > 入侵检测」,跑一次全盘扫描
  5. 观察 24 小时:watch -n 5 'ps aux --sort=-%cpu | head -5',看 CPU 是否再次飙高

如果确认数据无价值、漏洞又说不清来源,重装系统比手工清理更可靠。

小结

  • 先确认 PID 和真实路径(/proc/<PID>/exe),别一上来就 kill
  • 清理顺序:断网 → 断自启 → 杀进程 → 删文件 → 加固
  • 必查四处持久化:cron、systemd、/etc/ld.so.preload、~/.ssh/authorized_keys
  • 遇到删不掉的用 chattr -i 解锁,怀疑命令被替换就用 rpm -Va 校验
  • 清理完必须打补丁、改密码、开启云主机防护,否则很快会二次中招
版权声明:本文来自 GJ论坛《服务器中挖矿程序该如何清理》
原文链接:https://www.gj0.com/thread-194.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~