在Metasploit中使用PostgreSQL

第一次运行msfconsole时,BT5中的Metasploit会创建名称为msf3dev的PostgreSQL数据库,并生成保存渗透测试数据所需的数据表,然后使用名称为msf3的用户,自动连接到msf3数据库。启动msfconsole后,可以输入db_status命令,查看数据库的连接状态。

如果出现代码清单3-28中的输出消息,那么说明数据库连接是正常的。

代码清单3-28 db_status命令

msf > db_status

[*] postgresql connected to msf3dev

每次msfconsole启动时,会自动连接到msf3dev数据库,如果想要连接到其他数据库,应当使用db_connect命令连接到数据库。

如果db_connect命令中的数据库不存在,那么Metasploit会自动新建一个数据库,并建立好需要使用的数据表,如果数据库已存在,则不会输出任何信息,直接返回到msf>的提示界面。db_connect命令的基本格式为:

db_connect用户名:口令@服务器地址:端口/数据库名称

用户名请填写postgres,口令请按照上一节介绍的方法在/opt/metasploit/properties.ini中查找。输入db_connect命令连接到数据库,如代码清单3-29所示。

代码清单3-29 db_connect命令

msf > db_connect postgres:84cd2bcf@localhost:7337/msf4

提示 截止到本书写作时,Metasploit v4在自动新建数据库时有一个未修复的Bug,如果db_connect命令指定一个新的数据库,那么会提示新建的数据库编码错误,显示的出错信息如下:

[-] Error while running command db_connect: Failed to connect to the database: PGError: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)

目前该Bug临时的解决方法为在BT5的命令提示符下使用createdb命令新建数据库,然后使用db_connect连接到这个数据库上,新建数据库时需要提供刚刚找到的postgres_root_password口令,并且将数据库的属主设置为msf3用户:

root@bt:~# /opt/metasploit/postgresql/bin/createdb msf4 -E UTF8 -T template0 -O msf3

Password:

连接到数据库后,可以使用hosts命令检查数据库是否可以正常使用,如代码清单3-30所示。

代码清单3-30 hosts命令

msf > hosts

Hosts

=====

address  mac  name  os_name  os_flavor  os_sp  purpose  info  comments

-------  ---  ----  -------  ---------  -----  -------  ----  --------

可以使用db_disconnect命令断开与数据库的连接:

msf > db_disconnect

可以在BT5的命令提示符下,使用dropdb命令删除一个数据库,如下所示:

root@bt:~# /opt/framework/metasploit/bin/dropdb msf4

Password:

输入上页中找到的postgres_root_password,即可完成删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值