Metasploit数据库相关命令使用基础教程

可以看到,mysql_login模块可以登录mysql服务器,由于此,Metasploit自动保存该凭据到数据库中,以备将来使用。 在渗透的后利用阶段中,为了进一步渗透目标网络,收集用户凭据是重要的活动。 当我们收集凭证集时,我们可以使用creds -a命令将它们添加到我们的数据库中。

环境说明:

Kali Linux:192.168.26.142

Metasploitable 2:192.168.26.129

Windows 7:192.168.26.130


进行渗透测试时,跟踪在目标网络上完成的所有操作往往是一个挑战。这时一个配置好的数据库可以节省大量的时间。Metasploit内置了对PostgreSQL数据库系统的支持。

数据库系统允许快速方便地访问扫描信息,并使我们能够从各种第三方工具导入和导出扫描结果。我们也可以使用这些信息来快速配置模块选项。最重要的是,它使我们的结果整洁有序。

1.png

在Metasploit中使用数据库

设置postgresql数据库

在Kali中,Metasploit使用postgresql数据库存储数据,Metasploit和Postgresql数据库已经在Kali中随系统安装完成。使用数据库之前必须先开启postgresql服务器,命令如下:

2.png

或者

3.png

启动postgresql之后,需要使用msfdb init命令创建和初始化msf数据库。Metasploit自带的msfdb命令脚本可以完成Metasploit与postgresql数据库的交互,输入msfdb -h可以查看更多功能。

4.png

在Metasploit中使用workspace

启动msfconsole后,运行db_status可以确认Metasploit成功连接到数据库

5.png

一旦连接到数据库,就可以通过使用“工作区”开始组织不同的动作,不同的工作区可以保存来自不同位置/网络/子网络的不同扫描。

在msfconsole命令提示符下面输入“workspace”命令,将显示当前选定的工作区。连接数据库时选择“default”工作区,选定的工作区由名称旁边的*表示。

6.png

在workspace后面跟工作区名称即可更改当前工作区,下面让我们将当前工作区更改为“msfu”。

7.png

创建和删除工作区只需在msfconsole命令提示符下使用“-a”或“-d”,后跟工作区名称,创建新的工作区后,会自动切换成当前工作区。如果删除的工作区是当前工作区,则自动切换到default工作区。

8.png

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

9.png

从现在开始,任何从第三方应用程序进行的扫描或导入都将保存到此工作区中。

现在我们已经连接到数据库,并设置了工作区,下面我们使用一些数据填充它。首先,我们将使用msfconsole的“help”命令查看可用的不同“db_”命令。

10.png

导入和扫描

有几种方式实现导入和扫描,包括从控制台直接扫描主机或网络,或从早期扫描导入文件。我们从导入“metasploitable 2”主机的nmap扫描结果开始。通过使用’db_import’后跟结果文件的路径完成导入。

11.png

一旦完成,我们可以通过发出’hosts’命令确认导入。 这将显示我们当前工作区中存储的所有主机。 我们还可以使用’db_nmap’命令直接从控制台扫描主机。 扫描结果将保存在我们当前的数据库中。 该命令的工作方式与“nmap”的命令行版本相同。

12.png

13.png

备份数据

从Metasploit中导出数据非常简单。使用’db_export’命令,我们收集的所有信息都可以保存在XML文件中。此格式可以方便稍后使用和操作。该命令有2个输出,“xml”格式将导出存储在当前工作区中的所有信息, “pwdump”格式,它会导出与凭据相关的所有内容。

14.png

使用hosts命令

现在我们可以将信息导入和导出到我们的数据库,我们来看看我们如何在msfconsole中使用这些信息。 许多命令可用于搜索存储在我们的数据库中的特定信息。 主机名称,地址,发现的服务等。甚至可以使用结果数据填充模块设置,如RHOSTS。 我们稍后会看看这是如何完成的。

前面我们使用’hosts’命令来确认数据库中是否存在数据。 我们来看看不同的可以选项,看看如何使用它来为我们提供快速有用的信息。 用’-h’发出命令将显示帮助菜单。

15.png

首先,使用’-c’开关只显示IP地址和OS名称。

16.png

设置模块

我们可以使用的另一个有趣的功能是能够搜索我们所有的条目。 想象一下,如果我们希望从我们的扫描中只找到基于Linux的机器。 为此,我们将使用’-S’选项。 这个选项可以与我们前面的例子结合起来,并帮助微调我们的结果。

17.png

使用我们前面的例子的输出,我们将它提供给’tcp’扫描辅助模块。

18.png

默认情况下,我们可以看到“RHOSTS”中没有设置任何内容,我们将把“-R”开关添加到hosts命令并运行该模块。 希望它会正确运行和扫描我们的目标。

19.png

当然,如果我们的结果包含多个地址,这也是有效的。

20.png

如果我们的数据库包含数百个条目,您可以看到这有多有用。 我们可以只搜索Windows机器,然后快速设置smb_version辅助模块的RHOSTS选项。 几乎所有与数据库交互的命令都可以使用设置的RHOSTS开关。

使用Services命令

搜索数据库的另一种方法是使用’services’命令。 像以前的例子一样,我们可以方便地提取非常具体的信息。

21.png

与hosts命令的方式相同,我们可以指定要显示哪些字段。 加上’-S’开关,我们也可以搜索一个包含特定字符串的服务。

22.png

在这里,我们使用包含字符串“http”的服务名称搜索数据库中包含的所有主机。

23.png

搜索可以进行组合,提供更强大的功能,例如:可以使用特定的端口或端口范围,使用“-s”或“-S”开关搜索全部或部分服务名称,搜索所有的主机或只是其中几个选择,等等。以下是一些示例,可以自己动手尝试更多的搜索组合,达到自己的搜索目的。

24.png

25.png

26.png

27.png

CSV导出

hosts和services命令为我们提供了一种将查询结果保存到文件中的方法,文件格式是CSV,随后的-o选项指定路径和文件名,此时屏幕上显示的信息将保存到磁盘。

28.png

Creds命令

‘creds’命令用于管理数据库中目标的发现和使用的凭据。 运行不带选项的命令将显示当前保存的凭据。

29.png

与“db_nmap”命令一样,与凭据相关的成功结果将自动保存到我们的活动工作区。 我们来运行辅助模块’mysql_login’,看看当Metasploit扫描我们的服务器时会发生什么。

30.png

可以看到,Mysql_login模块可以登录mysql服务器,由于此,Metasploit自动保存该凭据到数据库中,以备将来使用。
在渗透的最后阶段中,为了进一步渗透目标网络,收集用户凭据是重要的活动。当我们手机凭证集时,我们可以使用’creds-a’命令将他们添加到我们的数据库中。

上面介绍了Metasploit中有关使用数据库存储并检索查询数据的相关命令,包括:数据库的配置,workspace命令、数据的导入和导出,扫描、hosts命令、services命令、CSV导出和creds命令,使用这些命令,可以很方便的帮助渗透测试人员进行扫描数据的存储、检索和模块的配置,极大地提高渗透测试的效率。

下一篇将介绍:Metasploit中的端口扫描技术(在公众号“合天智汇”已经更新,如想提前学习可转自公众号!)

注:本文属于合天原创奖励文章,未经允许,禁止转载,如需转载,请联系公众号“合天智汇”

6

取消
Loading...

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php