如果後續想接收本站有關網站架設網站資安優惠活動等訊息
您可以透過以下表單留下您的電子郵件信箱來訂閱我們的電子報

網站被駭救援教學:6 個步驟清除惡意程式

WordPress 網站被駭嗎?網站被駭要如何救援?只要您照著這一篇文章的 6 個步驟,就可以讓你的網站迅速回復到正常狀態。全部的過程只要使用主機後台的 cPanel 介面來操作,不需要專業的知識就可以達成。回復之後的被駭原因分析再請有專業背景的資安專家協助修補漏洞,這樣您的網站就能繼續高枕無憂供你使用。

被駭的 WordPress 網站檔案

首先說明一下這個救援過程的需求來源:

就在兩年前還在春節假期當中 (2022/02/06),一位臉書朋友用私訊敲我請求協助,說她幫忙設計的一個 WordPress 網站應該是被駭了,因為網站不管是後台還是前台都被指向一個惡意的網址。聽完她的說明就請她提供主機後台的 cPanel 帳號及密碼幫她看一下,果然是被駭客入侵上傳許多的 .php 程式檔案,而且在原來的每個 WordPress 程式檔案加入了一段程式碼來佔用這個網站。

看一下檔案被修改的日期是2022/01/11,已經快一個月了,主機商的日常備份檔已經被覆蓋了,所以只能用以下的方法重建網站:

第一步:先備份網站的所有檔案及資料庫

要救援被駭 WordPress 網站的第一個步驟,就是先把網站目前的檔案資料庫備份,然後載下來研究被駭客修改過的部分是哪些?在了解問題所在之後,接下來有兩個選擇:一是使用主機商提供的備份來還原網站(最簡單);二是需要重新安裝一份乾淨的網站,然後逐步加回原先的組件(佈景主題及外掛),讓網站恢復到最初的狀態並解決所有問題。

順便一提的是,當你網站被駭時,有些主機商可能會說是你的網站程式沒有更新到最新版本才會被駭…;但事實上,也有可能是跟你共用主機資源的其他網站裡面,有惡意的駭客也在其中,他們可能透過主機權限的漏洞來感染你的網站,基本觀念可以參考【2024】3 種網站主機比較:虛擬主機、VPS主機、雲端主機

在這種敵暗我明的危險情況之下,搬家到可以信任的主機代管商才是更長久安全的解決之道。而高登工作室也有提供 網站主機租用/代管 的服務,跟網站主討論後的處理方案決定為:回復被駭的網站檔案之後,也搬來更安全的高登工作室主機。

於是馬上開始以下的救援過程:

網站被楚救援

備份WordPress網站所有檔案

  • 首先登入網站主機後台 cPanel 控制面板
  • 找到「檔案」分類裡面的[檔案管理員]
  • 左邊的資料來選到「pulick_html」,右邊看是否有顯示「.htaccess」檔案?
  • 如何沒有則點撃右上角的齒輪[設定],勾選[顯示隱藏檔案],然後按[儲存 Save]
  • 點擊第二列選單的[全選]
  • 然後資料夾只保留選取「wp-admin」、「wp-content」「wp-includes」三個,檔案則是全選
  • 點擊第一列選單最右邊的[壓縮]
  • 「壓縮類型」選[Zip封存],然後右邊捲軸拉到最下面設定一個夠隨機自己又能記住的檔名,例如:「2024520gogogo.zip」最後按下[壓縮檔案Compress Files]
  • 等一下子會出現「Compresion Results」視窗,如果沒有錯誤按[Close]關閉
  • 找到壓縮好的檔案「2024520gogogo.zip」點一下,再按第一列選單的[下載]儲存到你的電腦備用
  • 最後記得馬上[刪除]剛才建立的壓縮檔,刪除的時候勾選[略過垃圾桶,並永久刪除檔案]
  • 這樣就完成網站所有檔案備份了
網站被楚救援

備份WordPress網站資料庫

  • 以下步驟是使用 cPanel 面板備份網站資料庫流程
  • 在「資料庫」分類點擊[phpMyAdmin]
  • 點擊左邊[你的資料庫名稱]
  • 點擊右邊最上面選單的[匯出]
  • 按下[匯出]按鈕
  • 瀏覽器就會下載「你的資料庫名稱.sql」檔案
  • 這樣資料庫就備份完成

以上是 cPanel 主機後台控制面板的備份方式,如果主機是用其他的圖形化面板應該都有相似的功能;如果沒有主機後台面板,那你可能會需要找你的主機管理員協助。

第二步:研究被駭客修改的部分是哪些?

解壓縮下載好的網站檔案壓縮包

接下來就是最重要的部分:找到網站到底是什麼原因出錯?首先我們把下載回來的檔案壓縮包解壓縮到桌面的一個資料夾裡面,例如「abc.com」這樣的資料夾名稱。

網站被楚救援

由 WordPress 官網下載無毒的原始檔案

再來從 WordPress 官網下載跟您網站原來相同版本的 WordPress 安裝檔案壓縮包,並把它一樣解壓縮在桌面的另一個資料夾,如果您沒有重新命名,資料夾的名稱將會是「wordpress」。

用程式比對兩個版本檔案的差異

然後用像是 WinMerge 檔案比對工具程式比對兩個資料夾裡面每個檔案的差異,這些檔案主要是在原本的網站根目錄「public_html」,以及它下面的「wp-admin」、「wp-content」、「wp-includes」三個資料夾。

除了比對兩個資料夾都有的檔案之外,也要注意 WordPress 官方檔案資料夾裡沒有的、多出來的檔案,那些往往就是被加料的程式;另外也可以注意一下檔案的日期及容量大小,被加料的檔案會有不一樣的日期及大小。

我手上這個案例的症狀就很明顯:所有的檔案日期都是「2022/01/11」,用 EmEditor 檔案編輯器打開就可以看到每個檔案的最前面都被加了一段程式碼。

因為當事人發覺的時候已經時超過一個月的時間,所以也沒有辦法用主機商幫你做的備份檔(如果有的話)還原網站了,所以只能用接下來的方法重新安裝所有乾淨無毒的檔案。

第三步:重新安裝一份乾淨的網站

在原來的主機重裝 WordPress

如果還是要用原來的主機來復原,那要先把整個「public_html」資料夾以下,除了「wp-content/uploads」資料夾以及「wp-config.php」檔案保留之外,其他的檔案全部刪除,才能接續下一步:安裝新的 WordPress 主程式檔案。

在新的主機安裝新的 WordPress

如果是像這次的救援除了解毒之外順便換主機,那就在新主機一樣用 cPanel 後台上傳安裝 WordPress,你也可以用主機商提供的一鍵安裝 WordPress 來安裝,不過那是給安裝新的網站用的方法,一鍵安裝反而更麻煩,所以建議用以下的方式安裝 WordPress:

  1. 首先從官方網站下載最新版本的 WordPress 壓縮檔,用 cPanel 後台介面將壓縮檔上傳到主機的「public_html」裡面,然後使用 cPanel 的解壓縮功能將檔案解開。
  2. 這個時候檔案會是在「wordpress」資料夾裡面,點進去這個資料夾將所有檔案搬移到上一層的「public_html」,然後刪除「wordpress」這個空的資料夾。
  3. 如果你的 WordPress 不是安裝在「public_html」裡面,那就同理把檔案搬移到那個資料夾。
  4. 然後檢查你舊的的「wp-config.php」,確定沒有問題一樣上傳到「public_html」裡面。
網站被楚救援

第四步:裝回原先使用的WordPress佈景主題及外掛

因為我們還沒有匯入資料庫,所以網站不管前台或是後台都只會顯示安裝 WordPress 的頁面,不用緊張接下來我們要先把原先用的佈景主題及外掛安裝回去。

安裝免費版的佈景主題及外掛

但不是用 WordPress 後台安裝哦,如果是免費的佈景主題或是外掛,請由 WordPress 佈景主題目錄 以及 WordPress 外掛目錄 的官方資源庫搜尋,不知道是什麼外掛可以用 「wp-content/themes」以及「wp-content/plugins」裡面的資料夾名稱搜尋,然後下載佈景主題或是外掛的 「.zip」壓縮檔,用 cPanel 後台[檔案管理員]上傳到上述兩個資料夾,再用[解壓縮]把壓縮檔解開成為一個子資料夾。

註:新安裝的 「wp-content」在「themes」會有 WordPress 官方的佈景主題,像是最新的「twentytwentyfour」等以及 28 位元組的「index.php」,而在「plugins」會有「akismet」資料夾、「hello.php」和「index.php」

安裝付費版的佈景主題及外掛

如果是付費版的佈景主題或是外掛,則是要由當初購買的網站重新下載檔案,然後跟免費版的一樣上傳並安裝佈景主題及外掛。安裝付費的佈景主題及外掛要注意到有的開發商會提供兩個版本的檔案給你下載,一個是只有安裝檔案的壓縮檔,一個是包含安裝檔案及說明文件等比較大的壓縮檔,要上傳的是比較小的安裝檔案包,千萬別上傳錯了!

第五步:上傳原來的 uploads 資料夾

接下來把桌面上的「wp-content/uploads」資料夾檢查是否有不應該存在額外的 .php 程式檔,有的話把它刪除,然後把「wp-content/uploads」壓縮成一個「.zip」壓縮檔,一樣用 cPanel 後台[檔案管理員]上傳到主機相同路徑資料夾,再用 cPanel [解壓縮]檔案。

如果是在原主機重裝,那就省略這個步驟,不過一樣要注意有沒有不應該有的 .php 程式碼夾藏在裡面。

第六步:匯入之前備份的資料庫

最後再用 cPanel 後台的「資料庫」分類的[MySQL® 資料庫]建立一個新的資料庫,資料庫名稱及使用者名稱/密碼可能會跟原來主機的不一樣,請你用 cPanel 後台的[編輯]功能打開「wp-config.php」修改設定檔為目前的資料庫名稱、使用者帳號/密碼。再用 cPanel 後台[phpMyAdmin]匯入原先下載的資料庫「.sql」檔案。

最後再更改域名的 DNS 設定讓網站指向新的主機 IP 就大功告成了!

如果是在原主機重裝那就省略第六步驟,除非你的資料庫也有被植入程式碼,那問題就沒有那麼簡單了,這種情況最好找專家協助以免越弄越糟!

網站被駭的救援過程就如同網站搬家

事實上以上的救援被駭網站做法就是從主機商搬網站的過程進化而來的,搬家的過程很簡單,只要備份檔案及資料庫,然後用備份的檔案及資料庫在新的主機回復,然後你再更改 DNS 設定指向新的 IP,這樣就已經完成搬家的作業了。

可能會有人發現,這個流程裡面好像沒有跟網站主人要 WordPress 網站後台的帳號/密碼?事實上並不需要!如果您曾經請主機商幫您網站搬家過,那請您回想一下:當初主機商的工程師有跟您要 WordPress 後台的帳號/密碼嗎?應該沒有吧?

其實您以後網站搬家用這一套方法,又快不用等待,而且真正百分之百把網站搬到新的主機。而網路上教你用什麼外掛或是其他方法事實上都繞遠路的,我會再整理一下發一篇用 cPanel 後台搬家的完整過程,請期待!

為什麼駭客會找上你的網站?

其實以上的救援過程不是整件事情的重點,網站被駭了用主機備份檔復原一下就解決了;真正要去追究的是駭客是如何入侵到你的網站,如何上傳惡意程式檔案到你的網站,甚至有辦法把你的登入帳號替換成他的?如果沒有找出真正的破口,那你一定會在短時間又再度被駭客入侵!

針對這個問題,高登特別再發另一篇文章:駭客為什麼會找上你?好好探討一下各種的原因。如果以上的資訊對您有幫助,那一定要訂閱我們的電子報,電子報會提供你更多這方面的知識。

延伸閱讀

輸入您的信箱訂閱電子報


發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料