2.2.5 MetaSploit
MetaSploit由Rapid7公司維護,分為MetaSploit Framework和MetaSploit Pro兩個版本。其中MetaSploit Framework是開源的免費版本,使用ruby語言編寫,為命令行模式工具(同時可以開啟Web端);而MetaSploit Pro則是非開源商業付費版本,用于圖形界面,適合公司使用。本部分我們以MetaSploit Framework版本為例代表MetaSploit系列軟件進行講解。
MetaSploit Framework是全球最常用的滲透測試框架之一,簡稱為MSF。在這款軟件內包含了上百個只需稍加配置便可以使用的漏洞利用模塊,可以幫助滲透測試員快速進行漏洞驗證和進一步攻擊。此外MetaSploit Framework還支持社會工程釣魚、生成遠程控制腳本、控制管理主機等功能,可以有效地減少滲透測試的時間,提高滲透成功率。
用戶在啟動MetaSploit Framework之后可以看到如圖2-34所示的MetaSploit Framework歡迎界面,軟件會顯示當前的版本和當前本地漏洞庫統計數據,以及監聽網卡狀態。

圖2-34 MetaSploit Framework歡迎界面
有了這款軟件,滲透測試人員可以很輕松地進行一些漏洞利用,如此時滲透測試人員有一臺測試目標服務器,經過Nmap端口掃描之后滲透測試人員發現這臺服務器開放了8080端口,正在運行Apache服務的是一個Web端口。隨后滲透測試人員使用瀏覽器訪問8080端口發現在此網站中配置了版本號為4.8.1的phpMyAdmin數據庫管理軟件。然后滲透測試人員通過互聯網查詢到此版本的phpMyAdmin存在一個任意命令執行漏洞,并且MetaSploit Framework收錄了這個漏洞的利用模塊,此時滲透測試人員便可以使用MetaSploit Framework直接進行攻擊。
phpMyAdmin登錄窗口如圖2-35所示。

圖2-35 phpMyAdmin登錄窗口
現在讓作者帶領大家使用MSF中最為常見的5個命令來完成此次漏洞利用攻擊,獲取目標服務器權限。
2.2.5.1 search命令:用于搜索MSF中的模塊內容
當滲透測試人員想要尋找一個軟件的漏洞利用模塊時,滲透測試人員往往并不知道有哪些漏洞及模塊,此時滲透測試人員需要先使用search命令搜索當前可用的MSF模塊。雖然滲透測試人員之前查到了MSF有4.8.1的phpMyAdmin對應漏洞的利用模塊,但是滲透測試人員并不知道這個模塊的具體名稱,滲透測試人員可以先使用“search phpmyadmin”命令搜索當前與“phpMyAdmin”軟件關聯的模塊,搜索完畢之后滲透測試人員可以看到搜索結果。
搜索返回結果如圖2-36所示。

圖2-36 搜索返回結果
搜索結果共分為六個節:第一個節為當前結果編號、第二個節為當前利用模塊名稱、第三個節為對應模塊發布日期、第四個節為當前模塊可用度評級、第五個節為當前模塊是否經過官方驗證、第六個節為當前模塊描述信息。
滲透測試人員可以通過瀏覽第六個節“Description”中的描述內容快速確定滲透測試人員想要選擇哪個模塊,之后滲透測試人員需要記錄下對應模塊的第二節“Name”的內容。這時我們根據模塊描述找到了滲透測試人員需要使用的模塊是搜索結果中的第三個模塊,模塊名稱為:exploit/multi/http/phpmyadmin lfi rce。
2.2.5.2 use命令:用于在MSF中使用指定模塊
當滲透測試人員找到了我們想用的模塊之后,滲透測試人員可以使用此命令空格之后再加上對應模塊名稱的方式來調用此功能,當滲透測試人員使用了此模塊后,滲透測試人員會發現命令行中出現了“exploit(模塊名稱)”字樣,其中括號內的模塊名稱被標為了紅色,十分顯眼。在MSF中使用指定模塊如圖2-37所示。

圖2-37 在MSF中使用指定模塊
2.2.5.3 info命令:查看對應模塊詳細信息
當滲透測試人員使用了指定模塊之后,可以直接鍵入“info”命令字樣來查看當前模塊更加詳細的信息。在詳細信息之中滲透測試人員還可以看到如模塊使用所需參數(可以單獨使用options命令查看)、適用平臺、參考來源等信息。滲透測試人員可以看到模塊適用于Windows系統和Linux系統,在參數中“RHOSTS”“RPORT”“TARGETURI”“USERNAME”四個參數是必需的。
查看當前模塊詳細信息如圖2-38所示。

圖2-38 查看當前模塊詳細信息
2.2.5.4 set命令:設置對應參數值
在使用“info”或者“options”命令查看當前模塊所需要的參數之后,滲透測試人員可以使用“set”命令設置或修改對應的參數內容。例如,在如圖2-39配置MSF模塊變量值的例子中我們使用“set RHOSTS 127.0.0.1”命令成功將“RHOSTS”參數的內容修改為“127.0.0.1”。之后滲透測試人員需要將其他所需配置也逐一配置完畢。例如,我們這里的“phpMyAdmin”軟件是直接配置在網站根目錄下的,而不是默認配置中的“phpMyAdmin”目錄,那么滲透測試人員便需要使用“set”目錄修改這個默認配置,否則漏洞將不能被成功利用。

圖2-39 配置MSF模塊變量值
2.2.5.5 expIoit/run命令:執行模塊內容
當設置完畢所有的變量環境之后,我們可以使用“exploit”命令或者“run”命令來執行當前的模塊進行漏洞利用。在開始運行模塊之后我們可以在輸出界面中看到漏洞是否利用成功,可以看到此時我們成功利用了這個漏洞,反彈Shell獲取到了系統權限,接著我們將會進入MSF的遠程控制模式。在遠程模式中我們可以監聽目標系統的屏幕、執行任意命令等,可以看到我們可以在目標服務器上執行任意系統命令。
成功獲取目標服務器Shell如圖2-40所示。

圖2-40 成功獲取目標服務器Shell
至此作者成功利用MetaSploit Framework完成了一次對目標服務器的滲透并且成功獲取到了服務器權限。