在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

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

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...