news 2026/8/21 17:43:42

服务器CPU被偷到100%?挖矿木马排查与清除实战手记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
服务器CPU被偷到100%?挖矿木马排查与清除实战手记

服务器CPU被偷到100%?挖矿木马排查与清除实战手记

【免费下载链接】xmrigRandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark项目地址: https://gitcode.com/GitHub_Trending/xm/xmrig

服务器CPU异常飙到100%却找不到原因?这篇文章把挖矿木马排查的完整流程讲透:从发现挖矿进程清理,到阻断持久化,再到系统加固,手把手带你走完一次真实的挖矿病毒应急。文中所有命令、顺序和清单都来自一线实战,你可以直接复制到终端里照做。

第一章 凌晨三点,告警把值班群炸醒了

先说个真实场景。凌晨 3:17,值班手机连响十几声,监控平台弹出红色告警:一台 8 核 16G 的数据库从库 web-03,CPU 占用率连续 15 分钟维持在 98% 以上,load average 从 0.2 一路飙到 42。更诡异的是,当晚业务流量并没有任何增长。

登录服务器后敲下top,满屏的进程几乎全是红的。仔细一看,占用最高的不是 Java、不是 MySQL,而是一堆名字"似曾相识"的陌生进程:kworkersysupd,以及一串随机字母组成的可执行文件。这就是典型的"CPU 被征用"——你的算力正在被偷偷拿去挖矿。

先别急着杀进程。按照下表的症状对照,确认自己处在哪个阶段,再跳转到对应章节处理,这一步很关键:

你观察到的现象常见诱因建议直接看
CPU 长期 90%+,多核一起打满且无业务高峰挖矿进程多线程并行计算第二章
进程名像系统进程,但真实路径在 /tmp、/dev/shm伪装进程 + 文件隐藏第三章
非业务时段仍高频外连陌生 IP矿池通信第二章
杀掉进程几分钟后又自己冒出来持久化/守护进程反复拉起第四章
多台机器同一时间集体异常横向扩散或同源批量入侵第五章

第二章 CPU占用100%排查:从 top 到 /proc 的取证链

确认"CPU 异常"是第一步,接下来要做的是定位"是谁在吃 CPU"。请按下面的顺序逐步执行:

# 1. 按 CPU 占用排序,看清完整命令行 top -c # 或者直接输出快照 ps aux --sort=-%cpu | head -20

你会看到进程名只是表象,top -c会显示完整参数行。接着用/proc文件系统给可疑进程"做体检"——这一步很关键,它能揭开伪装的画皮:

# PID 换成你发现的可疑进程号 ls -l /proc/PID/exe # 符号链接指向真实的可执行文件 cat /proc/PID/cmdline | tr '\0' ' ' # 完整启动参数 readlink /proc/PID/cwd # 进程的工作目录 file /proc/PID/exe # 识别文件类型(ELF 还是脚本)

同时别忘了查网络连接。挖矿进程必须和矿池通信,顺着这条线往往能一击致命:

ss -antp | grep ESTAB lsof -i :5555

请留意:3333、5555、14444、137 是历史上最常被挖矿木马使用的矿池端口,443 常用于加密隧道混淆。如果某个进程频繁连接境外 IP 的这类端口,基本可以实锤。

上图是一份"合法挖矿程序长什么样"的参照样本:界面中会明确显示矿池地址、算法名称(如 rx/0 RandomX)、算力数值(H/s)和 accepted 记录。如果你在服务器上抓到的是这种进程,且确认不是自己部署的,那同样属于被入侵——只是入侵者连伪装都懒得做了。

第三章 挖矿进程伪装识别:sysupd 到底是什么?

回到案例。刚才那个叫sysupd的进程,名字模仿的是 Linux 系统更新守护进程,乍一看人畜无害。但执行readlink /proc/PID/exe之后,真面目立刻暴露:它的真实二进制位于/dev/shm/.X11/sysupd

请留意这个路径。/dev/shm是内存盘,重启即消失,非常适合藏匿可执行文件;隐藏目录名.X11也很有欺骗性。继续深挖还会发现三个疑点:

  • 二进制没有任何数字签名,strings提取后能看到一串矿池地址和donate-level 0参数;
  • 文件时间戳被动过手脚(用了touch -r伪造成年份久远的系统文件);
  • 全程没有日志输出,标准输出被重定向到/dev/null

下面这张对比表,是挖矿进程伪装识别最实用的工具,建议收藏:

对比维度正常服务进程可疑挖矿进程
CPU 占用随业务波动,有低谷有高峰恒定 90%+,24 小时不降
可执行文件位置系统目录或业务目录/tmp、/dev/shm、/var/tmp
进程名与文件名实一致,可签名校验仿冒 kworker/sysupd 等,路径对不上
网络行为内网或已知业务端口高频外连矿池,3333/5555/14444
日志行为有完整日志可追溯无日志或输出丢弃
被 kill 后守护进程按规则拉起被计划任务/服务反复拉起

对照这张更老的挖矿程序界面你也会发现:即便被伪装成系统进程,只要把进程参数、连接目标、文件路径三项一交叉,伪装必然露馅。

第四章 挖矿持久化清理与挖矿病毒清除命令:先拆钉子再拔牙

定位到元凶后,最忌讳的就是直接kill -9——很多新手在这里栽过跟头。挖矿木马几乎都配置了多重持久化机制,进程死了,几秒钟后就会被重新拉起,看起来像"杀不死"。

所以正确的顺序是:先拆持久化,再杀进程,最后删文件

# 第一步:盘点持久化入口 crontab -l # 当前用户计划任务 ls /etc/cron.d/ && cat /etc/crontab systemctl list-unit-files --state=enabled ls -la /etc/systemd/system/ # 找最近新增的 .service cat /etc/rc.local # 开机启动脚本 grep -i 'sysupd\|xmrig' ~/.bashrc /etc/profile.d/* 2>/dev/null

本例中,攻击者一共埋了三处钉子:一个名为systemd-update.service的 systemd 服务、一条每分钟执行的 root crontab,以及/etc/rc.local里的启动行。三处都指向同一个脚本,脚本负责拉起挖矿进程。处置时按下面的挖矿病毒清除命令执行:

# 第二步:逐个拆除持久化 systemctl disable --now systemd-update rm -f /etc/systemd/system/systemd-update.service crontab -r # 或精确删除对应条目 # 第三步:终止进程 pkill -9 -f sysupd kill -9 <PID> # 第四步:清理落盘文件 rm -rf /dev/shm/.X11 /var/tmp/.sysupdate

清剿完成后不要急着收工,重启服务器复查一遍:确认进程不再出现、端口不再监听、计划任务列表干净,才算是真正结束。整体处置链路可以用下面的图概括:

第五章 亡羊补牢:端口、口令、配置三件套加固

清剿只是治标,把后门堵上才是治本。本次入侵的入口,最终追溯到这台机器把 Docker 的 2375 端口(未授权远程 API)暴露到了公网——攻击者直接调用 Docker API 起了一个挂载宿主目录的容器,把挖矿程序送了进来。

加固请按三件套执行:

  1. 端口收敛:2375 这类管理端口绝不监听 0.0.0.0,要么走内网,要么上 TLS 双向认证;用ufw/firewalld把对外端口收敛到白名单。
  2. 口令硬化:排查 SSH 弱口令,禁用 root 直接登录,改为密钥认证,并检查~/.ssh/authorized_keys里有没有被塞入陌生公钥。
  3. 配置防篡改:如果你自己也在运行 xmrig 这类开源矿工程序,别让配置文件裸奔——参考src/config.json中的 http 配置段,开启access-token并设置restricted,防止 API 被未授权读取或改写;算法与接口细节可查阅doc/ALGORITHMS.mddoc/API.md
{ "http": { "enabled": true, "access-token": "替换为强随机字符串", "restricted": true } }

第六章 总结与行动清单

一次完整的挖矿木马应急,本质上就是"发现 → 定位 → 识别 → 清剿 → 加固 → 复盘"的闭环。下面是浓缩后的行动清单,建议打印出来贴在工位上:

发现阶段

  • 收到 CPU 高占用告警,先确认业务是否真的有高峰
  • top -c+ps aux --sort=-%cpu找出异常进程

定位阶段

  • /proc/<PID>/exe读取真实路径,交叉验证进程名
  • ss -antp追踪外连目标,重点盯 3333/5555/14444 端口

识别阶段

  • 对照"正常 vs 可疑"对比表逐项打分
  • 检查文件时间戳、日志行为、数字签名

清剿阶段

  • 先拆持久化(systemd/crontab/rc.local),再 kill 进程,最后删文件
  • 重启复查,确认无复活、无残留监听

加固与复盘

  • 收敛管理端口、加固口令、开启配置文件访问控制
  • 记录本次进程名、矿池 IP、持久化路径,更新监控告警规则

把这份清单沉淀成标准作业流程,下次哪怕换个马甲再来,你也能在十分钟内把它按回去。

【免费下载链接】xmrigRandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark项目地址: https://gitcode.com/GitHub_Trending/xm/xmrig

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 17:41:16

5分钟上手猫抓:网页视频下载工具的保姆级使用指南

5分钟上手猫抓&#xff1a;网页视频下载工具的保姆级使用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓&#xff08;cat-catch&#xff…

作者头像 李华
网站建设 2026/8/21 17:41:16

让Zen Browser告别卡顿:6个内存瘦身技巧,多开标签也不怕

让Zen Browser告别卡顿&#xff1a;6个内存瘦身技巧&#xff0c;多开标签也不怕 【免费下载链接】desktop Welcome to a calmer internet 项目地址: https://gitcode.com/GitHub_Trending/desktop70/desktop 深夜赶工的你正开着15个标签页&#xff0c;视频会议软件在后台…

作者头像 李华
网站建设 2026/8/21 17:39:57

HWID 硬件 ID 欺骗怎么做?SecHex-Spoofy 新手上手指南

HWID 硬件 ID 欺骗怎么做&#xff1f;SecHex-Spoofy 新手上手指南 【免费下载链接】SecHex-Spoofy C# HWID Changer &#x1f511;︎ Disk, Guid, Mac, Gpu, Pc-Name, Win-ID, EFI, SMBIOS Spoofing [Usermode] 项目地址: https://gitcode.com/gh_mirrors/se/SecHex-Spoofy …

作者头像 李华
网站建设 2026/8/21 17:39:28

免费NCM转MP3:ncmdump把网易云加密音乐还原成通用MP3

免费NCM转MP3&#xff1a;ncmdump把网易云加密音乐还原成通用MP3 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 下载的歌拷进车载U盘&#xff0c;屏幕弹出一句"无法识别"。文件没坏&#xff0c;.ncm 是网易云私有加密格式…

作者头像 李华