服务器被植入挖矿木马后的入侵排查与应急响应实战记录 核心要点图解,挖矿木马常伪装成系统进程,通过CPU占用和网络连接异常可快速定位。;排查需检查进程、网络、定时任务、启动项及文件完整性。;清除时先隔离主机,再终止进程、删除文件、清理持久化后门。;修复漏洞并加固SSH、防火墙和监控是防止复发的关键。
服务器被植入挖矿木马后的入侵排查与应急响应实战记录 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 挖矿木马常伪装成系统进程,通过CPU占用和网络连接异常可快速定位。
  • 排查需检查进程、网络、定时任务、启动项及文件完整性。
  • 清除时先隔离主机,再终止进程、删除文件、清理持久化后门。
  • 修复漏洞并加固SSH、防火墙和监控是防止复发的关键。

凌晨收到告警:一台线上服务器CPU持续跑满,SSH登录缓慢,业务响应超时。登录后top显示一个名为kdevtmpfsi的进程占用300% CPU——这是典型的挖矿木马症状。面对突发入侵,如何快速排查、清除并加固?本文基于真实应急响应过程,整理出一套可复用的操作流程与命令清单,帮你从发现到根除,最大限度减少业务损失。

一、异常现象与初步判断

挖矿木马的核心特征是消耗大量计算资源。常见现象包括:CPU使用率异常飙升、服务器风扇狂转、业务响应变慢、SSH连接困难、出现陌生进程或网络连接。通过以下命令快速确认:

top -c  # 查看CPU占用最高的进程
ps aux --sort=-%cpu | head -20  # 按CPU排序显示进程
netstat -antp | grep ESTABLISHED  # 查看已建立的网络连接

若发现进程名随机(如kdevtmpfsi、sysupdate)或伪装成系统进程但路径异常(如/tmp/...),基本可判定为挖矿木马。同时检查/tmp、/dev/shm等临时目录是否有可执行文件。

二、深入排查:进程、网络与持久化

1. 进程与文件定位

确定恶意进程PID后,查看其完整路径和打开的文件:

ls -l /proc/<PID>/exe  # 查看进程可执行文件路径
lsof -p <PID>  # 查看进程打开的文件
cat /proc/<PID>/cmdline  # 查看进程命令行

删除恶意文件前先备份样本(如cp /proc/<PID>/exe /root/backup/),便于后续分析。然后终止进程:kill -9 <PID>。

2. 网络连接分析

挖矿木马需要连接矿池,通过netstat -antp或ss -antp查看异常外连,常见矿池端口包括3333、5555、7777、14444等。使用iptables或firewalld临时封禁这些IP和端口,阻断通信。

3. 持久化机制排查

攻击者通常会留下后门确保木马重启后依然运行。必须检查以下位置:

  • 定时任务:crontab -l(所有用户)、/etc/crontab、/etc/cron.*/、/var/spool/cron/
  • 系统服务:systemctl list-unit-files --type=service,检查/etc/systemd/system/下可疑服务
  • 启动脚本:/etc/rc.local、/etc/init.d/、/etc/profile.d/
  • SSH后门:~/.ssh/authorized_keys是否有陌生公钥
  • 动态链接库劫持:cat /etc/ld.so.preload是否指向恶意so文件

使用find / -mtime -7 -type f -name "*.sh"查找近期修改的脚本,辅助发现异常。

三、清除与恢复:分步操作指南

确认所有恶意项后,按以下步骤清除:

  1. 隔离主机:断开网络或通过防火墙限制出入站,防止横向移动。
  2. 终止进程:kill -9 <PID>,若进程自动重启,先清除持久化项。
  3. 删除文件:移除恶意可执行文件、脚本及配置文件,注意检查/tmp、/var/tmp、/dev/shm。
  4. 清理持久化:删除恶意crontab条目、systemd服务文件、启动脚本中的注入代码,移除authorized_keys中的陌生公钥,清空/etc/ld.so.preload。
  5. 修复漏洞:根据日志分析入侵入口(如Web漏洞、弱口令),更新补丁、修改密码。
  6. 重启验证:重启服务器,再次检查进程、网络连接和持久化项,确保无残留。

清除后使用rkhunter或chkrootkit进行扫描,确认无rootkit隐藏。

四、加固与防护建议

防止再次被入侵,需从边界到主机层层加固:

  • SSH安全:禁用密码登录,使用密钥认证,修改默认端口,限制访问IP。
  • 防火墙策略:仅开放业务必要端口,默认拒绝所有入站。
  • 定期更新:及时修补系统和应用漏洞,尤其是Web中间件。
  • 监控告警:部署进程监控和网络流量分析,对异常CPU、外连行为实时告警。可借助AegisX的入侵检测与漏洞管理能力,实现持续安全监控。
  • 备份与恢复:定期备份关键数据,并确保备份离线存储。

五、应急响应检查清单

检查项命令/位置确认要点
恶意进程top, ps auxCPU占用高、路径异常
网络连接netstat -antp外连矿池IP/端口
定时任务crontab -l, /etc/cron.*陌生下载或执行命令
系统服务systemctl list-unit-files可疑服务名或路径
启动脚本/etc/rc.local, /etc/profile.d/注入的恶意代码
SSH后门~/.ssh/authorized_keys陌生公钥
预加载库/etc/ld.so.preload指向恶意so文件

行动建议:立即对线上服务器进行一轮安全排查,重点关注CPU异常和陌生外连。若发现挖矿木马,按上述流程清除并加固,同时考虑引入专业安全工具进行持续防护,避免业务中断和数据损失。

常见问题(FAQ)

服务器CPU占用突然100%,怎么判断是不是挖矿木马?

首先使用top或htop查看CPU占用最高的进程,若进程名可疑(如随机字符串、伪装成系统进程但路径异常),则高度怀疑挖矿木马。进一步用ps aux确认进程完整路径,用netstat或ss查看该进程的网络连接,若连接到矿池地址(常见端口3333、5555等),基本可确定。同时检查/tmp、/dev/shm等目录是否有异常可执行文件。

发现挖矿木马后,第一步应该做什么?

立即隔离服务器,断开网络连接(物理断开或防火墙封禁),防止木马继续通信或横向扩散。然后备份关键数据,但不要备份可疑文件。接着使用top、ps、netstat等命令收集证据,记录进程PID、网络连接、文件路径等信息,为后续清除和溯源做准备。切勿直接重启,以免丢失内存中的证据。

如何彻底清除挖矿木马的持久化机制?

挖矿木马常通过定时任务(crontab)、系统服务(systemd)、启动脚本(rc.local)、SSH公钥、LD_PRELOAD劫持等方式持久化。需检查所有用户的crontab(crontab -l -u username)、/etc/crontab、/etc/cron.*目录,检查systemctl list-unit-files和/etc/systemd/system/,检查~/.ssh/authorized_keys,检查/etc/ld.so.preload,并排查所有最近修改的文件。清除时逐一删除恶意项,并重启相关服务。

清除挖矿木马后,如何防止再次被入侵?

首先修复入侵入口,如更新Web应用漏洞、修改所有弱口令、关闭不必要的端口。然后加固SSH(禁用密码登录、修改默认端口、限制IP),配置防火墙只允许必要端口,安装防病毒软件或HIDS进行监控。定期检查日志和异常进程,建立安全基线。建议使用AegisX等工具进行持续安全监控和漏洞管理。