昨天晚上 1 點多緊急處理了下薇曉朵的一個線上產品測試站羣,萬幸的是這個站本身已經準備更換伺服器打算廢棄了。索性沒有造成大的影響,但是測試站點所有 WordPress 主題都被感染了惡意病毒。
原因來自於下面這封安全掃描郵件,在列出了下面的主題資訊清單後,著實把我給嚇到了,幾乎全滅啊,而且全都是主題的 functions.php 功能檔案,實在是太狠了。
睡不著了,趕緊爬起來進伺服器去看了下,發現這些檔案有個共同點就是在去年 2017 年 11 月 25 日被修改過,因為是測試站,所以每款主題的上傳資料時間都是不一樣的,但這麼齊刷刷的時間一定是被執行批量修改導致的。那麼在伺服器網站裡面肯定也是有病毒執行的檔案存在。
後來經過排查我們也找到了惡意檔案和認識了這款惡意病毒,做過清理和排查後,薇曉朵完全刪掉了 3 號主題測試站。這篇文章就以示警戒,另外就是提醒網路安全和 WordPress 安全的防範問題。
1 、 WordPress 病毒 WP-VCD:
此病毒名為 WP-VCD 一般是先被植入到 WordPress 主題和外掛裡面然後被使用者安裝後,就通過 wp-config.php 檔案獲取到資料庫的賬户資訊,再通過將惡意程式碼注入到 MySQL 裡面進行尋找主題配置資訊,一旦找到就執行批量植入到全部主題的 functions.php 檔案內。如下圖:
因為 functions.php( 路徑為 wp-content/themes/你的主題名/functions.php) 是 WordPress 主題最重要的檔案之一,所以很少有小白使用者會去改動此檔案。
2 、 WP-VCD 病毒長什麼樣的:
正常的 WordPress 主題或者子主題都會有幾個必備檔案,簡單説是三個,
- screenshot.png 主題預覽截圖
- functions.php 主題功能檔案
- style.css 主題資訊及樣式表
但被感染的主題可能就會多出下面這些亂七八糟的檔案:
另外在 WordPress 的 wp-includes 目錄裡面還會多出幾個未知檔案:
- wp-tmp.php —— 疑是 javascript 廣告程式碼
- wp-vcd.php —— 有經過加密的程式碼
- feed-rss-put.php —— 疑是 javascript 廣告程式碼
- wp-feed.php —— 全是 IP 資訊
我們開啟其中的一個 wp-vcd.php 可以看到以下內容:
這樣就可以很清楚的判斷這些檔案是惡意病毒了,而且是專門寄生於 WordPress 的,因為是第一次碰到這種情況,我們對 wp-vcd 病毒也不是很熟悉,最開始還是持懷疑態度的。
以為是安全軟體誤報,但因為 WordPress 是完全開發原始碼的,這些加密的 PHP 是病毒無疑,存在於 wp-includes 目錄裡面就是為了掩飾為系統檔案,讓人不敢亂刪掉。
3 、已經中毒要如何解決和處理?
最簡單直接的方式就是刪掉這些檔案,如果你有備份的話,可以把主題備份還原下,如果你的網站已經存在這些檔案可以對照上面列出的檔名稱找到並刪除掉這些惡意 PHP 檔案。
再有就是開啟你網站已經安裝的每款主題的 functions.php 手動刪除掉頭部載入的惡意程式碼資訊,也就是找到並刪掉
//$end_wp_theme_tmp
?>
包含這一段以上的全部程式碼,注意 ?><?php 要把前面的 ?> 也刪掉,不然會導致主題出錯。
4 、病毒從何而來什麼情況下會中毒;
這就要説下現在國外和國內的 WordPress 盜版站問題,始終請你記住一點,免費的才是最貴的,天底下更沒有白吃的午餐。雖然很多站台都是提供免費的破解主題下載,同時也還有很多的資源你可以隨便下載,但這裡面有部分肯定是包含了不懷好意的人植入的惡意程式碼的。
薇曉朵這次的情況經過早上的排查發現,是由於技術員在測試一款新主題時因為有 API key 限制就通過國外網站找到了 nulled 主題後上傳到測試站用完沒管過導致的,索性沒有造成大問題。
對於 WordPress 的安全問題,薇曉朵會在近期整理一篇較為詳細的文章進行講解和説明,如果您需要好好做網站,需要安全放心的主題和外掛的話,可以考慮下我們的數字商城,這些產品上線前都是通過嚴格的測試的,並且國內也只有我們敢做出賠付承諾。