阿碼外傳-阿碼科技非官方中文 Blog: 談談 PHP, WordPress 與掛馬

2009年7月7日

談談 PHP, WordPress 與掛馬



惡意的PDF檔案一點都不是新聞,過去 doc、flash 以及圖片等都已經被大量利用在 PC 的感染中,但前一陣子在日本以及各地頻傳的事件 (1,2) 顯示,才發現一種綜合型的攻擊組合已經出現,也引起我對於了解後面原因的興趣。

我從 client, server 兩個方面來說明:

1. client

這次利用的攻擊瀏覽器方式稱為 JSRedir-R,它其實是一種攻擊方式的通稱,在友廠的分類說明中可以見到它是利用 PDF, Flash/SWF 的漏洞來讓瀏覽器, PDF reader 或 flash player 直接做為下載器 (downloader), 將後續的其他 binary 安裝到執行這個 JSRedir-R 的電腦上,隨後就開始進行自動側錄,這次側錄的通訊協定鎖定 Web hosting 使用者常用的 ftp,為何這麼做呢? 1. 明碼 2. 登入帳號密碼經常1~2個封包就可錄到。

網路上這篇討論描述了這個狀況,節錄如下:

"One of our clients computers was infected with the client-side portion of the virus. It’s a trojan that monitors all FTP traffic, sending the auth details back to the payload server (gumblar.cn).."

2. server: 這次駭客在想甚麼?



約3個月前,就開始有人在WordPress (咱們就簡稱為WP) 論壇上面歇斯底里的求救, "Seriously, I need your help! " ,很明顯的,他遇到了無論登入 wp-admin 後改密碼或是檔案移除,那一段攻擊程式碼都還是會再被自動加回去所有的 index-files,想必夜不成眠吧。

去年,我們監控到 Mass SQL Injection 的大範圍 SQL 注入,分析了原因是攻擊方利用 Google 的強大搜尋找攻擊對象,但這次不一樣,不需要這麼麻煩,這次駭客不辛苦的打 Mass SQL Injection 了,直接從 web 管理員的電腦直接掛馬側錄、傳回 Bot 監控主機、連到目標 ftp server, 接著自動竄改每一個 PHP 網頁,都可以自動化/半自動了, 然後去逛這些 WP, Drupal 網頁的人,都執行了 pdf 與 swf,若沒做自我保護,會繼續受到 JSRedir-R 的感染,然後被側錄,.. 就這樣一直循環下去, oh my goodness!!

慶幸的是,到目前為止,這並還未演變成 server 對 server 的病毒感染事件,否則可以想像機房內的網路、Web主機眾多的virtual host sites 會變成甚麼狀況,不過這跟 Web Hosting 的架構設計有關,這邊就有另外一種狀況。

既然被補上去 WP 與 Drupal 的源碼是 PHP,我開始將注意力轉向 WordPress 的源碼去,開放源碼的壞處就是容易成為下一個目標,事實上我的同事 Wisely 在兩年前就已經用我們內部的工具檢測過 WP 的兩個主要版本了,兩年多下來,我印象中看到針對 WP 本身新弱點的次數並不多,但 WP 畢竟做為全球著名的部落格發行軟體,為了服務廣大的使用者採用了開放式的架構,並有許多對應的外掛被開發出來,然而這些眾多的外掛卻成了另一大隱憂的來源,光在 milw0rm.com 上就至少有數十個 exploit 被公布,我從中取了一個做驗證,ID為 9048 的這個攻擊是利用 DM-albums 這個外掛:



這個弱點是 Remote File Dislosure Vulnerability,在 OWASP 的定義為 Resource Injection ,我們立即將 config.php 原始擋下載回來:



用 IDE 開來看,wow, 真的是 config.php,可以拿來分析設定與系統架構:



接著我用 CodeSecure 掃了兩次,分別是將 register_global 這個設定關閉:



以及開啟:



都找到跟 dm-albums.php 這個進入點有關的 Resource Injection,其中一條弱點問題追蹤列出如下,很明顯的,至少就有 currdir 這個變數沒有被處理好:



看到弱點這樣多,我真的開始覺得任意瀏覽網站的風險太高了。

以前打 client 端是拿個資、打 server 端是拿主機與 DB,做完就各自結束,但從 5月份的 Gumblar 開始,透過在 WP, Drupal 等 Blog 平台插入 PHP 程式碼的新掛馬手法讓感染來源成指數成長,如果你發現你的部落格的程式碼內出現奇怪的新程式碼,建議趕快用一台乾淨的機器上網改掉密碼並回復所有的 PHP 網頁,然後將受感染的電腦做進一步檢查,詳細做法可參考這篇,若剛好你的部落格也用了不少外掛,建議先搜尋一下有沒有已經被公布的弱點 (關鍵字: "exploit" "vulnerability),然後儘早因應,至少被公開的弱點一定得想辦法剔除。

作者: Walter Tsai 為阿碼科技CTO

0 篇回應 :

張貼留言