Metasploit Framework基礎介紹及下載
緩沖區溢出好比是正常情況下,容積為1升的杯子最多只能盛1升的水,但是當我們將3升的水倒入一個這個只有1升的杯子里時,可想而知,多出來的部分會溢出杯子,灑到桌上甚至滿地都是。計算機也是一樣,當黑客向緩沖區內填充數據,而數據長度超過了緩沖區本身的容量后,數據就會溢出存儲空間,裝不下的數據則會覆蓋在合法的數據上,導致程序的出錯乃至崩潰,這就是緩沖區溢出原理。但是,如果緩沖區僅僅溢出,這只是一個問題。到此時為止,它還沒有破壞性。但如果說能夠精確地導入事先準備好的水時,比如1.325升水,那么溢出來的也就是0.325升水。
黑客們用精心編寫的攻擊代碼使得操作系統或者應用程序等出現緩沖區溢出,由于是事先已經精確定義,所以也將會導致黑客們想要得到的結果,比如死機、重啟、獲取Rootshell、下載木馬等。此時的系統或者程序已經完全被黑客們所操縱了。
◆關于Metasploit3
作為緩沖區溢出攻擊工具,鼎鼎有名的就是Metasploit Exploitation Framework,簡稱為Metasploit。Metasploit Framework (MSF)是2003 年以開放源代碼方式發布、可自由獲取的開發框架,這個環境為滲透測試、shellcode 編寫和漏洞研究提供了一個可靠的平臺。它集成了各平臺上常見的溢出漏洞和流行的shellcode,并且不斷更新,最新版本的MSF 包含了180多種當前流行的操作系統和應用軟件的exploit,以及100多個shellcode。作為安全工具,它在安全檢測中起到不容忽視的作用, 并為漏洞自動化探測和及時檢測系統漏洞提供有力的保障。目前最新版本為Metasploit3,在BT4下面默認已經安裝。這款工具是免費的,最早在2005年Black Hat全球黑客集會上公開,經過長時間的發展,已經被譽為緩沖區攻擊平臺。
該工具通過加載預先制作好的緩沖區溢出代碼包,定義細化的溢出種類,來達到組建多種不同類型溢出攻擊工具共存的統一攻擊平臺。在其網站提供了詳細的參數及相關文檔說明,同時該工具提供Windows和Linux兩種版本,大家可以根據需要下載對應的安裝版本按默認安裝即可。
官方下載地址:http://www.metasploit.com/framework/download/
在BackTrack4 R2 Linux下,我們可以通過以下步驟打開Metasploit3。點選菜單上的"BackTrack"---"Penetration"--- "Framework Version3",就能看到Metasploit3所有的子工具。菜單展開后如下圖-1所示。
圖-1#p#
◆Metasploit3的升級
Metasploit會不定期更新可利用的漏洞程序,可以通過Online Update來進行升級。所以在使用前,應養成習慣先升級Metasploit3的攻擊代碼庫。打開任意一個Shell,輸入msfconsole回車或者點選上圖所示菜單中的"msfconsole",就可以看到當前包含的代碼數量,如下圖-2所示,我們可以看到這樣的提示:"379 exploits",即379個攻擊代碼。
圖-2
下面開始進行升級操作,有兩種方法或者說是有兩個命令都可以用來進行升級更新操作,具體如下:
方法1:
先進入到Metasploit3的目錄下,即/pentest/exploits/framework3/下,輸入命令如下:
./svn-update.sh
回車后,稍等片刻,就能看到如下圖-3所示的升級界面,會有大量的文件被下載并放置在當前目錄下,我們可以在當前界面中看到具體的升級狀態。
圖-3 #p#
稍等片刻后,升級完成,就會提示我們新的版本號,如下圖-4所示,升級完畢后顯示"Updated to revision 7123",即當前版本已經升級到7123,此為內部版本號。注意,升級的時間完全取決于網絡狀態,快一點的話1、2分鐘就完成了,慢的話就要稍等一下了。
圖-4
升級完畢后,還在當前目錄下,輸入./msfconsole,如下圖-5所示,我們可以看到此時的exploits數量達到了412,較剛才相比增加了33個,如上圖-4所示。所以說,在進行測試前,應該及時升級Metasploit的exploits庫。
圖-5
方法2:
如下圖-6所示,打開任意一個Shell,輸入msfupdate命令來對Metasploit進行更新。回車后MSF會自動連接器官方網站進行升級,并在升級完畢后顯示最新版本號,在下圖-6中就是Revision11626。
圖-6
那么,既然升級完了,接下來,就來使用Metasploit3進行溢出實戰吧。#p#
◆Metasploit3的基本命令
在進入Metasploit3后,就可以使用"?"來獲取基本命令,具體如下:
"?":得到幫助。
"cd":更換當前的工作目錄。
"exit":退出。
"help": 得到幫助。
"info":顯示當前程序的信息。
"quit":退出程序。
"reload":載入Exploit和 payloads。
"save":保存當前設置
"setg":設置一個環境變量。
"show":顯示可用的Exploit和 payloads。
"use":使用一個Exploit。
"version":顯示程序的版本。
下面,我們就通過幾個不同類型的攻擊實例來學習Metasploit的使用。