服务器被植入挖矿进程,如何通过日志追踪?
服务器突然变得特别慢,CPU 占用一直 100%,用 top 命令一看,有个没见过的进程吃了大半个 CPU——十有八九是被植入挖矿程序了。
别慌,下面咱们就从日志入手,一步步找出是谁跑进来的。
准备条件
你需要一台 Linux 服务器(本文以 CentOS 7 为例),并且有 root 权限。
如果你用的是宝塔面板,也能用后台的“文件管理”和“终端”辅助操作。
另外建议先断开外网或关闭挖矿进程的对外连接(比如用 iptables 临时封禁可疑 IP),防止日志不断被覆盖。
第一步:查看系统登录日志,找到异常入口
挖矿程序往往通过弱口令或漏洞进来,第一步要查 /var/log/secure(有些系统是 /var/log/auth.log)。
这个文件记录了所有登录尝试(包括 SSH 爆破)。
# 查看最近 200 条登录失败的记录
grep "Failed password" /var/log/secure | tail -200
如果看到大量来自同一个 IP 的失败记录,说明这台服务器正在被暴力破解。
接着查看成功登录记录:
# 查看最近成功登录
grep "Accepted password" /var/log/secure | tail -50
记下可疑的登录时间、用户名和来源 IP,用来和挖矿进程启动时间对比。
如果你用宝塔,可以在“安全” -> “SSH 日志”里直接看到。
第二步:检查网络连接,找出挖矿通信地址
挖矿程序需要连接矿池才能“赚钱”,找出它在跟谁通信,就能顺藤摸瓜。
# 查看所有活跃的网络连接(仅显示状态 ESTABLISHED 或 SYN_SENT)
netstat -antp | grep -E "ESTABLISHED|SYN_SENT"
或者用更直观的 ss 命令:
ss -antp | grep -v "127.0.0.1"
重点关注连接目标 IP 是否在已知矿池列表(比如 103.x.x.x、198.x.x.x),以及连接对应的 PID 和程序名。
记录下来,下一步会用到。
如果挖矿进程已经停止,可以查看临时日志文件 /var/log/messages 里有没有异常的网络连接记录。
第三步:通过进程和文件定位挖矿程序
用 top 或 htop 找到 CPU 最高的进程,记下 PID。
然后查看该进程的详细信息:
# 查看进程对应的完整命令和路径
ls -l /proc/PID/exe
cat /proc/PID/cmdline
通常挖矿程序的名称会被伪装(比如 systemd、kworker),但路径很可疑,比如 /tmp/、/var/tmp/ 或 /dev/shm/ 下。
用以下命令查找可疑文件:
# 查找最近修改的可执行文件(排除系统目录)
find /tmp /var/tmp /dev/shm -type f -mtime -3 2>/dev/null
找到文件后先别删,复制一份备份,然后结束进程并清理文件:
kill -9 PID
rm -f /tmp/可疑文件名
接着检查启动项和定时任务,防止重启后复活:
# 查看当前用户的定时任务
crontab -l
# 查看系统级定时任务
cat /etc/crontab
cat /etc/cron.d/*
# 检查 /etc/rc.local 和 /etc/systemd/system/ 下的异常 service
🔬 避坑指南
- 不要只杀进程:挖矿程序通常有守护进程或定时任务自启,只 kill 治标不治本。一定要按第三步清理完整。
- 慎用 rm -rf:删文件前用
ls -la确认一下,有些木马会把自身伪装成系统文件,误删可能影响系统。 - 日志被清空怎么办:如果攻击者删除了日志,可以用
last -f /var/log/wtmp查看登录记录,或用ausearch工具(需安装 auditd)检索。 - 挖矿进程藏在内核模块里:极少数情况下挖矿程序会作为内核模块加载,用
lsmod | grep -i crypto检查可疑模块,并用modprobe -r 模块名移除(需先卸载进程)。
效果验证
执行完上述步骤后,用以下命令确认系统恢复正常:
top检查 CPU 占用率不再异常飙升。netstat -antp | wc -l确认连接数恢复正常范围(对外连接数明显下降)。- 24 小时后再次检查登录日志和定时任务,确保没有新进程自动启动。
常见问题
Q:我用了宝塔面板,怎么看日志?
A:宝塔左侧“安全”菜单下有“SSH 日志”和“防火墙日志”,可以直接查看登录记录。另外在“文件管理”中也能直接浏览 /var/log/secure 等日志文件。
Q:挖矿程序没有可执行文件路径怎么办?
A:有些挖矿程序直接通过内存加载,不写磁盘。这时用 lsof -p PID 查看进程打开的文件,或者用 sysdig 等工具抓取网络流量,但新手建议直接重装系统更安全。
Q:清理后仍然反复出现?
A:说明存在漏洞入口(如弱口令、未修复漏洞)。建议全面检查 SSH 密钥、修改所有密码、升级软件版本,必要时使用常用安全工具如 ClamAV 扫描。如果条件允许,备份数据后重装系统是最稳妥的选择。
如果你正在处理服务器被植入挖矿进程的问题,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
记住,日志追踪只是第一步,后续加固系统才能防止二次入侵。