我在/ opt / metasploit中的ubuntu 14.04(LTS)中安装了metasploit v4。我也安装了postgresql。我对metasploit和postgresql非常新鲜。我启动metasploit,但我无法连接到数据库,所以我更改了这个文件/opt/metasploit/apps/pro/ui/config/database.yml,我只是将密码更改为“testtest”,文件内容为:
development:
adapter: "postgresql"
database: "msf3"
username: "msf3"
password: "testtest"
port: 7337
host: "localhost"
pool: 256
timeout: 5
production:
adapter: "postgresql"
database: "msf3"
username: "msf3"
password: "testtest"
port: 7337
host: "localhost"
pool: 256
timeout: 5
所以我这样做:
service postgresql restart
service metasploit restart
那些成功执行。我运行“msfconsole”,然后得到“msf>”,我运行:
msf> db_connect msf3:testtest@127.0.0.1/msf3
msf> db_stats
[*] postgresql selected, no connection
我不知道会发生什么,所以我再次运行msfconsole,我得到了这个:
[-] Failed to connect to the database: FATAL: password authentication failed for user "msf3"
我可以使用postgres创建新用户和数据库,然后使用db_connect进行连接。但每次,我都必须再次运行db_connect。所以我认为metasploit默认使用msf3作为用户和数据库。我想连接到msf3。我该怎么办?
答案 0 :(得分:12)
在Kali Rolling 2016.2上有同样的错误 打开终端并输入:
msfdb delete
msfdb init
msfconsole
简而言之,您需要通过msf。
重新创建db msf使用答案 1 :(得分:3)
sudo /opt/metasploit/postgresql/scripts/ctl.sh start postgresql
这将使用metasploit 4.14.8启动 postgresql 服务器。
答案 2 :(得分:0)
您应该尝试运行db_connect
而无需任何选项。
也可能需要获取密码的哈希值并将其作为密码参数传递。这是使用msfrpc
api模块时必须传递密码的方式。
答案 3 :(得分:0)
您可以将文件直接传递给db_connect,如下所示:
db_connect -y /usr/share/metasploit-framework/config/database.yml
答案 4 :(得分:0)
我知道这是旧线程,但是我发现了其他适合我的解决方案。
我检查了存储在{{1}中的postgresql.conf
,并将默认端口配置为54 33 。Metasploit的Web服务在54 43 上运行。
所以我编辑了配置,现在对我有用!
希望能对某人有所帮助。
答案 5 :(得分:-1)
尝试这适用于我:
> msfdb delete
> msfdb init
> msfconsole
on kali2017.2