View Categories

WordPress 清完惡意程式又復發?後門常藏在這 5 個地方

< 1 分鐘閱讀

快速答案:會復發,代表上次清的是症狀不是入口。後門最常藏在五個地方:mu-plugins 目錄、uploads 裡的 PHP 檔、被拿來當後門的正常檔案管理工具、核心目錄裡多出來的檔案、以及隱藏管理員或應用程式密碼。五個地方都查完,才能說清乾淨。

為什麼會這樣 #

攻擊者不會只放一支程式。通常是一支「載入器」加一支「酬載」:你刪了酬載,載入器下次執行時把它寫回來;你刪了載入器,排程或資料庫裡的另一段程式再把載入器生出來。更進階的做法是無檔案化——程式碼存在資料庫的 option 或 cron 事件裡,掃檔案永遠掃不到。所以「掃描顯示乾淨」不等於乾淨。

怎麼處理 #

五個必查的地方 #

  1. wp-content/mu-plugins:這裡的檔案會自動載入、後台無法停用、外掛列表也不明顯。很多站長根本不知道這個目錄存在。
  2. wp-content/uploads:這裡只該有圖片和文件,任何 .php 都不該存在。
  3. 被當後門用的正常工具:Tiny File Manager、Adminer、各種 File Manager 外掛。它們本身是合法軟體,所以掃毒不會報警,但攻擊者放進來的版本通常前台就能直接打開、密碼寫死在檔案裡。
  4. 核心目錄:wp-admin、wp-includes 裡多出來的檔案;根目錄的 index.php 或 wp-config.php 被多加一行 include。
  5. 帳號層:隱藏管理員、應用程式密碼、wp_options 裡不認識的排程事件。

處理步驟 #

  1. 比對檔案:wp core verify-checksums 查核心;外掛與官方版本比對;列出最近七天修改過的檔案。
  2. 找到可疑檔案先隔離(搬出網站根目錄)不要只刪,之後要比對用。
  3. 看主機的存取紀錄,找是誰在呼叫那支檔案(IP、User-Agent),在防火牆封掉。
  4. 所有憑證全換:WordPress 管理員、資料庫密碼、SFTP、主機面板。只換其中一種沒用。
  5. 補漏洞:這次是從哪支外掛進來的,就更新或換掉那支。
  6. 觀察 48 小時,看檔案有沒有再生。再生就代表還有載入器沒找到,回到第一步。

我們實際遇過的情況 #

一家客戶早上清完,下午發現後門自己長回來;第二次處置先找到載入器隔離、換掉所有憑證,之後確認未再生。一家企業站我們隔離了 Adminer 和兩套檔案管理器後回報「已處置」,複查時發現漏了一支前台可直接存取、密碼寫死的檔案管理外掛,只好更正早上的回報——這就是為什麼要五個地方都查。

另一家客戶的 mu-plugins 裡有一支帶密碼保護的後門載入器,酬載放在 uploads,還有一個疑似隱藏的管理員。一家客戶被放了好幾支無檔案化的執行器。也有客戶在兩個月內兩次「文章被入侵」,中間改過密碼,沒用,因為入口是檔案層的後門。

什麼時候該找人 #

這篇的每一步都在動檔案系統和資料庫,錯一步正式站就掛;電商站的訂單和會員資料也在同一個資料庫裡。如果你沒有 SSH 和主機紀錄的存取權,能做的其實只有備份和換密碼。

常見問題 #

掃毒顯示乾淨為什麼還會復發? #

載入器和酬載互相再生,或程式碼存在資料庫裡無檔案化,掃檔案掃不到。

mu-plugins 是什麼? #

自動載入且後台無法停用的外掛目錄,很多站長不知道它存在,是後門最愛藏的地方。

找到後門直接刪掉就好? #

先隔離搬出網站根目錄留作比對,再看存取紀錄找來源 IP 封鎖,並把所有憑證換新。

網站正在出這個問題?網站救援當日受理;清乾淨之後想有人每月幫你盯著:網站守護方案