Metasploit資料庫相關命令使用基礎教程

環境說明:

Kali Linux:192.168.26.142

Metasploitable 2:192.168.26.129

Windows 7:192.168.26.130

進行滲透測試時,跟蹤在目標網路上完成的所有操作往往是一個挑戰。這時一個配置好的資料庫可以節省大量的時間。Metasploit內置了對PostgreSQL資料庫系統的支持。

資料庫系統允許快速方便地訪問掃描信息,並使我們能夠從各種第三方工具導入和導出掃描結果。我們也可以使用這些信息來快速配置模塊選項。最重要的是,它使我們的結果整潔有序。

在Metasploit中使用資料庫

設置postgresql資料庫

在Kali中,Metasploit使用postgresql資料庫存儲數據,Metasploit和Postgresql資料庫已經在Kali中隨系統安裝完成。使用資料庫之前必須先開啟postgresql伺服器,命令如下:

或者

啟動postgresql之後,需要使用msfdb init命令創建和初始化msf資料庫。Metasploit自帶的msfdb命令腳本可以完成Metasploit與postgresql資料庫的交互,輸入msfdb -h可以查看更多功能。

在Metasploit中使用workspace

啟動msfconsole後,運行db_status可以確認Metasploit成功連接到資料庫

一旦連接到資料庫,就可以通過使用「工作區」開始組織不同的動作,不同的工作區可以保存來自不同位置/網路/子網路的不同掃描。

在msfconsole命令提示符下面輸入「workspace」命令,將顯示當前選定的工作區。連接資料庫時選擇「default」工作區,選定的工作區由名稱旁邊的*表示。

在workspace後面跟工作區名稱即可更改當前工作區,下面讓我們將當前工作區更改為「msfu」。

創建和刪除工作區只需在msfconsole命令提示符下使用「-a」或「-d」,後跟工作區名稱,創建新的工作區後,會自動切換成當前工作區。如果刪除的工作區是當前工作區,則自動切換到default工作區。

workspace -h命令顯示命令的其他功能。

從現在開始,任何從第三方應用程序進行的掃描或導入都將保存到此工作區中。

現在我們已經連接到資料庫,並設置了工作區,下面我們使用一些數據填充它。首先,我們將使用msfconsole的「help」命令查看可用的不同「db_」命令。

導入和掃描

有幾種方式實現導入和掃描,包括從控制台直接掃描主機或網路,或從早期掃描導入文件。我們從導入「metasploitable 2」主機的nmap掃描結果開始。通過使用db_import後跟結果文件的路徑完成導入。

一旦完成,我們可以通過發出hosts命令確認導入。 這將顯示我們當前工作區中存儲的所有主機。 我們還可以使用db_nmap命令直接從控制台掃描主機。 掃描結果將保存在我們當前的資料庫中。 該命令的工作方式與「nmap」的命令行版本相同。

備份數據

從Metasploit中導出數據非常簡單。使用db_export命令,我們收集的所有信息都可以保存在XML文件中。此格式可以方便稍後使用和操作。該命令有2個輸出,「xml」格式將導出存儲在當前工作區中的所有信息, 「pwdump」格式,它會導出與憑據相關的所有內容。

使用hosts命令

現在我們可以將信息導入和導出到我們的資料庫,我們來看看我們如何在msfconsole中使用這些信息。 許多命令可用於搜索存儲在我們的資料庫中的特定信息。 主機名稱,地址,發現的服務等。甚至可以使用結果數據填充模塊設置,如RHOSTS。 我們稍後會看看這是如何完成的。

前面我們使用hosts命令來確認資料庫中是否存在數據。 我們來看看不同的可以選項,看看如何使用它來為我們提供快速有用的信息。 用-h發出命令將顯示幫助菜單。

首先,使用-c開關只顯示IP地址和OS名稱。

設置模塊

我們可以使用的另一個有趣的功能是能夠搜索我們所有的條目。 想像一下,如果我們希望從我們的掃描中只找到基於Linux的機器。 為此,我們將使用-S選項。 這個選項可以與我們前面的例子結合起來,並幫助微調我們的結果。

使用我們前面的例子的輸出,我們將它提供給tcp掃描輔助模塊。

默認情況下,我們可以看到「RHOSTS」中沒有設置任何內容,我們將把「-R」開關添加到hosts命令並運行該模塊。 希望它會正確運行和掃描我們的目標。

當然,如果我們的結果包含多個地址,這也是有效的。

如果我們的資料庫包含數百個條目,您可以看到這有多有用。 我們可以只搜索Windows機器,然後快速設置smb_version輔助模塊的RHOSTS選項。 幾乎所有與資料庫交互的命令都可以使用設置的RHOSTS開關。

使用Services命令

搜索資料庫的另一種方法是使用services命令。 像以前的例子一樣,我們可以方便地提取非常具體的信息。

與hosts命令的方式相同,我們可以指定要顯示哪些欄位。 加上-S開關,我們也可以搜索一個包含特定字元串的服務。

在這裡,我們使用包含字元串「http」的服務名稱搜索資料庫中包含的所有主機。

搜索可以進行組合,提供更強大的功能,例如:可以使用特定的埠或埠範圍,使用「-s」或「-S」開關搜索全部或部分服務名稱,搜索所有的主機或只是其中幾個選擇,等等。以下是一些示例,可以自己動手嘗試更多的搜索組合,達到自己的搜索目的。

CSV導出

hosts和services命令為我們提供了一種將查詢結果保存到文件中的方法,文件格式是CSV,隨後的-o選項指定路徑和文件名,此時屏幕上顯示的信息將保存到磁碟。

Creds命令

creds命令用於管理資料庫中目標的發現和使用的憑據。 運行不帶選項的命令將顯示當前保存的憑據。

與「db_nmap」命令一樣,與憑據相關的成功結果將自動保存到我們的活動工作區。 我們來運行輔助模塊mysql_login,看看當Metasploit掃描我們的伺服器時會發生什麼。

可以看到,mysql_login模塊可以登錄mysql伺服器,由於此,Metasploit自動保存該憑據到資料庫中,以備將來使用。

在滲透的後利用階段中,為了進一步滲透目標網路,收集用戶憑據是重要的活動。 當我們收集憑證集時,我們可以使用creds -a命令將它們添加到我們的資料庫中。

上面介紹了Metasploit中有關使用資料庫存儲並檢索查詢數據的相關命令,包括:資料庫的配置,workspace命令、數據的導入和導出,掃描、hosts命令、services命令、csv導出和creds命令。使用這些命令,可以很方便地幫助滲透測試人員進行掃描數據的存儲、檢索和模塊的配置,極大地提高滲透測試的效率。

下一篇將介紹:Metasploit中的埠掃描技術(在公眾號「合天智匯」已經更新,如想提前學習可轉自公眾號!)

註:本文屬於合天原創獎勵文章,未經允許,禁止轉載,如需轉載,請聯繫公眾號「合天智匯」

推薦閱讀:

匿名操作系統推薦
現在的黑客應該懂得哪些技術,求高質量書單?
真的有小說中那種可以隨意黑掉銀行然後把銀行當做ATM機的黑客嗎?
2017年書單推薦?
一般小網站被攻擊後管理員會採取什麼措施來懲罰攻擊者?

TAG:metasploit | 网络安全 | 黑客攻击 |