服务器替别人挖矿,本质是被入侵了:先断外联、留快照,再按“CPU进程持久化网络连接”四条线排查,清干净后必须改密码、补漏洞,否则几小时内就会复燃。
很多人第一次遇到这事的场景都差不多:半夜收到云监控告警,某台机器CPU连续几小时跑在接近满载,登录上去一看,风扇狂转、页面卡顿,业务响应慢得离谱,这时候别急着kill进程,杀进程只是治标,攻击者留在系统里的定时任务、启动脚本、SSH公钥才是复发根源。
这些迹象说明服务器可能正在替别人挖矿
挖矿木马的特征比很多后门更明显,因为它要持续占用算力。
- CPU或GPU长期高位:业务负载没变,但某个陌生进程稳定吃掉大量核心,且重启后换名字继续出现。
- 电费和云账单异常:物理机表现为功耗上升、机房温度变高;云主机表现为按量计费实例费用上涨。
- 出现陌生外联:服务器主动连接境外IP的3333、5555、7777、14444、45700等常见矿池端口。
- 系统变慢但查不到业务问题:登录延迟、命令执行卡顿、
ssh连接经常超时。 - 进程名伪装:常见伪装成
kdevtmpfsi、xmrig、sysupdate、kthreaddi、dbus-daemon一类看起来像系统组件的名字。
近年来挖矿木马一直是恶意程序里的高发类型(据国家互联网应急中心公开的网络安全态势综述),原因很简单:门槛低、变现快、不需要定向攻击,扫到弱口令就进来。
服务器CPU占用率突然100%怎么排查
按下面顺序走,基本能在半小时内定位到东西。
第一步:用top和ps锁定异常进程
登录后先跑top,按P键按CPU排序,找到可疑PID后执行:
ps -ef | grep <PID> ls -l /proc/<PID>/exe ls -l /proc/<PID>/cwd
/proc/<PID>/exe指向的是进程真实可执行文件,很多挖矿程序会删掉源文件运行,这里会显示(deleted),这本身就是强信号,再看/proc/<PID>/cwd确认它从哪个目录启动。
第二步:看进程的父进程和启动方式
ps -o pid,ppid,cmd -p <PID> pstree -p <PID>
如果父进程是cron、crond、systemd或者某个奇怪的shell脚本,说明它有持久化机制,单杀子进程没用。
第三步:查定时任务和启动项
这是挖矿木马最爱藏身的地方,逐项过一遍:
crontab -l ls -la /etc/cron. /var/spool/cron/ cat /etc/rc.local systemctl list-unit-files --state=enabled ls -la /etc/systemd/system/ cat /etc/ld.so.preload
/etc/ld.so.preload被写入陌生.so文件是典型的动态库劫持,会让你的ps、top看不到真实进程,发现后先记下文件名,别急着删。
第四步:查网络连接,找到矿池地址
ss -antp | grep ESTAB netstat -antp
重点看ESTABLISHED状态里连向境外IP、端口是3333/5555/7777这类非常规端口的连接,拿到对端IP后,可以顺手在防火墙或安全组里拉黑,先止血。
云服务器被挖矿和物理机处理起来有什么区别
处理思路一致,但操作顺序不一样,搞反了会丢证据。
云主机:先快照,再隔离
云服务器最大的优势是有快照和VPC安全组,发现中招后,第一步做系统盘快照,保留现场;第二步在安全组里只放行你自己的办公IP,把22端口对公网关掉;第三步再登录清理,涉及简米云ECS被植入挖矿木马怎么清理这类场景,直接在控制台用“云助手”下发排查脚本也能省不少时间,注意别急着释放实例,快照和日志是后续判断入侵入口的关键。
物理机:先断外联,别急着重装
物理机没有安全组,最直接的动作是拔网线或在下游交换机上做端口隔离,但不要立刻关机,内存里的进程信息、/proc下的证据、当前的网络连接,关机就没了,先ssh进去把ps、ss、crontab输出重定向保存到本地,再考虑重装,北京服务器被入侵挖矿应急处理这类需要现场支撑的情况,通常也是先做证据固定,再做系统重建。
阻止复燃:清理和加固的顺序别搞反
行业共识认为,挖矿清理失败的原因多数不是杀不掉进程,而是加固没跟上,推荐顺序:
- 阻断外联:防火墙拉黑矿池IP段,安全组收紧入站规则。
- 清理持久化:删除恶意cron条目、systemd服务、
rc.local里的启动命令、authorized_keys里的陌生公钥、ld.so.preload里的劫持项。 - 杀进程并删文件:
kill -9之后,把/proc/<PID>/exe对应的真实路径文件删除,注意检查/tmp、/dev/shm、/var/tmp这三个目录。 - 改所有口令:root、业务账号、数据库、Redis、SSH密钥全部换掉,挖矿木马常伴随凭据窃取。
- 补漏洞:确认SSH没开密码登录、Redis没暴露公网、Web应用没上传漏洞,该打补丁打补丁。
- 观察24小时:
top和ss再盯一天,确认没有新进程和新外联。
如果只做了第3步没做第1、2、4步,基本等于白干。
服务器被挖矿找安全公司处理大概多少钱
价格没有统一标准,通常按台数、工时和是否涉及数据泄露来计费,市面上单台轻量清理多在数千元级别,批量中招或需要取证溯源的上探到万元级也常见,影响报价的主要是这几点:
- 中招规模:单台还是整个网段,是否已经横向移动。
- 是否需要溯源:只清理 vs 要查清入侵入口并出报告。
- 业务连续性要求:能否停机,是否需要边清理边保业务。
- 合规要求:金融、医疗类客户往往需要正式的事件报告。
| 处理方式 | 时间成本 | 费用 | 适用场景 |
|---|---|---|---|
| 自己按流程排查 | 半天到两天 | 基本为零,主要是人力 | 单台中招、有运维能力、无敏感数据 |
| 找安全服务商 | 通常1至3天 | 数千到万元级 | 多台中招、需要溯源报告、业务不能长时间停 |
| 直接重装系统 | 数小时 | 低,但可能丢数据 | 无重要数据、有完整备份、能接受业务中断 |
需要提醒的是,重装系统不等于安全,如果入侵入口是公网暴露的Redis或弱口令SSH,重装后不做加固,几天内还会再中一次。
日常怎么把挖矿挡在门外
- SSH只开密钥登录,禁用root直接登录,改默认端口只是辅助,不是核心。
- Redis、MySQL、Docker API不要暴露公网,必须暴露就加白名单和认证。
- 及时打补丁,尤其是Web中间件和框架的远程命令执行漏洞。
- 装个轻量HIDS或云厂商的主机安全 agent,CPU异常和可疑进程能提前告警。
- 定期检查cron和authorized_keys,这两处是挖矿最爱的落脚点。
关于服务器被当矿机的常见问题
服务器被当矿机,数据会被偷吗?
有这个可能,挖矿木马常和凭据窃取、反弹shell一起投递,攻击者既然拿到了执行权限,读配置文件、导出数据库的门槛并不高,发现中招后除了清理,建议同步检查数据库账号、API密钥、对象存储凭证是否外泄。
挖矿进程删了又出现是什么原因?
几乎可以确定是持久化没清干净,按cron、systemd、rc.local、ld.so.preload、authorized_keys五项逐个排查,另外检查是否有恶意容器或计划任务藏在其他用户下,crontab -l -u <用户名>也要看。
云厂商能帮我清理挖矿木马吗?
云厂商的安全产品可以提供告警、隔离和快照能力,但系统内部的进程清理和漏洞修复仍需要用户自己完成,除非购买了对应的安全托管服务,入侵责任在用户侧的配置和补丁,这一点在云服务协议里通常写得很明确。