移除惡意軟體 mplugin.php

[lwptoc min=”2″ depth=”3″ hierarchical=”1″ numeration=”decimal” numerationSuffix=”roundbracket” title=”目錄” toggle=”1″ width=”auto” titleFontSize=”100%”]

Mplugin.php是什麼

Mplugin.php 是 WordPress 上的惡意軟體,這個惡意軟體會在偽裝成外掛並在網站偷偷埋藏廣告,還會避免網管察覺(偵測網管IP並設定到 admin_ips.txt檔),若有好心的朋友告訴你網站有奇怪的東西時,可能就要注意中招了。這個惡意軟體雖然不會造成網站嚴重的故障問題,但會影響客戶對於網站觀感及信任,若剛好你是做電商平台的我想沒有人敢在平台下單吧。

惡意軟體是如何被植入的

WordPress  的優點是有很多好用的外掛可以下載使用,但也因為這樣的設計會有人製作夾帶惡意程式的外掛或佈景主題,讓不知情的管理者自己下載安裝導致感染,所以盡量選擇知名或付費的外掛會讓你省去許多麻煩,免錢的最貴就是這個道理,若真的要嘗試新的外掛來安裝,也請找官方網站下載。

如何判斷是否被植入

要判斷是否中招最簡單的方式就是在外掛或佈景主題目錄下找尋特定的檔案

  • mplugin.php (有時也會命名為 cplugin.php 或 ccode.php)
  • admin_ips.txt

有類似 cpanel 的檔案管理介面的人可在 wp-content/plugins 或 wp-content/themes 目錄下查找有沒有 mplugin.php 及 admin_ips.txt。

具有終端機權限的人可在網站根目錄執行以下指令

(Bash) find /path/to/webroot \( -name 'mplugin.php' -o -name 'hello.php' -o name 'cplugin.php' -o name 'ccode.php' \)

請自行將 /path/to/webroot 代換為你的網站根目錄,執行後會回應如下結果
/webroot/wp-content/plugins/admin_ips.php
/webroot/wp-content/plugins/mplugin.php

移除方式

若直接把那個檔案直接刪除是沒用的,這個惡意軟體過一陣子自己安裝回來,大家可參考我以下的處理方式,我自己處理過後到目前為止沒有重新再出現過

STEP 1
在執行之前請務必 做好備份!做好備份!做好備份! 若真的沒有把握請找專業人士處理

STEP 2

用編輯器查看 mplugin.php 內容,可以看到約  33 行的函式會試圖安插這些參數到 wp_options 表,請透過資料庫管理工具用以下 SQL 語法清除

delete from wp_options where option_name in (
'default_mont_options',
'ad_code',
'hide_admin',
'hide_logged_in',
'display_ad',
'search_engines',
'auto_update',
'ip_admin',
'cookies_admin',
'logged_admin',
'log_install'
)

STEP 3
找到 wp_options.option_name = ‘active_plugins’ 的資料進行編輯,將 mplugin.php 的參數刪掉

刪除前
a:13:{i:0;s:43:”better-font-awesome/better-font-awesome.php”;i:1;s:33:”classic-editor/classic-editor.php”;i:2;s:11:”mplugin.php”;i:13;s:29:”wp-mail-smtp/wp_mail_smtp.php”;}

刪除後
a:13:{i:0;s:43:”better-font-awesome/better-font-awesome.php”;i:1;s:33:”classic-editor/classic-editor.php”;i:13;s:29:”wp-mail-smtp/wp_mail_smtp.php”;}

STEP 4
如步驟 3 找到 wp_options.option_name = ‘_site_transient_update_plugins’,刪掉 mplugin.php 參數

刪除前
O:8:”stdClass”:5:{s:12:”last_checked”;i:1659215899;s:8:”response”;a:3:{s:23:”wordfence/wordfence.php”;s:11:“mplugin.php”;s:29:”;wp-mail-smtp/wp_mail_smtp.php”;

刪除後
O:8:”stdClass”:5:{s:12:”last_checked”;i:1659215899;s:8:”response”;a:3:{s:23:”wordfence/wordfence.php”;wp-mail-smtp/wp_mail_smtp.php”;

STEP5
刪除 /wp-content/plugins 目錄下的 mplugin.php 及 admin_ips.txt

最後
定期檢查外掛目錄確認 mplugin.php 及 admin_ips.txt 是否又重新出現,若不再出現表示有成功移除。

建議

有個簡易的程式碼異動偵測是有必要的,若是採自架網站的人可以試著寫腳本程式以 Rsync 比對,發現程式碼異動時就以 Email 通知,若沒有相關資源的人也可考慮使用  Wordfence 外掛做惡意程式碼的掃描,能事先防範也總比起出事再來處理好。

發佈留言

返回頂端