這篇需要 SSH 操作
這篇文章的備份操作需要透過 SSH 連進伺服器執行。還不熟悉 SSH?請先看SSH 連線教學。
某天打開自己的網站,首頁直接跳到賭博網站。
或者沒這麼明顯:後台突然登不進去、Google Search Console 寄來惡意軟體通知、伺服器帳單暴增。
這些都是被駭的訊號。確認感染之後,第一步不是清除——是備份。
內容導覽
判斷感染的 6 個跡象
不是每次被駭都像跳轉色情網站那樣明顯。有些跡象很容易被當成系統問題略過。
後台白屏或無法登入
打開 /wp-admin/ 直接白屏,或帳號密碼沒變卻登不進去。可能是 index.php 被植入惡意程式碼導致 PHP fatal error,也可能是攻擊者改了管理員密碼。
前台出現異常轉址或注入內容
點進網站被導到賭博或假購物網站。或者頁面看起來正常,但滑到底部多了一堆日文或簡體字連結。
這類手法通常只對搜尋引擎或特定 User-Agent 觸發,你自己在瀏覽器直接開可能看不到。試著用 Google 搜尋你的網站,看搜尋結果的描述是不是正常的。
Google 標記為危險網站
瀏覽器跳出紅色警告頁,或 Google Search Console 發了安全性問題通知。到這個階段通常感染已有一段時間,Google 爬蟲先掃到的。
Nginx / Apache error log 出現隨機命名 PHP
伺服器的 error log 裡看到類似這種錯誤:
include(6a609xxxxx.php): failed to open stream那串亂數檔名是惡意程式用 uniqid() 動態產生的暫存檔。是很典型的感染痕跡。
伺服器 Load 異常飆高
CPU 或記憶體突然飆高,但流量沒有明顯增加。可能是被拿去挖礦、發垃圾信、或當跳板攻擊其他伺服器。
DOM 裡出現不明外部 JavaScript
前台看起來正常,但打開 DevTools 的 Elements 面板,發現 <head> 或 <body> 被塞了一段 <script src="https://可疑網域/...">。可能在做 cookie stealing、keylogging、或把訪客導到釣魚頁面。
快速自查清單
- 開無痕視窗訪問首頁,看有沒有被轉址。
- Google 搜尋
site:你的網域,看搜尋結果描述有沒有異常。 - 打開 DevTools → Network 面板,看有沒有連到不認識的外部網域。
- SSH 進伺服器跑
top或htop,看 CPU 使用率。
確認被駭後,第一步:備份
直覺反應是趕快清掉惡意程式。但正確順序是先備份。
備份的目的不是要還原到感染狀態,而是:保留現場證據、萬一清理過程刪錯還有得救、搞清楚攻擊者從哪進來之後才能對症下藥。
打包網站目錄
SSH 進伺服器,把整個網站目錄壓成 tar.gz:
cd /home/runcloud/webapps
tar -czf /tmp/SITENAME-backup-$(date +%Y%m%d%H%M).tar.gz SITENAME/打包時間取決於網站大小,幾十 GB 的站可能要跑好幾分鐘。過程中看到 file changed as we read it 是正常警告,不影響備份完整性。
匯出資料庫
先查資料庫帳密:
grep -E "DB_NAME|DB_USER|DB_PASSWORD" /home/runcloud/webapps/SITENAME/wp-config.php然後用 mysqldump 匯出:
mysqldump -u DB帳號 -p'DB密碼' DB名稱 > /tmp/SITENAME-db-$(date +%Y%m%d%H%M).sql確認備份檔 + 下載到本機
先看備份檔大小,太小代表打包可能有問題:
ls -lh /tmp/SITENAME-*用 SCP 拉回本機。備份留在伺服器上不安全——攻擊者可能還在裡面,一定要下載走:
scp -P 埠號 root@伺服器IP:/tmp/SITENAME-backup-*.tar.gz "本機路徑/"
scp -P 埠號 root@伺服器IP:/tmp/SITENAME-db-*.sql "本機路徑/"幾個容易踩的坑
備份是感染狀態,不是拿來還原的
做完備份有人會想說「那直接還原到上週的乾淨備份就好了」。問題是你不確定攻擊者什麼時候進來的。上週的備份可能已經被感染,只是還沒觸發。
這份備份的功能是保留現場和救援保險,不是還原用。
不要邊掃邊清
看到一個惡意檔案就馬上刪,刪完繼續掃。這樣做的問題是:有些惡意程式會互相監控,你刪了 A,B 會把 A 寫回來。
正確做法是先完整掃一遍,列出所有感染點,然後一次清乾淨。
主機面板的備份不一定可靠
RunCloud、cPanel 的自動備份可能週期是每天或每週,而且備份檔存在同一台主機上。攻擊者若有 root 權限,面板備份也可能被汙染。SSH 手動打包下載到本機是最穩的做法。
備份完之後
接下來要做的是:全站檔案掃描、資料庫掃描、清除惡意程式、重裝核心、清帳號改密碼、收尾加固。每個步驟都有眉角,後面的文章會逐一拆開來講。
貼給你的 AI 用
如果你不確定自己的網站有沒有被駭,把下面這段貼給 ChatGPT 或 Claude,他會引導你檢查:
我的 WordPress 網站可能被駭了。請引導我做初步檢查。
我的環境:
- 主機商:[填入,例如 Cloudways / RunCloud / SiteGround]
- 網站網址:[填入]
請幫我確認以下跡象:
1. 用無痕視窗打開首頁,有沒有被轉址
2. Google 搜尋 site:我的網域,搜尋結果描述有沒有異常
3. 能不能正常登入後台
4. 後台有沒有不認識的管理員帳號
根據我的回答判斷是否需要進一步做 SSH 掃描。如果需要,教我怎麼 SSH 連進伺服器,然後引導我備份網站目錄和資料庫。每一步等我回報結果再繼續。SSH 操作注意事項
SSH 指令送出去就是送出去了,沒有 Ctrl+Z。操作前請注意:
- AI 給的指令,跑之前自己看一遍,確認路徑和檔名是對的再按 Enter。
- 不要整段複製貼上一口氣跑完。一次一個指令,看到結果再下一步。
- 刪除和覆蓋操作不可逆。備份沒做完之前,不要動任何清除步驟。
- 不確定的時候就停下來問。問 AI、問主機商、問會的朋友,都比直接跑好。
SSH 基礎教學請看這篇。


