本节书摘来自异步社区《Metasploit渗透测试手册》一书中的第1章1.8节在Metasploit框架中建立数据库,作者【印度】Abhinav Singh,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.8 在Metasploit框架中建立数据库
Metasploit渗透测试手册
Metasploit的重要特点是包括用于存储渗透测试结果的数据库。渗透测试涉及大量信息,并且持续数天,因此存储中间结果是必要的。因此,好的渗透测试工具应该正确地整合数据库,以便快速高效地存储结果。
准备
默认情况下,Metasploit将自带的PostgreSQL作为基础数据库。在BackTrack上,还有另外一种选择,也就是MySQL数据库。用户可以使用这两种数据库中的任一种。我们先来看一下PostgreSQL数据库的默认设置。使用如下命令,切换 opt/framework3/config目录,查看database.yml文件。
root@bt:~# cd /opt/framework3/config
root@bt:/opt/framework3/config# cat database.yml
production:
adapter: postgresql
database: msf3
username: msf3
password: 8b826ac0
host: 127.0.0.1
port: 7175
pool: 75
timeout: 5
注意系统已经创建的默认用户名、口令和默认数据库。记下这些值,后面会用到,也可以根据需要对这些值进行修改。
怎样实现
接下来的任务是连接数据库并使用。启动msfconsole,并弄清楚如何建立数据库并存储结果。
首先检查有哪些可用的数据库驱动器。
msf > db_driver
[*]Active Driver: postgresql
[*]Available: postgresql, mysql
PostgreSQL是默认使用的数据库,如果需要切换数据库驱动器,可以执行下面的命令。
Msf> db_driver mysql
[*]Active Driver: Mysql
这一命令将活跃的数据库驱动器切换到MySQL,但本书中主要使用PostgreSQL数据库。
在最近一些版本的Metasploit中,Rapid7已经不再支持MySQL数据库,因此db_driver命令将不再有效,PostgreSQL数据库是Metasploit框架唯一支持的数据库。
怎样工作
要将数据库驱动器连接到msfconsle,可以使用db_connec命令,下面给出的是该命令的语法示例。
db_connect username:password@hostIP:port number/database_name
下面,我们使用刚才从database.yml文件中记下来的用户名、口令、数据库名、端口号的默认值。
1. msf > db_connect msf3:8b826ac0@127.0.0.1:7175/msf3
成功执行这一命令后,即完成了数据库的配置过程。
更多
下面介绍建立数据库过程中一些相关的重要问题。
连接数据库时出错
建立数据库连接时可能会出错,出错时记住以下两点。
使用db_driver和db_connect命令进行检查,确认在使用正确的数据库组合。
使用tart/etc/init.d启动数据库服务,并尝试进行重新连接。
如果错误仍然没有解决,可以使用下面命令重装数据库及相关支持库。
msf> gem install postgres
msf> apt-get install libpq-dev
删除数据库
用户可以在任何时候丢弃已经创建的数据库并重新开始存储新的结果,下面展示的是删除数据库的命令示例。
msf> db_destroy msf3:8b826ac0@127.0.0.1:7175/msf3
Database "msf3" dropped.
msf>
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。