![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3OjJWp49-32qAv5RxlhR4kgGZ-rPjgU6zYdi3Z4xxRsviB0yR6nfl3PHluZZSrqCOPYn9c0fvWAiglr8ea35YiBEbAG1La3OHCuYDGcSKf1CRwGlHYUX0KwOt8kd7ch-0fBm0V9asCLzJ/s1600/0.png)
惡意的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 這個外掛:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ05dhHlQg_0iLFSnE3VhuyQoHqHXyuqg8TVug3CwmyxjSHvC-Z-pQ3GuSUxS3t8hdmQcaB2I-q4a9nYAGOkqchCxdMMmjUbr6Sd3ukU3hx2O_vtU3vK4DlaTbnSJsK7tRbwVF0OavRM_k/s1600/1.png)
這個弱點是 Remote File Dislosure Vulnerability,在 OWASP 的定義為 Resource Injection ,我們立即將 config.php 原始擋下載回來:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_nxYiEZ0-GzO31msvTRQha6M4B6pEgWm6HmFJUe6seZx1H7zE1hlXv94wcz-HwbK3cVAV-p0RhqapKVHCyY4Bt4j32eny-Q1Hdk9csIMg2KbzuKzr-mY6cKQaJHT5Nv3kSCURWafoncap/s1600/2-2.png)
用 IDE 開來看,wow, 真的是 config.php,可以拿來分析設定與系統架構:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz2LhZPFvwuwCyhHMk3y8MikfKw6zsWTULTHCOyChy7gHABRIOLlkrTS7lyi1ez0rRayvqhFujY6l-Hw0gT-iJuT57VlpSje4QhOgSz6nl156pcvJ9f93HxEUJ07-OIzuZcl-5UfmK0JaQ/s1600/2-3.png)
接著我用 CodeSecure 掃了兩次,分別是將 register_global 這個設定關閉:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxhL12YcGTTCMkffQpPr-GIrO3g9iGT2ZzE1_LomoMbkRPAyBjp_cyJek715XxfSHREdGIHPQub44epc-minCIyUiti8aOcSFqy-4xDSMMLgUGNpbjlc5fiVAtNGGAzeDDCzVpzlMlQS-/s1600/3.png)
以及開啟:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2MEiP9hPzoi8-FLfO4WCcJ7FOq3-iQLgifn7OmgTsfgUdEqHx6Rm-3XA1ciLUVRdNZI2VdBtYK_yk0V-DG4AMHMTxAZdN8LLGPQ9lZn7pzO8EFeXV_vHnYB0YE9pLd9D0QENhS8AaBAn6/s1600/3-1.png)
都找到跟 dm-albums.php 這個進入點有關的 Resource Injection,其中一條弱點問題追蹤列出如下,很明顯的,至少就有 currdir 這個變數沒有被處理好:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvvpG6HZTEYS1o6lXEjxmnRLva1iy4Dt2D313HJXdN4UvtavBHDdM_tUyJXqLpFWgSgxYGS9emLY37CaS_c8ozgsjNURKmGhUzlKMPcFvdEDz5e-wDmUK4y8IgGIozi_GmNTSZLV5CXRJ/s1600/6.png)
看到弱點這樣多,我真的開始覺得任意瀏覽網站的風險太高了。
以前打 client 端是拿個資、打 server 端是拿主機與 DB,做完就各自結束,但從 5月份的 Gumblar 開始,透過在 WP, Drupal 等 Blog 平台插入 PHP 程式碼的新掛馬手法讓感染來源成指數成長,如果你發現你的部落格的程式碼內出現奇怪的新程式碼,建議趕快用一台乾淨的機器上網改掉密碼並回復所有的 PHP 網頁,然後將受感染的電腦做進一步檢查,詳細做法可參考這篇,若剛好你的部落格也用了不少外掛,建議先搜尋一下有沒有已經被公布的弱點 (關鍵字: "exploit" "vulnerability),然後儘早因應,至少被公開的弱點一定得想辦法剔除。
作者: Walter Tsai 為阿碼科技CTO
0 篇回應 :
張貼留言