WordPress被駭遭綁架,對部落客而言,欲哭無涙

常聽說電腦被綁架要付贖金解毒,網站被綁架呢?wordpress被駭遭綁架,對部落客損失最大的莫過於Google掉排名及降低網友的信賴感,如何避免和防範呢?這一篇算是一個比較深度的網路技術文,在網路的新世代裡,可以當作常識看看,了解一下。

小明是一個美食部落客,就這麼突然有一天,要登入網站後台時卻發現,網站會被自動轉址到一個日本的莫名網站上去,接著又試了前台,竟然發現也一樣,此時的小明就有點心荒了,自己的網站到底發生了什麼事,怎麼出現類似被綁架的情況呢?

一般的電腦被綁架,被要求用比特幣支付贖金(因為比特幣有匿名的特性),就會解鎖檔案,已經不是新鮮事;如果今天變成網站被綁架呢?上仟隻程式都被感染病毒,而且這隻病毒通常心機非常重,只單獨還原一支程式還是無效的情況之下,對一個一般純部落客的使用者而言,就算知道如何清除病毒,要處理上仟隻程式可能都要欲哭無淚了~

不過,如果你是租用虛擬主機,主機商只要發現了你的網站中毒或被綁架了,此時主機商的管理者都會收到異常流量的通常,幾乎第一時間就會限制你帳號的網路連線的範圍。

而且,外國人作事通常嚴謹,不會無地放矢,他們會提供一個證據,也就是一份檢查報表,來告知你,你的網站出了什麼問題

http://bitninja.io/incidentReport.php?details=d0da6a7aa47952045c

明明已經關閉了帳號註冊的功能,但竟然還有人可以註冊成功,還是註冊成為管理者,有沒有搞錯啊!而且身為管理者的我,還收到註冊通知信。

接著陸續又註冊了一般使用者帳號,明明就已經關閉註冊的功能了,不是嗎?

還執行了一串看起來就莫名其妙的程式碼,一堆數字的,到底想幹什麼呢?

主機商的警告訊息

接著要你回答一些問題,要求你回報清理的過程,包括:這個問題的來源,如何解決這個問題,後續如何避免…等。

Hey there,    
Just reaching out to see if you've been able to investigate this issue further. At this time we've applied network restrictions to your Linode to prevent further abuse. Once this issue is resolved please remember to answer the following questions:   

1) What was the source of the issue? 
2) What steps did you take to resolve this issue? 
3) What steps did you take to prevent this from occurring again?   

If you have any other questions, please let us know. We're here to help.   

Regards, Mikedaniel Linode Support Team

有人說處理最快速又可以完全清理的方式之一,就是跟windows一樣,重新安裝,但是重點來了,網站的內容無價啊!如果你不知道如何將舊的內容正確的搬到新安裝的程式,那麼以前寫的文章不就毀於一旦嗎?到底有沒有辨法解呢?

病毒就像天機,不可洩漏?

接著讓咱們來仔細瞧瞧這個病毒是怎麼一回事?狠很給它抽絲剝繭,看看病毒檔案到底躲在哪裡?

解毒就像洩漏資訊暗黑世界的天機

特性:感染所有的 index 檔案,包括htm, html, php…等及js檔案。沒有對資料庫做任何變動。

這其中會感染病毒的檔案以 php 最容易被發現,php檔案又以index.php為主要感染對象,不是只感染一支,而是感染全部;相信熟知wordpress的朋友一定知道一件事,wordpress資料夾中的index.php數量非常多,如果安裝的plugins夠多再加上themes,資料夾一多,沒有100個也有200個以上的index.php檔案,且又偏佈在wordpress的各層資料夾當中,處理起來,真的夠資安管理人員吃上一壺的。

接著還沒完,你沒看錯,以為這樣就結束了嗎?現在的軟體病毒,防不剩防,不只是感染index.php;還有更狠的招,是你沒想到,接著更進一步的藏匿自己的行踪,不是像index.php一樣,大剌剌的顯示出自己的本尊,而是使用各式各樣防止追踪的方法,例如,使用 fromCharCode() 這個函數,將一串編碼過的病毒程式增加到所有的 html 和 js 檔案中。

接著我們把這一段javascript解碼一下

令人瞠目結舌的是,病毒有夠狡滑的,裡面又編碼了一層

再解開一次,就發現和index.php中的綁架網址是一模一樣的了

fromCharCode解碼

可以使用 fromCharCode 線上解碼的工具

https://jdstiles.com/java/cct.html

病毒的藏匿處

緊接著我們抽絲剝繭,開始找尋病毒可能的藏身之處,在uploads上傳的資料夾中發現了幾個名稱非常奇怪的資料夾,裡面包括了3個檔案,檔案名稱都是毫無意義的字串。

其中的php程式,將奇怪檔名(t_tZsnViFx)的檔案讀入、解碼再刪除。

打開 t_tZsnViFx 這個檔案後發現,內容很像是一堆亂碼!但從php程式裡可以發現,這一串亂碼其實是用Base64編碼過。

把上面的那一段亂碼再用Base64解碼

程式接著將t_tZsnViFx解碼以後放入 t_tZsnViFx_s 檔案裡;而裡面這些編碼或解碼開的php程式碼,最主要目的,就是混肴視聽,甚到還再次加工把程式碼壓起來(compact),讓人類不容易閱讀。

要檢查的地方其實不止是如此,接著來看看外掛的資料夾。

外掛被安裝了一個很像社群的程式

莫名被安裝了一個外掛super-socialat,但是裡面的檔案名稱怪到一個不行。

打開hjghjerh這個檔案,竟然發現,它的功用就是要找出所有的 js 檔案,把它們全部感染。

厲害的是連管理者帳戶都有辨法新增

解毒方法

看了上述的分析,對於如何解毒和清理病毒應該也有一點點認識了,建議步驟如下:

  1. 將網站打包下載
  2. 本機端解壓縮
  3. 清除 uploads中莫名資料夾
  4. 清除奇怪的外掛程式
  5. 清除所有index.php index.htm index.html中的js程式片段
  6. 清除所有javascript中的js程式片段
  7. 打包上傳

有效的防範方法

安裝防駭plugins

可以安裝一個 security 相關的外掛程式,幫助我們提昇wp網站的安全防禦力。

一個主機帳號一個網站

通常這樣的感染型病毒,會產生連鎖反應,以cpanel為例,會將同一個使用者帳戶裡所擁有的網站全部感染,因為同一個帳號裡所有資料夾和檔案擁有者權限是一樣的,只要在同一個資料夾底下,就全部中槍,想像一畫面,一個wordpress中毒就已經夠麻煩了,現在所有在裡面的全部都中,一定難過想哭,到底我招誰惹誰了。

因此建議一個wordpress網站使用一個帳號來使用,比較符合資訊安全的作業管理規範,就算一個網站中毒了,也無法傳染到其他帳戶中的程式。

勿安裝來路不明的外掛和佈景主題

現在的病毒往往躲藏在你想像不到的角落,例如:javascript ,甚至有時還是編碼過的亂碼,讓你辨識不出來,儘量安裝合法的程式比較有安全保障。

檢查網站是否中毒

https://sitecheck.sucuri.net/

回覆留言

Please enter your comment!
Please enter your name here