ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

实战办案:一小时内揪出并清除潜伏的 xmrig 算力劫持进程

实战办案:一小时内揪出并清除潜伏的 xmrig 算力劫持进程 实战办案一小时内揪出并清除潜伏的 xmrig 算力劫持进程【免费下载链接】xmrigRandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark项目地址: https://gitcode.com/GitHub_Trending/xm/xmrig服务器 CPU 突然冲上 100%、风扇狂转可业务流量纹丝不动——这是算力劫持利用你的机器偷偷挖矿的典型信号而被劫持的程序十有八九是 xmrig 的恶意变种。xmrig 本身是开源且高性能的挖矿软件支持 RandomX、KawPow、CryptoNight 等算法正因为它跨平台、效率高才常被攻击者改造成挖矿木马植入他人机器。这篇文章适合运维工程师和安全分析师也适合想自己动手排查的进阶用户。读完你可以在 Linux 与 Windows 上独立完成一次发现线索→现场取证→定性分析→溯源→清除→复盘加固的完整办案流程。上面这张截图出自项目仓库 doc 目录是一台机器正常跑 xmrig 的样子。记住几个关键信息版本号 xmrig/5.2.0、矿池 URL、accepted 提交记录、speed 速度、huge pages 100%。这张正常画像就是后面定性的参照物能省一半时间。第一现场CPU 告警来了先别急着杀进程收到告警后第一件事不是 kill而是把现场固定下来保留证据。为什么盲目杀进程会丢掉进程命令行、可执行文件路径这些关键证据更麻烦的是攻击者通常已经把持久化任务写进 crontab 或启动项你杀完进程它几分钟后又原地复活。动手前先对照下表判断是误报还是真异常观察维度正常运行的 xmrig疑似被劫持的恶意变种可执行文件位置固定的安装目录/tmp、/dev/shm、%APPDATA% 等临时目录CPU 占用受 max-threads-hint 限制可配置长期 90%参数被强制改写日志log-file 有输出、可追溯log-file 设为 null无任何日志数字签名官方发布版签名有效无签名或哈希不匹配矿池地址你自己配置的合法矿池境外匿名地址常见 3333/5555 端口⚠️ 注意xmrig 官方默认捐赠比例是 1%写在 donate.h 源码里恶意变种为了隐藏身份常把它改成 0——看到 donate-level: 0 反而要高度警惕。下一步按下面的流程逐步取证三路并行互相印证。现场取证三行命令锁定可疑进程取证分进程、网络、文件三路。无论哪一路先出结果都不要中断另外两路证据链越完整定性越有把握。# ① 进程路按进程名查先看全貌 ps aux | grep -i xmrig # ② 进程路进阶按完整命令行匹配改了进程名的变种也逃不掉 pgrep -af xmrig # ③ 网络路挖矿常用端口 3333/5555 是排查重点 ss -tunp | grep -E :3333|:5555 # ④ 文件路用 PID 反查可执行文件真实路径 ls -l /proc/PID/exeWindows 用户用管理员权限的 CMD 执行对应命令:: 按映像名过滤可疑进程 tasklist /v /fo csv | findstr /i xmrig :: 查看 3333/5555 端口的监听与已建立连接 netstat -ano | findstr 3333 5555效果说明正常情况下这些命令要么无输出要么只有你认识的进程。如果ps结果里出现system32.exe、svchost_x64.exe这种系统名而ls -l /proc/PID/exe显示真实文件在 /tmp 或 /dev/shm基本可以定性为伪装——系统服务不可能从临时目录启动。进阶贴士进程名被改成系统名怎么办 改名只能改进程名改不了真实路径和命令行。用pgrep -af xmrig看完整启动参数再用cat /proc/PID/cmdline读取原始命令行。攻击者通常会把矿池地址写进启动参数一条参数就能锁定证据。定性分析怎么区分官方 xmrig 和恶意变种拿到证据后做三步确认避免误杀自己或同事部署的合法挖矿任务。第一步核对配置文件。找到进程工作目录下的 config.json恶意变种几乎都做三件事donate-level改成 0、log-file设为 null、cpu.max-threads-hint拉到 100。对照项目仓库里的官方默认配置src/config.json差异一目了然。第二步看启动时的捐赠标识。正常版本启动时终端会打印 DONATE 比例官方版本固定显示 1%上图是项目仓库里的旧版截图注意顶部的 DONATE: 1% 字样。恶意变种会把这项改 0 并隐藏该输出。第三步验证数字签名。官方发布的 Windows 版本带有有效签名恶意版本通常没有# PowerShell 下校验文件签名Status 为 Valid 表示可信 Get-AuthenticodeSignature -FilePath C:\可疑路径\xmrig.exe | Select-Object Status效果说明Status 为 NotSigned 或 HashMismatch 时需要高度怀疑。Linux 下可以对二进制计算 SHA256再与官方 release 页面公布的哈希比对。若想拿纯净源码自行编译比对可克隆 https://gitcode.com/GitHub_Trending/xm/xmrig 后本地构建。溯源排查恶意进程是怎么做到开机自启的杀进程只治标不清理持久化让恶意程序开机自启的手段重启后木马会原样复活。按位置清单逐项排查持久化位置Linux 检测命令Windows 检测位置定时任务crontab -l、/etc/crontab、/etc/cron.d/任务计划程序系统服务/etc/systemd/system/ 下可疑 unitHKCU...\CurrentVersion\Run启动脚本~/.bashrc、~/.profile、autostart 目录启动文件夹# 查 crontab恶意挖矿最爱每分钟跑一次 crontab -l cat /etc/crontab # 查 systemd 定时器和新增服务 systemctl list-timers --all grep -rl xmrig /etc/systemd/system/ 2/dev/null # 查 shell 启动文件里被追加的下载执行命令 grep -iE xmrig|curl|wget ~/.bashrc ~/.profileWindows 下重点查注册表自启动项reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run效果说明正常系统里这些位置只应该有你自己认识的内容。出现*/1 * * * * root /tmp/start.sh这类每分钟执行脚本的条目就是持久化铁证记录下脚本路径再处置。清除处置终止进程后为什么还要清三处残留确认无疑后按顺序处置顺序很关键先断网隔离→再清持久化→最后杀进程。顺序反了木马会在被杀前联网重新下载文件。# ① 先停掉定时任务否则杀完进程又被拉起 sudo crontab -r -u 用户名 sudo rm -f /etc/cron.d/挖矿脚本名 # ② 再杀进程 sudo kill -9 $(pgrep -f xmrig) # ③ 最后清理文件与启动项残留 sudo find /tmp /dev/shm /var/tmp -name *xmrig* -ls sudo rm -rf /tmp/.xmrig /var/tmp/.xmrigWindows 下对应操作:: 删除注册表自启动项 reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v xmrig /f :: 强制结束进程 taskkill /f /im xmrig.exe taskkill /f /im xmrig64.exe⚠️ 注意find 与 rm 命令请在隔离环境、确认文件属于恶意程序后执行生产环境操作前务必先备份相关配置避免误删业务文件。效果说明处置完成后重跑第一现场的取证命令进程、网络连接、crontab 应全部归零。再观察 10 分钟CPU 占用应回落到正常基线不再有 3333/5555 端口连接。复盘加固让这台机器以后不再被挖矿清除只是起点加固才能避免同类入侵。分三层做第一层如果你确实需要在自己的机器上运行 xmrig把配置改成可审计状态。对照官方 config.json开启 API 并加密访问{ http: { enabled: true, host: 127.0.0.1, port: 8080, access-token: 替换为强随机字符串, restricted: true }, cpu: { enabled: true, huge-pages: true, max-threads-hint: 50 }, donate-level: 1, log-file: /var/log/xmrig.log }逐项说明access-token 用于限制 API 访问防止他人远程改你的配置restricted 设为 true 禁止远程修改max-threads-hint 把 CPU 占用限制在 50% 以内log-file 打开日志便于日后审计。这样即使再次被入侵行为也会留下痕迹。第二层建立行为监控基线用 Prometheus 或 Zabbix 记录这台机器正常时段的 CPU 平均占用设置连续 5 分钟 CPU 超 90% 且业务流量无增长的告警在 EDR 中加两条规则——禁止向临时目录写入可执行文件、阻断到 3333/5555 等挖矿端口的出站连接。第三层封堵入侵入口。挖矿病毒最常见的突破口是 Log4j 漏洞、Redis 未授权访问、SSH 弱口令逐一升级组件版本、关闭危险配置、更换默认密码从源头堵住。行动清单一次完整办案的自查表收到 CPU 告警后先取证确认前不杀进程用 ps/pgrep、ss、ls -l /proc/PID/exe 记录进程、网络、文件三路证据核对 config.json 的 donate-level、log-file、max-threads-hint 三项Windows 环境验证数字签名 Status排查 crontab、systemd、bashrc、注册表 Run 全部持久化点按断网→清持久化→杀进程→清文件顺序处置处置后复测 10 分钟确认进程与端口归零开启 API 访问控制与日志审计建立 CPU 基线告警与 EDR 出站阻断规则修复入侵入口组件漏洞、未授权服务、弱口令下期预告当 xmrig 以无文件形式只存在于内存、不留磁盘痕迹时传统排查会失效我们聊聊如何借助 eBPF 追踪这类隐蔽挖矿行为。免责声明本文所有检测与处置方法仅限在你有权操作的授权环境中使用未经授权扫描、入侵他人系统属违法行为。扩展阅读默认配置文件src/config.json捐赠逻辑源码src/donate.h官方使用说明README.md、doc/CPU.md【免费下载链接】xmrigRandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark项目地址: https://gitcode.com/GitHub_Trending/xm/xmrig创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表