搜尋此網誌

2008年12月1日 星期一

Metasploit 初體驗

最近在看Metasploit這個套件,最簡單的說法,Metasploit提供滲透測試者一個整合的環境,進行相關的任務。當然,Metasploit因為提供了良好的擴充性,所以也可以成為安全研究人員研究弱點的工具。而且最重要的是,這是免費使用而且是Open Source的工具。

雖然Metasploit比不上一些商業軟體,提供了高度自動化的滲透測試,但是相對來說彈性就更大。而且執行一個基本的測試,其實也不複雜,大概的流程如下:
  1. 選擇已知的漏洞(Exploit)。
  2. 選擇目標(Target)。這裡所謂的目標並不是哪一台/群電腦設備,而是指定設備的作業系統。因為不同的作業系統有不同的弱點與攻擊方式。
  3. 選擇攻擊的指令內容(Payload)。
  4. 設定其他相關參數(Option)。
  5. 進行測試(Explotation)。有兩種方式,一種是Check,並不會實際進行攻擊行為,所以不會造成被攻擊電腦設備的損害,但是準確性不高,而且不是所有的弱點都可以用此方式加以測試。另外一種是Exploit,也就是真正進行攻擊的行為,不會有誤判的問題,但是不小心可能會把電腦設備搞掛。
當然在執行1之前,我們必須有可能被攻擊目標的清單。除了手動額外執行相關的偵測行為外,更方便的是可以透過與nmap/nessus整合的功能,直接將nmap/nessus檢測的結果作為後續檢測的資料來源。

以下我用一個簡單的例子說明實際的操作方式(使用BackTrack 3.0就內建了Metasploit,而不需要自行安裝):
  1. 使用msfconsole,進入後會顯示版本與其他相關資訊。除了msfconsole外,也提供了msfweb(透過瀏覽器操作)。另外還有msfcli,可以與其他script結合而達到自動化。基本上我喜歡打指令的方式,不過msfweb有搜尋的功能,這部分在msfconsole上並沒有提供。鍵入help可以看到所有的指令。
  2. 選擇Exploits,在例子中我們使用ms04-11 (use windows/smb/ms04_11_lsass) 這個漏洞。這個漏洞主要針對Microsoft Windows 2000與早期的Microsoft Windows XP版本。執行後提示符號也改成相對應的文字。
  3. 查詢包含此漏洞的作業系統 (show targets)。
  4. 設定目標為Microsoft Windows 2000 (set target 1),此主機是我為了測試特別安裝的系統。如果不確定其作業系統,可以設定為自動偵測 (0)。不過我在實際的執行上,發現並不是100%準確,而有時候會影響到測試的結果。
  5. 選擇攻擊的指令,在範例中我們選擇建立一個tcp的連線,並開啟一個shell (set PAYLOAD windows/shell/bind_tcp)。
  6. 查詢其他相關所需的參數 (show options),有些參數為必須設定(Required欄位為yes),有些則可由使用者自行決定。此漏洞需要指定被攻擊電腦設備的IP位址(RHOST),我們設定為192.168.0.14 (set RHOST 192.168.0.14)。
  7. 進行實際的攻擊(exploit),顯示攻擊成功後開啟遠端作業系統的shell。
  8. 執行ipconfig(遠端作業系統的指令),顯示確實為192.168.0.14這台電腦設備。
當然,Microsoft Windows 2000是很早期的作業系統,在一般的環境下比較少見了。但是Microsoft Windows XP SP3呢?大概還是目前佔有率最高的作業系統。同樣透過Metasploit,我們可以攻擊Microsoft Windows XP SP3相關的漏洞。簡單嗎?看下面的範例就知道了。
可怕嗎?也許吧。這類的工具會不斷的進化,不但讓"好人"進行測試的門檻降低,也讓"壞人"進行破壞更加方便。我們該做的,還是做好原本就應該進行的保護措施,例如定期/主動進行更新。有多少人可以做到呢?根據一份報告顯示,只有不到2%的人辦到了。希望你我都是那2%的一份子。

1 則留言:

About