跳到主要內容區塊

計資中心電子報C&INC E-paper

技術論壇

網頁主機目錄遊走簡介與防制
  • 卷期:v0030
  • 出版日期:2014-09-20

 

作者:胡 洋 / 北區學術資訊安全中心資安工程師


近期遠通電收網站發生目錄遊走(Directory Traversal)之資安事件,系統重要檔案/etc/passwd遭外洩並公告於網站。此類型之資安事件行之有年,多因管理者權限設定不當或使用未經修補之網頁伺服器軟體導致。期盼藉由本文的說明,能大幅降低此類型攻擊事件。

 

目錄遊走簡介
目錄遊走(Directory Traversal)多為網頁伺服器管理者未將系統目錄設定足夠安全性,使有心人士可以利用特定語法,如../../ ,跨越並跳脫正常網頁路徑,直接存取特定路徑之檔案,這些內容多為系統重要資訊,如Linux系統下包含密碼之/etc/passwd或/etc/shadow等,有心人士取得相關檔案,加以組合與破解,即能取得系統管理者權限。

 

目錄遊走重要案例分析
2014年1月6日遠通電收重要系統資訊外洩,內容遭放置於貼圖網站,貼圖內容如下,1月7日立法委員與各主流媒體爭相報導,成為全台新聞關注焦點。經分析後,發現該外漏之檔案為Linux作業系統之/etc/passwd檔,本檔案與/etc/shadow形成一組對映,真實密碼編碼後儲存於/etc/shadow檔內,本次雖僅被公佈/etc/passwd檔,但很有可能/etc/shadow也遭竊取。

 

Linux 作業系統中的/etc/shadow檔案是用來儲放Linux相關資訊與帳號密碼的檔案,/etc/shadow檔雖將檔案編碼,但仍可使用工具進行破解,如Ophcrack即為坊間知名之密碼破解工具,在取得密碼與管理者帳號後,可進行遠端登入作業,完整控制主機。

 


圖(一)目錄遊走示意圖

 

/etc/passwd 結構:
帳號名稱:密碼:UID:GID:使用者資訊說明:家目錄:Shell

/etc/shadow 結構:
帳號名稱:密碼:最近更動密碼的日期:密碼不可被更動的天數:密碼需重新變更天數:密碼需變更期限前之警告天數:密碼失效日:帳號失效日期:保留

 

如何自我檢查主機是否具有目錄遊走情況
可利用檢測工具DotDotPwn來自我檢查主機是否有目錄遊走之弱點,DotDotPwn是利用Perl所撰寫的目錄遊走掃瞄工具,可至官方Blog下載最新版本(http://dotdotpwn.blogspot.tw/),因為是使用Perl所撰寫,所以必須在本機安裝Perl所需要的編譯器,可至Perl官方網站下載(http://www.perl.org/get.html)。使用ActivePerl或者Strawberry皆可。
因DotDotPwn可使不同地通訊協定進行掃描,所以在使用前,請先至CPAN(http://www.cpan.org/)下載並將下列這些通訊協定模組置於 *:\Perl64\lib中,以便DotDotPwn調度使用。

 


圖(二)模組示意圖

 

而在完成相關環境設定後,可使用cmd來開啟DotDotPwn主程式,”DotDotPwn.pl”,若環境設定成功,可以成功看到歡迎畫面與相關參數設定說明。

 


圖(三)DotDotPwn使用畫面

 


圖(四)DotDotPwn參數設定說明

 

而DotDotPwn基本使用參數如下:
./dotdotpwn.pl -m http -h 192.168.1.1 -x 80 -f /etc/hosts -d 8 -t 200 –s
而關於各參數說明如下:
-m 使用哪種通訊協定進行掃描
-h 欲掃瞄的host主機,可填入IP或domain
-x 透過哪個port與host主機進行連線,Http主機通常指定為80
-f 欲尋找的目錄名稱,可指定重要資料夾名稱進行掃描
-d 設定掃瞄資料夾深度,預設為5,一般可設定為8
-t 設定每次掃描間隔,200為0.2秒一次,一秒內5次
-s 會將本次掃瞄報告儲存於DotDotPwn資料夾下

 

輸入完指令後,會出現確認畫面,請使用者確認指令參數是否正確,正確則鍵入ENTER後開始執行掃描作業(ctrl+c 可中斷掃瞄)。

 


圖(五)DotDotPwn掃描畫面之一

 


圖(六)DotDotPwn掃描畫面之二

 

掃瞄完成後的畫面,可由Total Traversals found項目來確認是否發現目錄遊走弱點

 


圖(七)DotDotPwn掃描結果

 


圖(八)掃描相關紀錄

 

如何預防主機目錄遊走問題
要防禦目錄遊走問題,基本上可概略區分為前端及後端,在前端防禦上,須設定http service可存取之資料夾,限制可存取的資料夾範圍,避免攻擊者透過此弱點越權存取;同時在外部使用者透過網址傳值時,需先行檢查是否內含敏感字元(“..\”,”/..”,”NULL(%00)”,”(%2E)”,”(%20)”,”(%+)”),若傳遞數值包含這些敏感字元,就需於前端過濾,來防範非法路徑跳脫。

 

而後端防禦,則是著重於本機http Service軟體的更新,某些版本的apache Http service存在弱點,可讓外部攻擊者繞過前端程式,直接呼叫apache中部份元件,並透過路徑跳脫字元來進行非法存取,可能造成敏感資料外洩,或者利用取得的敏感資料進行下一次攻擊。故定期修補更新本機http server軟體是非常重要的。也唯有前後端防禦並重,才能徹底防禦目錄遊走攻擊,將風險降至最小。

 

參考資料
[1] Apache HTTP servers Tomcat有容易被Directory Traversal攻擊的漏洞, 行政院國家資通安全會報技術服務中心
http://www.icst.org.tw/NewsRSSDetail.aspx?seq=12138
[2] 最近很熱門的 X通事件,Directory Traversal attack 攻擊, SSORC.tw
http://ssorc.tw/?p=4259