7 月 17 日 WordPress 推送了 wp2shell 漏洞鏈的修補更新。更新核心是把門鎖上,但如果攻擊者在你鎖門之前就已經進來了呢?
建了假帳號、埋了後門、在資料庫留了痕跡。光更新不會清掉那些東西。
Eye Security 做了一個免費外掛 Compromise Scanner for wp2shell,專門檢查這組漏洞鏈留下的攻擊痕跡。
內容導覽
這個外掛做什麼
唯讀的鑑識工具。不會改你網站上的任何東西。
它讀取資料庫和外掛目錄,比對已知的 wp2shell 攻擊痕跡,用加權評分給你一個結論。它不修補漏洞(修補要靠更新核心),也不清除惡意程式(清除需要另外處理,或找專人協助)。
它檢查哪些痕跡
oEmbed 快取異常
wp2shell 利用 oEmbed 渲染做為寫入原語。攻擊過程會產生異常的 oembed_cache 記錄:指向自己網站的 embed、數量剛好三筆、建立時間落在漏洞揭露日期附近。
資料庫物件異常
parent ID 高得不合理的文章、已知 PoC 標題或 slug、漏洞揭露後才出現的 customize_changeset。
帳號異常
公開的攻擊程式碼會建帳號名 wp2_ 開頭、email 用 @wp2shell.invalid。也會檢查漏洞揭露後建立的非原始管理員帳號。
刪除帳號的殘留
有些攻擊者會「建帳號 → 做完事 → 刪帳號」試圖滅跡。但 wp_usermeta 可能殘留孤立 metadata,wp_users 的 ID 序列會出現缺口。
Webshell 檔案
外掛目錄裡有沒有 wp2shell_* 命名的檔案或目錄。
怎麼用
到 WordPress.org 下載 ZIP,然後到後台 → 外掛 → 安裝外掛 → 上傳 → 啟用。啟用後左側選單會出現「Compromise Scanner for wp2shell」,點進去按「Run scan」就可以了。
通常不到一分鐘就掃完。掃描頁面上有「Remove this plugin」,可以一鍵移除。
結果怎麼看
加權評分三個等級
No indicators(低於 25 分)→ 沒找到已知痕跡,初步排除
Some indicators(25–49 分)→ 有部分吻合,可能誤報,需人工確認
Multiple indicators(50+ 分)→ 多項吻合,強烈建議進一步調查
No indicators:確認核心已更新就可以了。但要注意,這只代表「沒找到這種特定攻擊的痕跡」。
Some indicators:建議逐一檢視每個命中項目。最近剛好有新增管理員?那帳號異常可能是誤報。最近用 oEmbed 嵌入過自己的內容?那 oembed_cache 異常可能是正常行為。排除合理原因後仍有解釋不了的項目,就該認真調查。
Multiple indicators:建議用「Export report (.zip)」下載報告,裡面有原始資料庫記錄。接下來需要走完整的清除流程:備份 → 掃描 → 清除 → 核心重裝 → 清帳號改密碼洗 salt → 加固。
幾個提醒
建議先更新核心,再裝掃描外掛。站還沒更新到修補版本就裝掃描器,掃出來的結果還沒看完,攻擊者可能又從同一個漏洞打進來。先封洞口,再檢查有沒有已經被打過。
掃完之後建議移除。這是鑑識工具,不是常駐的安全外掛。留著用不到的外掛只會增加攻擊面。
如果管理多個站,每個都手動裝外掛會比較慢。Eye Security 在 GitHub 上有命令列版本的掃描工具,可以透過 SSH 批次執行。
這個外掛只檢查 wp2shell 這一種攻擊。如果網站是被其他漏洞打進來的(過期外掛、弱密碼),它掃不到。通用的安全掃描還是需要 Wordfence、Sucuri 這類工具。


